<?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>Global Nerdy &#187; PHP on Windows</title>
	<atom:link href="http://www.globalnerdy.com/tag/php-on-windows/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.globalnerdy.com</link>
	<description>Tech Evangelist Joey deVilla on software development, tech news and other nerdy stuff</description>
	<lastBuildDate>Wed, 17 Mar 2010 22:41:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A Special PHP/Windows-Themed Coffee and Code: This THURSDAY at the Dark Horse</title>
		<link>http://www.globalnerdy.com/2009/05/06/a-special-phpwindows-themed-coffee-and-code-this-thursday-at-the-dark-horse/</link>
		<comments>http://www.globalnerdy.com/2009/05/06/a-special-phpwindows-themed-coffee-and-code-this-thursday-at-the-dark-horse/#comments</comments>
		<pubDate>Wed, 06 May 2009 05:29:38 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Toronto]]></category>
		<category><![CDATA[Coffee and Code]]></category>
		<category><![CDATA[Dark Horse Cafe]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP on Windows]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/05/06/a-special-phpwindows-themed-coffee-and-code-this-thursday-at-the-dark-horse/</guid>
		<description><![CDATA[This article also appears in Canadian Developer Connection.
 
This week, I’m going to have my hands full on Friday with WordCamp Toronto, so I’m moving my Coffee and Code session from Friday to this Thursday, May 7th, from 2:00 p.m. to 5:00 p.m. at the Dark Horse Cafe (215 Spadina).
This particular Coffee and Code has [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/05/06/a-special-php-windows-themed-coffee-and-code-this-thursday-at-the-dark-horse.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
<p><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Coffee cup" border="0" alt="Coffee cup" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/coffee-cup.jpg" width="240" height="180" /> </p>
<p>This week, I’m going to have my hands full on Friday with <a href="http://phug.ca/wordcamptoronto/">WordCamp Toronto</a>, so I’m moving my Coffee and Code session from Friday to this <strong>Thursday, May 7th, from 2:00 p.m. to 5:00 p.m. at the Dark Horse Cafe</strong> (<a href="http://maps.live.com/#JndoZXJlMT0yMTUrU3BhZGluYStBdmVudWUlMmMrVG9yb250bytPTiZiYj01NC4yNjUyMjQwNzg2MDU3JTdlLTQwLjg2OTE0MDYyNSU3ZTMwLjc1MTI3Nzc3NjI1NzglN2UtMTE3Ljg2MTMyODEyNQ==">215 Spadina</a>).</p>
<p>This particular Coffee and Code has a theme: developing and deploying PHP applications on Windows. I’ll be talking about and answering questions about PHP on Windows, the Web Platform Installer (which I recently covered in <a href="http://blogs.msdn.com/cdndevs/archive/2009/05/05/installing-php-on-windows-using-the-web-platform-installer-2-0-beta.aspx">this article</a>) and <a href="http://www.globalnerdy.com/2009/04/19/the-ftw-ultimate-php-app-throwdown/">the PHP FTW! contest</a>, which pits student developers against professional developers for cash prizes.</p>
<p>Come on down and join me for a coffee! I’m going to see if I can bring some PHP-themed goodies to give away, just in case my scintillating company and Dark Horse’s great coffee aren’t enticements enough for you to drop by.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/05/06/a-special-phpwindows-themed-coffee-and-code-this-thursday-at-the-dark-horse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing PHP on Windows Using the Web Platform Installer 2.0 Beta</title>
		<link>http://www.globalnerdy.com/2009/05/05/installing-php-on-windows-using-the-web-platform-installer-20-beta/</link>
		<comments>http://www.globalnerdy.com/2009/05/05/installing-php-on-windows-using-the-web-platform-installer-20-beta/#comments</comments>
		<pubDate>Tue, 05 May 2009 04:00:00 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP on Windows]]></category>
		<category><![CDATA[Web Platform Installer]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=3390</guid>
		<description><![CDATA[This article also appears in Canadian Developer Connection.
Yesterday, I showed you how to install MySQL Server 5.1 (Community Edition) onto your Windows-based development machine. The reason I wrote the article was to help you prep your machine for installing PHP and PHP-based applications using Microsoft’s Web Platform Installer.
What is Web Platform Installer?
Web Platform Installer is, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/05/05/installing-php-on-windows-using-the-web-platform-installer-2-0-beta.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
<p><strong><a href="http://www.globalnerdy.com/2009/05/04/installing-mysql-server-51-on-windows/">Yesterday, I showed you how to install MySQL Server 5.1</a></strong> (Community Edition) onto your Windows-based development machine. The reason I wrote the article was to help you prep your machine for installing PHP and PHP-based applications using Microsoft’s <strong><a href="http://www.microsoft.com/Web/downloads/platform.aspx">Web Platform Installer</a></strong>.</p>
<h3>What is Web Platform Installer?</h3>
<p>Web Platform Installer is, as the website puts it, “a free tool that makes it simple to download, install and keep up-to-date with the latest components of the Microsoft Web Platform”. Yes, this is stuff you can do yourself, but I’m all for tools that automate away drudgery.</p>
<p>As of this writing, there are two versions of Web Platform Installer available: the original 1.0 version and the beta 2.0 version. In this article, I’m going to focus on the 2.0 version.</p>
<p>Here’s what you’ll see when you fire up the Web Platform Installer 2.0 beta:</p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/wpi-01.gif"><font color="#990000"></font><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="wpi_01" border="0" alt="wpi_01" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/wpi-01-thumb.gif" width="600" height="445" /></a></p>
<p>Web Platform Installer has three tabs:</p>
<ol>
<li><strong>What’s New?:</strong> This lists the newest applications that are available for download and aren’t already installed on your system. This is the tab that is automatically selected when you launch Web Platform Installer. </li>
<li><strong>Web Platform:</strong> This lists web platform applications that are available for download and whether they’re installed on your system. These apps are divided into the following categories:
<ul>
<li><strong>Web Server Applications:</strong> Extensions for IIS as well as other server software such as the FTP server </li>
<li><strong>Frameworks and Runtimes:</strong> Both Microsoft and open source frameworks and runtimes, such as .NET Framework and ASP.NET MVC. <strong>This is where you’ll find PHP.</strong> </li>
<li><strong>Database:</strong> SQL Server Express and management tools. </li>
<li><strong>Tools:</strong> Applications for web development, such as Silverlight and Visual Web Developer Express. </li>
</ul>
</li>
<li><strong>Web Applications:</strong> This lists web applications that are available for download and whether they’re installed on your system. These apps are divided into the following categories:
<ul>
<li><strong>Blogs:</strong> A selection of .NET blogging apps such as BlogEngine.NET and DasBlog, as well as WordPress. </li>
<li><strong>Content Management:</strong> Applications like DotNetNuke and Acquia Drupal. </li>
<li><strong>Galleries:</strong> Photo gallery applications. </li>
<li><strong>Wiki:</strong> Wikis and apps with wiki functionality, such as the PHP-based Acquia Drupal and the ASP.NET-based ScrewTurn Wiki. </li>
</ul>
</li>
</ol>
<h3>Installing PHP</h3>
<p>If PHP isn’t on your system, it will appear on the What’s New? tab page. If you click on the “information” icon beside the checkbox item for PHP, you’ll be shown its information page:</p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/wpi-02.gif"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="wpi_02" border="0" alt="wpi_02" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/wpi-02-thumb.gif" width="600" height="445" /></a></p>
<p>You can choose to install PHP by checking PHP’s checkbox in the list of applications or the <strong>Click to include in your install </strong>button.</p>
<p>You can choose to add other applications to your install. Once you’ve chosen all the apps you want, click the <strong>Install </strong>button. You’ll be presented with a list of the apps you chose for review, along with any dependencies for those apps:</p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/wpi-04.gif"><font color="#111111"></font><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="wpi_04" border="0" alt="wpi_04" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/wpi-04-thumb.gif" width="600" height="412" /></a></p>
<p>To start the installation, click the <strong>I Accept</strong> button, and Web Platform Installer will do its thing: </p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/wpi-05.gif"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="wpi_05" border="0" alt="wpi_05" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/wpi-05-thumb.gif" width="600" height="412" /></a></p>
<h3>Taking PHP for a Quick Spin</h3>
<p>Let’s write a very quick script to confirm that PHP is up and running:</p>
<p> <code>
<pre>&lt;?php

phpinfo();

?&gt;</pre>
<p></code></p>
<p>In case you’re not familiar with PHP’s built-in <strong><code>phpinfo()</code></strong> function, it returns information about your PHP installation, its configuration and its current environment. It’s useful for all sorts of things, not the least of which is checking to see if your PHP installation worked.</p>
<p>Enter the script above using your favourite editor, and save it as <strong><code>test.php</code></strong> into the web root directory, <strong><code>c:/inetpub/wwwroot</code></strong> Note that in order to save to this directory, you’ll need to be running the editor with administrator privileges. Alternately, you can save to another directory and then copy the file to <strong><code>c:/inetpub/wwwroot</code></strong>, giving your administrative approval when prompted by the dialog box.</p>
<p>Then point your browser at <strong><code>http://localhost/test.php</code></strong> &#8212; you should see something that looks like this:</p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/wpi-06.gif"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="wpi_06" border="0" alt="wpi_06" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/wpi-06-thumb.gif" width="600" height="724" /></a></p>
<h3>Next Steps</h3>
<p>With PHP up and running, you can install PHP-based apps. PHP apps are like old-school ASP apps; installing them is often a matter of moving the files into the webroot directory and perhaps running an install script by typing its URL into your browser.</p>
<p><a href="http://www.phpmyadmin.net/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="phpMyAdmin" border="0" alt="phpMyAdmin" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/phpmyadmin.jpg" width="182" height="104" /></a></p>
<p>One app you might want to consider installing is <a href="http://www.phpmyadmin.net/"><strong>phpMyAdmin</strong></a>, a PHP-based web application for administering MySQL databases. While it’s possible to administer MySQL solely through its command-line interfaces, phpMyAdmin makes it so much easier. I can’t recommend this utility enough.</p>
<p><a href="http://nostarch.com/wcphp.htm"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Cover of &quot;Wicked Cool PHP&quot;" border="0" alt="Cover of &quot;Wicked Cool PHP&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/wicked-cool-php.jpg" width="154" height="204" /></a></p>
</p>
</p>
<p>If I had to recommend just one PHP book, it would be No Starch Press’ <strong><em><a href="http://nostarch.com/wcphp.htm">Wicked Cool PHP</a></em></strong>. I find No Starch books to be both informative and enjoyable reads, and this book is no exception. If you’ve got at least a little programming experience under your belt. I think that you’ll find this book and its very useful examples, coupled with <a href="http://us3.php.net/docs.php">the online documentation at PHP.net</a>, will serve you very well.</p>
<p>Happy PHPing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/05/05/installing-php-on-windows-using-the-web-platform-installer-20-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing MySQL Server 5.1 on Windows</title>
		<link>http://www.globalnerdy.com/2009/05/04/installing-mysql-server-51-on-windows/</link>
		<comments>http://www.globalnerdy.com/2009/05/04/installing-mysql-server-51-on-windows/#comments</comments>
		<pubDate>Mon, 04 May 2009 16:12:05 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[datbases]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[Make Web Not War]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP on Windows]]></category>
		<category><![CDATA[setup]]></category>
		<category><![CDATA[walkthroughs]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/05/04/installing-mysql-server-51-on-windows/</guid>
		<description><![CDATA[
You’ve probably heard of Microsoft’s Web Platform Installer, a free-as-in-beer tool that makes it a snap to install a variety of Microsoft and Open Source web applications and development tools, ranging from “The Usual Suspects”, such as Visual Web Developer, IIS and SQL Server 2008 Express to stuff you might not expect, such as PHP [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="MySQL dolphin balancing Windows &quot;ball&quot; logo on its snout" border="0" alt="MySQL dolphin balancing Windows &quot;ball&quot; logo on its snout" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/mysql-windows-logos.jpg" width="215" height="154" /></p>
<p>You’ve probably heard of Microsoft’s <strong><a href="http://www.microsoft.com/Web/downloads/platform.aspx">Web Platform Installer</a></strong>, a free-as-in-beer tool that makes it a snap to install a variety of Microsoft and Open Source web applications and development tools, ranging from “The Usual Suspects”, such as Visual Web Developer, IIS and SQL Server 2008 Express to stuff you might not expect, such as PHP and Wordpress. It makes installing these goodies a simple of matter of checking the items you want and clicking the <strong>Install </strong>button. (While the old way of installing PHP on Windows wasn’t rocket science, it involved enough steps and configuration changes to justify my writing a whole article on the topic in an old developer blog of mine.)</p>
<p><strong>One necessary thing that the Web Platform Installer <em>doesn’t</em> do for you – and I assume it’s because of licensing restrictions of one kind or another – is install MySQL</strong>, which many PHP apps, including a number that the Web Platform Installer installs, use. You’ll be told that you need to install MySQL, but it leaves installing it up to you.</p>
<p><strong>Hence this article, where I walk through the steps of installing MySQL Server 5.1 on Windows for a developer machine.</strong> Whether you just need PHP and MySQL so that you can experiment with Wordpress template designs or are the “I build on Windows, but deploy on Linux” type or are developing for a server setup where IIS is serving both ASP.NET and PHP apps (and yes, IIS does that!), you’re going to want MySQL on your dev box.</p>
<h3>Get the Installer</h3>
<p>The version we’re interested in is the free-as-in-both-speech-and-beer Community Edition, which is available at the MySQL site. Here are the links to the installers:</p>
<ul>
<li><a href="http://dev.mysql.com/downloads/mysql/5.1.html#win32">Here are the links for the Windows 32-bit installers</a> </li>
<li><a href="http://dev.mysql.com/downloads/mysql/5.1.html#winx64">Here are the links for the Windows 64-bit installers</a> </li>
</ul>
<p>Both these options provide you with three different installers. <strong>I recommend getting the .msi (Windows Installer) as it’s the lowest-headache option.</strong> It’s also the version I use in this walkthrough.</p>
<p>By the way, the screenshots provided in this walkthrough are from my actual installation process on my laptop, which runs the 64-bit edition of Windows 7 Beta, Build 7000 (I’m not installing the Release Candidate until later this week). I’m installing the 64-bit version of MySQL Server 5.1 Community Edition, but whether you’re installing the 32- or 64-bit version on Windows XP, Vista or 7, your experience should be roughly the same.</p>
<p>Here’s what you should see when you launch the installer:</p>
<p align="left"><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/01.gif"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="01" border="0" alt="01" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/01-thumb.gif" width="504" height="382" /></a></p>
<h3>Which Setup Type?</h3>
<p align="left">The first choice you have to make is the type of setup you want:</p>
<p align="left"><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/02.gif"><font color="#111111"></font><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="02" border="0" alt="02" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/02-thumb.gif" width="508" height="386" /></a></p>
<p align="left">The three choices offered are:</p>
<ol>
<li>
<div align="left"><strong>Typical:</strong> Installs the basic components for MySQL to the default installation path, <code>C:\Program Files\MySQL\MySQL Server 5.1\</code>, including:</div>
<ul>
<li>
<div align="left">The MySQL server</div>
</li>
<li>
<div align="left">The mysql command-line client</div>
</li>
<li>
<div align="left">Other command-line utilities like mysqldump, myisamchk and more.</div>
</li>
</ul>
</li>
<li>
<div align="left"><strong>Complete:</strong> Installs all the MySQL components to the default installation path, <code>C:\Program Files\MySQL\MySQL Server 5.1\</code>, including those listed in the Typical setup, plus:</div>
<ul>
<li>
<div align="left">Documentation</div>
</li>
<li>
<div align="left">The embedded server library</div>
</li>
<li>
<div align="left">The benchmark suite</div>
</li>
<li>
<div align="left">Support scripts</div>
</li>
</ul>
</li>
<li>
<div align="left"><strong>Custom:</strong> Gives you complete control over the components installed and the installation path.</div>
</li>
</ol>
<p align="left">Although the components in the Typical setup will work fine for most web development purposes, <strong>I like having the docs handy, so I went with the Complete setup.</strong></p>
<p align="left">Once you’ve selected the setup, you’ll be shown a confirmation window like the one below:</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/03.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="03" border="0" alt="03" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/03-thumb.gif" width="508" height="386" /></a></p>
<p align="left">Once MySQL has been installed, you’ll see the window below:</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/04.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="04" border="0" alt="04" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/04-thumb.gif" width="508" height="386" /></a></p>
<p align="left">You’ll be given the choice to configure MySQL server, which I recommend. You can do so by leaving the <strong>Configure the MySQL Server now</strong> checkbox checked and then clicking <strong>Finish</strong>.</p>
<h3>The Configuration Wizard</h3>
<p align="left">Here’s the first window of the Configuration Wizard:</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/05.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="05" border="0" alt="05" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/05-thumb.gif" width="508" height="386" /></a></p>
<h3>Which Configuration?</h3>
<p align="left">You’ll be asked which configuration type to use:</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/06.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="06" border="0" alt="06" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/06-thumb.gif" width="508" height="386" /></a></p>
<p align="left">The two choices offered are:</p>
<ol>
<li>
<div align="left"><strong>Detailed Configuration:</strong> Gives you fine-grained control over the configuration process. <strong>I’m familiar with the options being offered, so this is the option I chose. </strong>If you choose this option, you will have to make some additional choices in the windows that follow.</div>
</li>
<li>
<div align="left"><strong>Standard Configuration:</strong> If you’re new to MySQL and need a server configured as a single-user developer machine, this configuration should suit your needs. If you choose this option, you’ll skip the next few steps and go directly to the Root Password window.</div>
</li>
</ol>
<h3>Detailed Configuration Options</h3>
<p align="left">If you chose to use the Detailed Configuration, you will see the following windows.</p>
<h4>Server Type</h4>
<p align="left">The first choice in the Detailed Configuration is Server Type:</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/07.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="07" border="0" alt="07" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/07-thumb.gif" width="508" height="386" /></a></p>
<p align="left">The three options are:</p>
<ol>
<li><strong>Developer Machine:</strong> This setup assumes that MySQL will be running on a machine used to write applications, where the database will be used for basic developer proofs of concept and simple testing. MySQL will be configured to use minimal system resources. <strong>This is the option I selected.</strong> </li>
<li><strong>Server Machine:</strong> This setup is for server systems where MySQL will be running along with other server applications such as a web server, mail server, FTP server and so on. MySQL will be configured to use a moderate portion of the system resources. </li>
<li><strong>Dedicated MySQL Server Machine:</strong> This is for machines that will be running only MySQL. in this configuration, MySQL will be configured to use all available system resources. </li>
</ol>
<h4>Storage Engines</h4>
<p>The next choice to make is selecting the storage engines to be used: MyISAM or InnoDB. If you’re not familiar with MySQL, you’re probably asking “What’s the difference between InnoDB and MyISAM?”</p>
<p align="left">Of the two engines, <strong>MyISAM</strong> is the older of the two, and the default engine. The general consensus is that in most cases, it’s faster than InnoDB for typical CRUD operations. It supports up to around 4 billion rows of data and 64 indexed fields per table. MyISAM uses table-level locking, which means than when a row is being updated, the table is locked and no other operations can update any other rows until the first row is updated and the lock on the table is released.</p>
<p align="left"><strong>InnoDB</strong> is the newer (and some would say <em>sexier</em>) engine. It’s called “the transactional one”, and it’s built with data integrity in mind. It supports foreign key constraints, meaning that changes to a table (say, “Actors”) that references another table (say, “Movies”) are allowed only if those changes leave both in a valid state. For example, you wouldn’t be able to delete a row from the “Actors” table if it referenced any rows in the “Movies” table (that is, you can’t remove an actor from the database if s/he’s listed as starring in any movies). It also supports row-level locking, which means that so that more than one row can be updated at the same time.</p>
<p align="left">The general guidelines for choosing between MyISAM and InnoDB are as follows:</p>
<ul>
<li>
<div align="left"><strong>Will your use of the database be mostly <em>reading</em>?</strong> That is, will you be doing mostly select operations and few insert, update and delete operations? Then you want MyISAM.</div>
</li>
<li>
<div align="left"><strong>Will your use of the database involve at least as many writes as reads, if not more?</strong> That is, will you be doing as many insert, update and delete operations as select operations? Then you want InnoDB.</div>
</li>
<li>
<div align="left"><strong>Do you need full-text search?</strong> You want MyISAM.</div>
</li>
<li>
<div align="left"><strong>Do you need to conserve disk space and RAM?</strong> You want MyISAM.</div>
</li>
<li>
<div align="left"><strong>Does the idea of using a non-SQL Server database irk you?</strong> You might feel better going with InnoDB, since it has the row-level locking, transaction safety and generally more “relational” feel.</div>
</li>
</ul>
<p align="left"><strong>Keep in mind that when adding a table to a MySQL database, you can specify which engine it uses.</strong> Lately, I’ve been in the habit of specifying InnoDB for most tables <em>except </em>those on which I want to provide full-text search; for those, I’ve specified MyISAM. (For more on specifying engines when creating tables, see <a href="http://dev.mysql.com/doc/refman/5.1/en/create-table.html">MySQL’s page on the <strong><code>create table</code></strong> command</a>.)</p>
<p align="left">Now that I’ve done a quick review of MyISAM and InnoDB, let’s look at the storage engine choices that the Configuration Wizard offers.</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/08.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="08" border="0" alt="08" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/08-thumb.gif" width="508" height="386" /></a></p>
<p align="left">The three choices are:</p>
<ol>
<li>
<div align="left"><strong>Multifunctional Database:</strong> This enables both InnoDB and MyISAM storage engines and divides resources evenly between the two. This is the recommended option for developers who use both storage engines on a regular basis. <strong>It’s the option I chose, since it yields the most flexibility.</strong></div>
</li>
<li>
<div align="left"><strong>Transactional Database Only:</strong> This enables both InnoDB and MyISAM storage engines, but dedicates more resources to the InnoDB engine.</div>
</li>
<li>
<div align="left"><strong>Non-Transactional Database Only:</strong> This option completely disables InnoDB; all resources are dedicated to the MyISAM storage engine.</div>
</li>
</ol>
<p align="left">If you chose Multifunctional Database or Transactional Database Only, you’ll be presented a windows asking you where to put the InnoDB tablespace:</p>
<p align="left">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/09.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="09" border="0" alt="09" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/09-thumb.gif" width="508" height="386" /></a></p>
<p align="left"><strong>I went with the default,</strong> which puts the tablespace in the MySQL installation directory.</p>
<h4>Concurrent Connection Settings</h4>
<p align="left">The next window is all about the number of concurrent connections supported:</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/10.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="10" border="0" alt="10" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/10-thumb.gif" width="508" height="386" /></a></p>
<p align="left">The three choices offered are:</p>
<ol>
<li>
<div align="left"><strong>Decision Support (DSS)/OLAP:</strong> This assumes an average of around 20 concurrent connections, with a maximum of 100 concurrent connections supports. <strong>I chose this option, as it works for most development scenarios.</strong></div>
</li>
<li>
<div align="left"><strong>Online Transaction Processing: </strong>This supports up to 500 concurrent connections and is generally for production use.</div>
</li>
<li>
<div align="left"><strong>Manual Setting:</strong> This lets you specify a specific number of connections. I’ve seen it used mostly for testing.</div>
</li>
</ol>
<h4>Networking Options</h4>
<p>The next window concerns itself with networking options:</p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/11.gif"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="11" border="0" alt="11" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/11-thumb.gif" width="508" height="386" /></a></p>
<p align="left">Port 3306 is the default MySQL port, so that’s what I went with; I also checked the <strong>Add firewall exception for this port</strong> checkbox. I also left the <strong>Enable Strict Mode</strong> checkbox checked.</p>
<h4>Default Character Encoding</h4>
<p align="left">Now it’s time to select the default character encoding:</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/12.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="12" border="0" alt="12" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/12-thumb.gif" width="508" height="386" /></a></p>
<p align="left">You’re given a number of options, but I suggest you go with my choice. <strong>I chose UTF-8 because it’s the encoding of the Web.</strong></p>
<h4><strong>Service Options</strong></h4>
<p align="left">Here’s the next window:</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/13.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="13" border="0" alt="13" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/13-thumb.gif" width="508" height="386" /></a></p>
<p align="left">I strongly recommend:</p>
<ul>
<li>
<div align="left">Checking the <strong>Install As Windows Service</strong> checkbox. When installed as a Windows service, MySQL can be started automatically at system startup and restarted in the event of a service failure.</div>
</li>
<li>
<div align="left">Going with the default service name of <strong>MySQL </strong>unless there’s already an instance of MySQL installed, in which case you’ll want to provide a different name. Note that service names should be 255 characters or less and can have any legal character except for the forward-slash (/) or backslash (/).</div>
</li>
<li>
<div align="left">Checking the <strong>Launch the MySQL Server automatically</strong> checkbox.</div>
</li>
<li>
<div align="left">Checking the <strong>Include Bin Directory in Windows PATH</strong> checkbox. You’ll save yourself a lot of typing if you do this. </div>
</li>
</ul>
<h4>Security Options</h4>
<p align="left">And now, the Security Options window…</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/14.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="14" border="0" alt="14" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/14-thumb.gif" width="508" height="386" /></a></p>
<p align="left">You’ll be asked to provide a password for the <strong>root</strong> user twice.</p>
<p align="left">You can also choose to:</p>
<ul>
<li>
<div align="left"><strong>Enable root access from remote machines.</strong> I don’t really need this on my development machine, so <strong>I <em>didn’t</em> check this checkbox</strong>.</div>
</li>
<li>
<div align="left"><strong>Create an anonymous account.</strong> I don’t need this either, so <strong>I <em>didn’t</em> check this checkbox</strong>.</div>
</li>
</ul>
<h4>Go!</h4>
<p align="left">That’s it for all the option setting. You’ll now be presented with this window:</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/15.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="15" border="0" alt="15" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/15-thumb.gif" width="508" height="386" /></a></p>
<p align="left">If you’re satisfied with your configuration choices in the previous windows, click the <strong>Execute</strong> button. You’ll be presented with this window as your reward:</p>
<p align="center">&#160;<a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/16.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="16" border="0" alt="16" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/16-thumb.gif" width="508" height="386" /></a></p>
<p>…and you’re done!</p>
<h3>Taking it for a Quick Spin</h3>
<p>Let’s take MySQL for a quick spin to confirm it’s working. We’ll do this using the <code>mysql</code> command-line client and logging in as <strong>root</strong>. There are a couple of ways to do this. One is by firing up the <strong>MySQL Command Line Client </strong>from your Windows menu (or Start Menu on XP):</p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/start-menu.gif"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="start_menu" border="0" alt="start_menu" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/start-menu-thumb.gif" width="239" height="97" /></a></p>
<p>A command-line window will pop up, where you’ll be prompted to enter the root password. Enter it, and you’ll be in the command-line client!</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="prompt_01" border="0" alt="prompt_01" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/prompt-01.gif" width="500" height="253" /></p>
<p>The other way is to fire up the <strong>Command Prompt</strong> and (if you specified that you wanted MySQL’s <code>bin</code> directory included in Windows’ PATH, which you should have), enter <strong><code>mysql –u root –p</code></strong>. The <code>-u</code> switch is for specifying a username, and the <code>-p</code> switch is for specifying that you will be providing a password for the specified username.</p>
<p>You’ll be prompted to enter a password. Enter the root password and you’ll be in the command-line client:</p>
<p><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/prompt-02.gif"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="prompt_02" border="0" alt="prompt_02" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/05/prompt-02-thumb.gif" width="500" height="253" /></a>&#160;</p>
<p>And MySQL is ready to use! You can now use the Web Platform Installer to install PHP-based apps that require MySQL.</p>
<p>I can’t give you a walkthrough of MySQL’s command line – that’ll have to wait for another article, or you might want to check out <a href="http://www.redhat.com/magazine/007may05/features/mysql/">this article</a> – but here’s a quick one: the <strong><code>show databases;</code></strong> command (don&#8217;t forget the semicolon at the end!) will return a list of all the databases currently in the system.</p>
<p>Happy MySQLing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/05/04/installing-mysql-server-51-on-windows/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>
