<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lockstockmods</title>
	<atom:link href="http://www.lockstockmods.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lockstockmods.net</link>
	<description>If its not broken... take it apart and mod it</description>
	<lastBuildDate>Mon, 09 Nov 2009 20:11:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Protected: Setup OpenVPN no NAT external IPS</title>
		<link>http://www.lockstockmods.net/2009/11/09/setup-openvpn-no-nat-external-ips/</link>
		<comments>http://www.lockstockmods.net/2009/11/09/setup-openvpn-no-nat-external-ips/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 18:23:49 +0000</pubDate>
		<dc:creator>Kode</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.lockstockmods.net/?p=118</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://www.lockstockmods.net/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-118">Password:<br />
<input name="post_password" id="pwbox-118" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://www.lockstockmods.net/2009/11/09/setup-openvpn-no-nat-external-ips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protected: Setup OpenVPN</title>
		<link>http://www.lockstockmods.net/2009/11/09/setup-openvpn/</link>
		<comments>http://www.lockstockmods.net/2009/11/09/setup-openvpn/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 18:09:08 +0000</pubDate>
		<dc:creator>Kode</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.lockstockmods.net/?p=113</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://www.lockstockmods.net/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-113">Password:<br />
<input name="post_password" id="pwbox-113" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://www.lockstockmods.net/2009/11/09/setup-openvpn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH Tunnel with Putty and Squid</title>
		<link>http://www.lockstockmods.net/2009/11/04/ssh-tunnel-with-putty-and-squid/</link>
		<comments>http://www.lockstockmods.net/2009/11/04/ssh-tunnel-with-putty-and-squid/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 13:15:55 +0000</pubDate>
		<dc:creator>Kode</dc:creator>
				<category><![CDATA[IRC/Shells]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Secure Tunnel]]></category>
		<category><![CDATA[Secure web browsing]]></category>
		<category><![CDATA[SSH Putty Tunnel]]></category>
		<category><![CDATA[SSH Tunnel]]></category>
		<category><![CDATA[Tunnel with Putty]]></category>

		<guid isPermaLink="false">http://www.lockstockmods.net/?p=80</guid>
		<description><![CDATA[The purpose of this guide is to provide an easy to follow set of instructions that should allow you to create an SSH tunnel in around 10 minutes.
Step 1: Getting started
What you will need:

Remote server running SSH (Debian server is used in this guide)
Putty
Squid

Install squid:
apt-get install squid
Step 2: Configure putty

Start putty
From left hand tree menu [...]]]></description>
			<content:encoded><![CDATA[<p>The purpose of this guide is to provide an easy to follow set of instructions that should allow you to create an SSH tunnel in around 10 minutes.</p>
<h3>Step 1: Getting started</h3>
<p>What you will need:</p>
<ul>
<li>Remote server running SSH (Debian server is used in this guide)</li>
<li><a title="Putty" href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">Putty</a></li>
<li>Squid</li>
</ul>
<p>Install squid:</p>
<pre><code>apt-get install squid</code></pre>
<h3>Step 2: Configure putty</h3>
<ul>
<li>Start putty</li>
<li>From left hand tree menu select Click SSH (under the Connection menu item) to expand the tree items, then click on Tunnels</li>
<li>In Source port enter 3128 (default Squid port), select Dynamic and click on the Add button<br />
<img class="alignnone size-full wp-image-81" title="Putty Tunnel Options" src="http://www.lockstockmods.net/wp-content/uploads/2009/11/putty1.gif" alt="Putty Tunnel Options" width="466" height="446" /></p>
<p><div id="attachment_82" class="wp-caption alignnone" style="width: 476px"><img class="size-full wp-image-82" title="Putty Tunnels view" src="http://www.lockstockmods.net/wp-content/uploads/2009/11/putty2.gif" alt="An entry should show up in the forwarded ports section" width="466" height="446" /><p class="wp-caption-text">An entry should show up in the forwarded ports section</p></div></li>
<li>In the left hand menu go to Session</li>
<li>Put the hostname of your server, select SSH (if not already selected), then under Saved Sessions type tunnel (or any name you want to call the saved session) and click save.  This will enable you, in the future to click on &#8220;tunnel&#8221;, click Load, then Open.<br />
<img class="alignnone size-full wp-image-106" title="Session Config" src="http://www.lockstockmods.net/wp-content/uploads/2009/11/putty3.gif" alt="Session Config" width="466" height="446" /></li>
<li>Click Open.  You cannot SSH tunnel without an open connection, it will ask you for your username and password.</li>
</ul>
<h3>Step 3: Configure Firefox</h3>
<ul>
<li>Click Tools, then select Options&#8230;</li>
<li>Select the Advanced option then then Network tab.<br />
<img class="alignnone size-full wp-image-84" title="Firefox Options" src="http://www.lockstockmods.net/wp-content/uploads/2009/11/firefox1.gif" alt="Firefox Options" width="521" height="486" /></li>
<li>Click on Settings</li>
<li>Select Manual proxy configuration, then under SOCKS Host type localhost and in Port enter 3128 (In Vista SP1 you might have to use 127.0.0.1 instead of localhost for the SOCKS Host)<br />
<img class="alignnone size-full wp-image-86" title="Firefox Configuration" src="http://www.lockstockmods.net/wp-content/uploads/2009/11/firefox2.gif" alt="Firefox Configuration" width="461" height="462" /></li>
</ul>
<p>Congratulations, you should now have a fully functioning SSH Tunnel, you can test this by going to <a title="Whats My Ip" href="http://www.whatsmyip.org/" target="_blank">Whats My IP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lockstockmods.net/2009/11/04/ssh-tunnel-with-putty-and-squid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy way to PXE Boot Windows</title>
		<link>http://www.lockstockmods.net/2008/05/26/easy-way-to-pxe-boot-windows/</link>
		<comments>http://www.lockstockmods.net/2008/05/26/easy-way-to-pxe-boot-windows/#comments</comments>
		<pubDate>Mon, 26 May 2008 19:39:16 +0000</pubDate>
		<dc:creator>Kode</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[install windows over the network]]></category>
		<category><![CDATA[install windows over the network with no CD drive]]></category>
		<category><![CDATA[install windows with netboot]]></category>
		<category><![CDATA[install windows with pxe]]></category>
		<category><![CDATA[netboot windows]]></category>
		<category><![CDATA[network boot windows]]></category>
		<category><![CDATA[PXE install windows]]></category>
		<category><![CDATA[windows pxe boot]]></category>

		<guid isPermaLink="false">http://www.lockstockmods.net/?p=64</guid>
		<description><![CDATA[This guide provides an easy and relatively quick way to PXE boot windows which means you can install Windows over the network with PXE without the need for a CD drive.  While the previous guide allows you to slip stream updates and add extra programs it took a LONG LONG time to do, especially [...]]]></description>
			<content:encoded><![CDATA[<p>This guide provides an easy and relatively quick way to PXE boot windows which means you can install Windows over the network with PXE without the need for a CD drive.  While the previous guide allows you to slip stream updates and add extra programs it took a LONG LONG time to do, especially with all the downloads it needed to do, this one just installs a vanilla XP, nice and simple, and a lot quicker <img src='http://www.lockstockmods.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Step 1: Getting started.</h3>
<p>What you’ll need:</p>
<ol>
<li>Windows 2000/XP CD (to get the i386 directory off it)</li>
<li>PC running 2000/XP (to act as a server)</li>
<li>Laptop capable of booting over PXE (such as the L400).</li>
<li><a href="http://tftpd32.jounin.net/">Tftpd32<br />
</a></li>
<li>Bart Network Boot Disk</li>
<li><a href="http://www.lockstockmods.net/download/14/">SMARTDRV.EXE</a></li>
<li>A Share. The Server must be able to share files (any Microsoft Windows computer can).</li>
<li>Working router or plain crossover cable.</li>
</ol>
<p>Once you’ve collected all of the above, lets begin;</p>
<ol>
<li>Create a share, for the sake of argument create it at c:\WINSTALL</li>
<li>Copy your i386 folder and <a href="http://www.lockstockmods.net/download/14/">SMARTDRV.EXE</a> into this folder</li>
<li>Make a note of your computer name/host name, you can find this out by right clicking on &#8220;My Computer&#8221;, going to properties, go to &#8220;Computer Name&#8221; tab, look under Full computer name, in my example, the computers name is STAR, i believe the name needs to be 12 chars or less for this to work in dos mode, so if its longer change it and reboot.</li>
<p><a href="http://www.lockstockmods.net/wp-content/uploads/2008/04/my-properties.jpg"><img class="alignnone size-medium wp-image-65" title="my-properties" src="http://www.lockstockmods.net/wp-content/uploads/2008/04/my-properties-258x300.jpg" alt="" width="258" height="300" /></a></p>
<li>Create a folder to PXE boot from, c:\OUTPUT</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.lockstockmods.net/2008/05/26/easy-way-to-pxe-boot-windows/feed/</wfw:commentRss>
		<slash:comments>83</slash:comments>
		</item>
		<item>
		<title>CSS Cheatsheet</title>
		<link>http://www.lockstockmods.net/2008/05/01/css-cheatsheet/</link>
		<comments>http://www.lockstockmods.net/2008/05/01/css-cheatsheet/#comments</comments>
		<pubDate>Thu, 01 May 2008 13:22:10 +0000</pubDate>
		<dc:creator>Kode</dc:creator>
				<category><![CDATA[Cheatsheets]]></category>
		<category><![CDATA[Web Dev]]></category>

		<guid isPermaLink="false">http://www.lockstockmods.net/?p=69</guid>
		<description><![CDATA[Background
Backgrounds can be tricky. Nevertheless, effective when condensed correctly. The syntax for declaring the background shorthand values are as follows:
background properties
element {
background-color: color &#124;&#124; #hex &#124;&#124; (rgb / % &#124;&#124; 0-255);
background-image:url(URI);
background-repeat: repeat &#124;&#124; repeat-x &#124;&#124; repeat-y &#124;&#124; no-repeat;
background-position: X Y &#124;&#124; (top&#124;&#124;bottom&#124;&#124;center) (left&#124;&#124;right&#124;&#124;center);
background-attachment: scroll &#124;&#124; fixed;
}
Believe it or not, all these properties can be combined [...]]]></description>
			<content:encoded><![CDATA[<h3>Background</h3>
<p>Backgrounds can be tricky. Nevertheless, effective when condensed correctly. The syntax for declaring the background shorthand values are as follows:</p>
<h3 class="code">background properties</h3>
<pre><code>element {
background-color: color || #hex || (rgb / % || 0-255);
background-image:url(URI);
background-repeat: repeat || repeat-x || repeat-y || no-repeat;
background-position: X Y || (top||bottom||center) (left||right||center);
background-attachment: scroll || fixed;
}</code></pre>
<p>Believe it or not, all these properties can be combined into one single <strong>background</strong> property as follows:</p>
<h3 class="code">the background shorthand property</h3>
<pre><code>element {
background:
#fff
url(image.png)
no-repeat
20px 100px
fixed;
}</code></pre>
<h3>The Unknown</h3>
<p>Often times developers find themselves wondering <q>What if I leave out this value or that one? How will that effect the design?</q>. Good questions.</p>
<p>By default, the background property will assume the following when you <strong>do not</strong> declare each value of the properties.</p>
<h3 class="code">default background property values</h3>
<pre><code>
element {
background-color: transparent;
background-image: none;
background-repeat: repeat;
background-position: top left;
background-attachment: scroll;
}</code></pre>
<p><strong>Lesson learned: </strong><em>be careful on what you don’t declare. By chosing to not declare a value on a shorthand property, you are explicitly declaring the above default settings.</em> For example, let’s look at the following example.</p>
<h3 class="code">background shorthand example (unexplicit)</h3>
<pre><code>element {
background:red url(image.png);
}</code></pre>
<p>This would be the same as declaring the following values:</p>
<h3 class="code">background shorthand example (explicit)</h3>
<pre><code>element {
background:red url(image.png) repeat top left scroll;
}</code></pre>
<h3>Font</h3>
<p>Font is perhaps the trickiest. However, it follows the same rules as the background shorthand property. <em>All that you do not declare will have unexplicit values</em>. Here is the font shorthand specification:</p>
<h3 class="code">font properties</h3>
<pre><code>element {
font-style: normal || italic || oblique;
font-variant:normal || small-caps;
font-weight: normal || bold || bolder || || lighter || (100-900);
font-size: (number+unit) || (xx-small - xx-large);
line-height: normal || (number+unit);
font-family:name,"more names";
}</code></pre>
<p>The default values for the font shorthand property are as follows:</p>
<h3 class="code">default font property values</h3>
<pre><code>element {
font-style: normal;
font-variant:normal;
font-weight: normal;
font-size: inherit;
line-height: normal;
font-family:inherit;
}</code></pre>
<p>And of course without any further ado. The font shorthand property syntax:</p>
<h3 class="code">the font shorthand property</h3>
<pre><code>element {
font:
normal
normal
normal
inhert/
normal
inherit;
}</code></pre>
<p>Here is where it gets tricky. The fact that <code>font-style, font-variant,</code> and <code>font-weight</code> all come “normal” out of the box, you may need to pay a little more close attention when you’re styling elements that come with default browser styles like &lt;h1&gt; &#8211; &lt;h6&gt; or &lt;strong&gt; and &lt;em&gt;. For example, styling the strong element:</p>
<h3 class="code">strong element styled with font</h3>
<pre><code>strong {
font:12px verdana;
}</code></pre>
<p>By writing the above into your style sheet, you will be unexplicitly removing the <strong>font-weight:bold</strong> default browser style that is applied to strong elements.</p>
<p>Last but not least (for -font- that is), a real world example:</p>
<h3 class="code">font shorthand property example (unexplicit)</h3>
<pre><code>p {
font:bold 1em/1.2em georgia,"times new roman",serif;
}</code></pre>
<p>This would be the same as declaring the following properties:</p>
<h3 class="code">the font shorthand property (explicit)</h3>
<pre><code>p {
font-style:normal;
font-variant:normal;
font-weight:bold;
font-size:1em;
line-height:1.2em;
font-family:georgia,"times new roman",serif;
}</code></pre>
<h3 id="borderProperty">Border</h3>
<p>Let’s not waste time discussing the warnings. The same rules apply from here on out. This is all you need to know</p>
<h3 class="code">border properties</h3>
<pre><code>element {
border-width: number+unit;
border-style: (numerous);
border-color: color || #hex || (rgb / % || 0-255);
}</code></pre>
<p>becomes this:</p>
<h3 class="code">the border shorthand propertie</h3>
<pre><code>element {
border:
4px
groove
linen
}</code></pre>
<p>Don’t ask me how that would look. The fact that “linen” is in there, things could get scary. Nevermind the matter, here is where ‘border’ gets funny.</p>
<h3 class="code">border examples</h3>
<pre><code>p {
border:solid blue;
}
/* will create a '3px' solid blue border...
who knows where 3px came from?? */

p {
border:5px solid;
}
/* will create 5px solid 'black' border...
default must be black?? */

p {
border:dashed;
}
/* will create a '3px' dashed 'black' border...
3px black lines unite! */

p { border:10px red; }
p { border:10px; }
p { border:red; }
/* these just don't even work */</code></pre>
<p>One thing to specially take note about declaring a border without a color, the default will be ‘black’ unless otherwise noted through an explicit or inherited ‘color’ property. See the following examples:</p>
<h3 class="code">border color examples</h3>
<pre><code>
p {
border:dotted;
color:red;
}
/* will create a 3px dotted red border */
/* ----------------------------- */
body {
color:blue;
}
body p {
border:5px solid;
}
/* will create a 5px solid blue border */
/* ----------------------------- */</code></pre>
<p>Get it? Got it. Good! (isn’t that a song?) Anyway. On with this</p>
<h3>Margin and Padding</h3>
<p>These are by far the easiest. Just think about the hands of a clock starting at noon, and follow the hour. For the sake of brevity, we’ll be working with margin (since it’s a shorter word). So for all cases of margin, the same rules apply to padding.</p>
<h3 class="code">margin properties.</h3>
<pre><code>element {
margin-top: number+unit;
margin-right: number+unit;
margin-bottom: number+unit;
margin-left: number+unit;
}</code></pre>
<p>… combined into the margin superpowers:</p>
<h3 class="code">the margin shorthand property</h3>
<pre><code>/* top right bottom left */
element {
margin: auto auto auto auto;
}</code></pre>
<p>Of course, you may declare your margin with one, two, three, or four values. Here is how each scenario will be played out:</p>
<h3 class="code">margin fun</h3>
<pre><code>/* adds a 10px margin to all four sides */
element {
margin:10px;
}

/* adds a 20px margin to top and bottom
and a 5px margin to left and right */
element {
margin:20px 5px;
}

/* adds a 50px margin to top
and a 10px margin to left and right
and a 300px margin to bottom */
element {
margin:50px 10px 300px;
}</code></pre>
<p>Understood? Let’s keep going. This is fun isn’t it! (whatever, you like it).</p>
<h3>Outline</h3>
<p>Quite frankly, this property has dropped off the existence of the design radar. Mainly because of lack of browsers supporting this CSS 2.1 standard (yep, it’s an actual property), but nonetheless, it too has a shorthand property. This property follows the exact same (or same exact &#8211; they mean the same thing) specification as the ‘border’ shorthand property. But, for purposes of this being a Guide, it must be here. So:</p>
<h3 class="code">outline properties</h3>
<pre><code>element {
outline-width: number+unit;
outline-style: (numerous);
outline-color: color || #hex || (rgb / % || 0-255);
}</code></pre>
<p>Outline written as shorthand:</p>
<h3 class="code">outline shorthand property</h3>
<pre><code>element {
outline:3px dotted gray;
}</code></pre>
<p>For purposes of trying to keep things from repeating, please see the <a title="Jump to Border Properties on this page" href="#borderProperty">border shorthand section</a> on this document to understand the odds, ends, and quirks of the outline property.</p>
<h3>List-style</h3>
<p>This is it. The last one. It’s rarely used frequently. Hence rarely. That is why I kept it until the end (sorry, the best was first in my own opinion). Here is the list-style properties:</p>
<h3 class="code">list-style properties</h3>
<pre><code>element {
list-style-type: (numerous);
list-style-position:inside || outside;
list-style-image:url(image.png);
}</code></pre>
<p>Here is the defaults:</p>
<h3 class="code">list-style property defaults</h3>
<pre><code>element {
list-style-type:disc;
list-style-position:outside;
list-style-image:none;
}</code></pre>
<p>And for the sake of final brevity. Here is a simple example:</p>
<h3 class="code">list-style shorthand property example</h3>
<pre><code>ul li {
list-style:square inside url(image.png);
}
/* in this particular case if image.png is not available
then a square will be provided as secondary */</code></pre>
<p>This guide is originally from http://www.dustindiaz.com/css-shorthand/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lockstockmods.net/2008/05/01/css-cheatsheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Cheatsheet</title>
		<link>http://www.lockstockmods.net/2008/05/01/mysql-cheatsheet/</link>
		<comments>http://www.lockstockmods.net/2008/05/01/mysql-cheatsheet/#comments</comments>
		<pubDate>Thu, 01 May 2008 12:44:17 +0000</pubDate>
		<dc:creator>Kode</dc:creator>
				<category><![CDATA[Web Dev]]></category>

		<guid isPermaLink="false">http://www.lockstockmods.net/?p=68</guid>
		<description><![CDATA[Query
SELECT * FROM table
SELECT * FROM table1, table2, ...
SELECT field1, field2, ... FROM table1, table2, ...
SELECT ... FROM ... WHERE condition
SELECT ... FROM ... WHERE condition GROUPBY field
SELECT ... FROM ... WHERE condition GROUPBY field HAVING condition2
SELECT ... FROM ... WHERE condition ORDER BY field1, field2
SELECT ... FROM ... WHERE condition ORDER BY field1, field2 [...]]]></description>
			<content:encoded><![CDATA[<h3>Query</h3>
<pre><code>SELECT * FROM table
SELECT * FROM table1, table2, ...
SELECT field1, field2, ... FROM table1, table2, ...
SELECT ... FROM ... WHERE condition
SELECT ... FROM ... WHERE condition GROUPBY field
SELECT ... FROM ... WHERE condition GROUPBY field HAVING condition2
SELECT ... FROM ... WHERE condition ORDER BY field1, field2
SELECT ... FROM ... WHERE condition ORDER BY field1, field2 DESC
SELECT ... FROM ... WHERE condition LIMIT 10
SELECT DISTINCT field1 FROM ...
SELECT DISTINCT field1, field2 FROM ...</code></pre>
<pre><code>SELECT ... FROM t1 JOIN t2 ON t1.id1 = t2.id2 WHERE condition
SELECT ... FROM t1 LEFT JOIN t2 ON t1.id1 = t2.id2 WHERE condition
SELECT ... FROM t1 JOIN (t2 JOIN t3 ON ...) ON ...</code></pre>
<p>conditionals:</p>
<pre><code>field1 = value1
field1 &lt;&gt; value1
field1 LIKE 'value _ %'
field1 IS NULL
field1 IS NOT NULL
field1 IS IN (value1, value2)
field1 IS NOT IN (value1, value2)
condition1 AND condition2
condition1 OR condition2</code></pre>
<h3>Data Manipulation</h3>
<pre><code>INSERT INTO table1 (field1, field2, ...) VALUES (value1, value2, ...)</code></pre>
<pre><code>DELETE FROM table1 / TRUNCATE table1
DELETE FROM table1 WHERE condition
-- join:
DELETE FROM table1, table2 FROM table1, table2 WHERE table1.id1 = table2.id2 AND condition</code></pre>
<pre><code>UPDATE table1 SET field1=new_value1 WHERE condition
-- join:
UPDATE table1, table2 SET field1=new_value1, field2=new_value2, ... WHERE table1.id1 = table2.id2 AND condition</code></pre>
<h3>Browsing</h3>
<pre><code>SHOW DATABASES
SHOW TABLES
SHOW FIELDS FROM table / DESCRIBE table
SHOW CREATE TABLE table
SHOW PROCESSLIST
KILL process_number</code></pre>
<h3>Create / delete database</h3>
<pre><code>CREATE DATABASE mabase
CREATE DATABASE mabase CHARACTER SET utf8
DROP DATABASE mabase</code></pre>
<pre><code>ALTER DATABASE mabase CHARACTER SET utf8</code></pre>
<h3>Create/delete/modify table</h3>
<pre><code>CREATE TABLE table (field1 type1, field2 type2, ...)
CREATE TABLE table (field1 type1, field2 type2, ..., INDEX (field))
CREATE TABLE table (field1 type1, field2 type2, ..., PRIMARY KEY (field1))
CREATE TABLE table (field1 type1, field2 type2, ..., PRIMARY KEY (field1, field2))
CREATE TABLE table1 (fk_field1 type1, field2 type2, ...,
FOREIGN KEY (fk_field1) REFERENCES table2 (t2_fieldA))
[ON UPDATE|ON DELETE] [CASCADE|SET NULL]
CREATE TABLE table1 (fk_field1 type1, fk_field2 type2, ...,
FOREIGN KEY (fk_field1, fk_field2) REFERENCES table2 (t2_fieldA, t2_fieldB))
CREATE TABLE table IF NOT EXISTS (...)</code></pre>
<pre><code>CREATE TEMPORARY TABLE table (...)</code></pre>
<pre><code>DROP TABLE table
DROP TABLE IF EXISTS table
DROP TABLE table1, table2, ...</code></pre>
<pre><code>ALTER TABLE table MODIFY field1 type1
ALTER TABLE table MODIFY field1 type1 NOT NULL ...
ALTER TABLE table CHANGE old_name_field1 new_name_field1 type1
ALTER TABLE table CHANGE old_name_field1 new_name_field1 type1 NOT NULL ...
ALTER TABLE table ALTER field1 SET DEFAULT ...
ALTER TABLE table ALTER field1 DROP DEFAULT
ALTER TABLE table ADD new_name_field1 type1
ALTER TABLE table ADD new_name_field1 type1 FIRST
ALTER TABLE table ADD new_name_field1 type1 AFTER another_field
ALTER TABLE table DROP field1
ALTER TABLE table ADD INDEX (field);</code></pre>
<pre><code>-- Change field order:
ALTER TABLE table MODIFY field1 type1 FIRST
ALTER TABLE table MODIFY field1 type1 AFTER another_field
ALTER TABLE table CHANGE old_name_field1 new_name_field1 type1 FIRST
ALTER TABLE table CHANGE old_name_field1 new_name_field1 type1 AFTER another_field</code></pre>
<pre><code>ALTER TABLE old_name RENAME new_name;</code></pre>
<h3>Keys</h3>
<pre><code>CREATE TABLE table (..., PRIMARY KEY (field1, field2))
CREATE TABLE table (..., FOREIGN KEY (field1, field2) REFERENCES table2 (t2_field1, t2_field2))</code></pre>
<h3>Privileges</h3>
<pre><code>GRANT ALL PRIVILEGES ON base.* TO 'user'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, DELETE ON base.* TO 'user'@'localhost' IDENTIFIED BY 'password';
REVOKE ALL PRIVILEGES ON base.* FROM 'user'@'host'; -- one permission only
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'host'; -- all permissions</code></pre>
<pre><code>SET PASSWORD = PASSWORD('new_pass')
SET PASSWORD FOR 'user'@'host' = PASSWORD('new_pass')
SET PASSWORD = OLD_PASSWORD('new_pass')</code></pre>
<pre><code>DROP USER 'user'@'host'</code></pre>
<h3>Main data types</h3>
<pre><code>TINYINT (1o: -217+128) SMALLINT (2o: +-65 000)
MEDIUMINT (3o: +-16 000 000) INT (4o: +- 2 000 000 000)
BIGINT (8o: +-9.10^18)
Precise interval: -(2^(8*N-1)) -&gt; (2^8*N)-1
/!\ INT(2) = "2 digits displayed" -- NOT "number with 2 digits max"</code></pre>
<pre><code>FLOAT(M,D) DOUBLE(M,D) FLOAT(D=0-&gt;53)
/!\ 8,3 -&gt; 12345,678 -- NOT 12345678,123!</code></pre>
<pre><code>TIME (HH:MM) YEAR (AAAA) DATE (AAAA-MM-JJ) DATETIME (AAAA-MM-JJ HH:MM; années 1000-&gt;9999)
TIMESTAMP (like DATETIME, but 1970-&gt;2038, compatible with Unix)</code></pre>
<pre><code>VARCHAR (single-line; explicit size)  TEXT (multi-lines; max size=65535)  BLOB (binary; max size=65535)
Variants for TEXT&amp;BLOB: TINY (max=255) MEDIUM (max=~16000) LONG (max=4Go)
Ex: VARCHAR(32), TINYTEXT, LONGBLOB, MEDIUMTEXT</code></pre>
<pre><code>ENUM ('value1', 'value2', ...) -- (default NULL, or '' if NOT NULL)</code></pre>
<h3>Forgot root password?</h3>
<pre><code>$ /etc/init.d/mysql stop
$ mysqld_safe --skip-grant-tables
$ mysql # on another terminal
mysql&gt; UPDATE mysql.user SET password=PASSWORD('nouveau') WHERE user='root';
## Kill mysqld_safe from the terminal, using Control + \
$ /etc/init.d/mysql start</code></pre>
<h3>Repair tables after unclean shutdown</h3>
<pre><code>mysqlcheck --all-databases
mysqlcheck --all-databases --fast</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lockstockmods.net/2008/05/01/mysql-cheatsheet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
