﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-美丽的爪哇岛-随笔分类-DB</title><link>http://www.blogjava.net/askcuix/category/32219.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 17 Jun 2008 07:31:21 GMT</lastBuildDate><pubDate>Tue, 17 Jun 2008 07:31:21 GMT</pubDate><ttl>60</ttl><item><title>Linux下MySQL5.0的安装</title><link>http://www.blogjava.net/askcuix/archive/2008/04/28/208297.html</link><dc:creator>Chris.Cui</dc:creator><author>Chris.Cui</author><pubDate>Mon, 28 Apr 2008 14:14:00 GMT</pubDate><guid>http://www.blogjava.net/askcuix/archive/2008/04/28/208297.html</guid><wfw:comment>http://www.blogjava.net/askcuix/comments/208297.html</wfw:comment><comments>http://www.blogjava.net/askcuix/archive/2008/04/28/208297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/askcuix/comments/commentRss/208297.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/askcuix/services/trackbacks/208297.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在SUSE9下MySQL5.0的安装及配置过程，由于是使用的源码包安装，该过程应该同样适用于其它版本的Linux。</p>
<p>一、安装MySQL<br />
&nbsp;&nbsp; 1、下载源码包<br />
&nbsp;&nbsp;&nbsp;&nbsp; 从mysql官网上下载linux下的source包mysql-5.0.51b.tar.gz，注意是下载GNU tar格式的，不是rpm包。<br />
&nbsp;&nbsp;&nbsp; 2、解包</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">tar&nbsp;xvf&nbsp;mysql</span><span style="color: #000000">-</span><span style="color: #000000">5.0</span><span style="color: #000000">.51b.tar.gz</span></div>
<p>&nbsp;&nbsp;&nbsp; 3、进入mysql目录</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">cd&nbsp;mysql</span><span style="color: #000000">-</span><span style="color: #000000">5.0</span><span style="color: #000000">.51b</span></div>
<p>&nbsp;&nbsp; 4、安装</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">.</span><span style="color: #000000">/</span><span style="color: #000000">configure&nbsp;&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">prefix</span><span style="color: #000000">=/</span><span style="color: #000000">opt</span><span style="color: #000000">/</span><span style="color: #000000">cuix</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;mysql</span><span style="color: #000000">-</span><span style="color: #000000">5.0</span><span style="color: #000000">.</span><span style="color: #000000">51</span><span style="color: #000000">&nbsp;指定mysql的安装目录<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">with</span><span style="color: #000000">-</span><span style="color: #000000">charset</span><span style="color: #000000">=</span><span style="color: #000000">utf8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;指定字符集<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">with</span><span style="color: #000000">-</span><span style="color: #000000">collation</span><span style="color: #000000">=</span><span style="color: #000000">utf8_general_ci&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />make<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />make&nbsp;install<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p>&nbsp;</p>
<p>二、配置MySQL<br />
&nbsp;&nbsp; 1、初始化数据库<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 执行scripts/mysql_install_db，初始化mysql数据库的授权表，其中贮存了服务器的访问允许，该操作将会在mysql安装目录下创建var目录。<br />
&nbsp;&nbsp;&nbsp; 2、设置PATH<br />
&nbsp;&nbsp;&nbsp;&nbsp; 为了方便使用，将mysql-5.0.51/bin目录加入到当前用户的profile中，然后用which mysql检查一下是否ok.<br />
&nbsp;&nbsp; 3、设置my.cnf配置文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在support-files目录下有三个预设置的文件可供选择，选择一个适合你的，我这里选择的是my-medium.cnf，复制这个文件到你的安装目录下：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">cp&nbsp;support</span><span style="color: #000000">-</span><span style="color: #000000">files</span><span style="color: #000000">/</span><span style="color: #000000">my</span><span style="color: #000000">-</span><span style="color: #000000">medium.cnf&nbsp;&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">opt</span><span style="color: #000000">/</span><span style="color: #000000">cuix</span><span style="color: #000000">/</span><span style="color: #000000">mysql</span><span style="color: #000000">-</span><span style="color: #000000">5.0</span><span style="color: #000000">.</span><span style="color: #000000">51</span><span style="color: #000000">/</span><span style="color: #000000">.my.cnf</span></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 注意my.cnf的使用方法，这个配置文件的路径可以在启动mysql时通过命令行参数给出，比如：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">.</span><span style="color: #000000">/</span><span style="color: #000000">mysqld_safe&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">defaults</span><span style="color: #000000">-</span><span style="color: #000000">file</span><span style="color: #000000">=</span><span style="color: #000000">.my.cnf&nbsp;</span><span style="color: #000000">&amp;</span></div>
<p>&nbsp;&nbsp; 4、赋予my.conf权限</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">chmod&nbsp;</span><span style="color: #000000">744</span><span style="color: #000000">&nbsp;.my.cnf</span></div>
<p>&nbsp;&nbsp; 5、修改my.conf文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查找[client]：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加user=root，<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 去掉password前的注释并设定root账户的密码，<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定port，使用netstat &#8211;atln | grep &#8220;端口号&#8221;查看你自己的端口是否被占用，<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 更改socket，默认/tmp/mysql.sock可能和其他的mysql服务器冲突，修改到当前mysql安装目录下。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查找[mysqld]：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定port及socket，<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设定datadir=/opt/cuix/mysql-5.0.51/var<br />
&nbsp;&nbsp;&nbsp;&nbsp; 对client及mysqld均添加default-character-set=utf8</p>
<p>三、运行MySQL<br />
&nbsp;&nbsp; 1、启动mysql<br />
&nbsp;&nbsp;&nbsp;&nbsp; 进入mysql-5.0.37/bin目录(如果设置了Path就不必了)，执行：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">mysqld_safe&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">defaults</span><span style="color: #000000">-</span><span style="color: #000000">file</span><span style="color: #000000">=/</span><span style="color: #000000">opt</span><span style="color: #000000">/</span><span style="color: #000000">cuix</span><span style="color: #000000">/</span><span style="color: #000000">mysql</span><span style="color: #000000">-</span><span style="color: #000000">5.0</span><span style="color: #000000">.</span><span style="color: #000000">51</span><span style="color: #000000">/</span><span style="color: #000000">.my.cnf&nbsp;</span><span style="color: #000000">&amp;</span></div>
<p>&nbsp;&nbsp; 2、检查是否安装成功<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mysqladmin version将会得到当前mysql的版本信息<br />
&nbsp;&nbsp;&nbsp; 3、登录mysql</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">mysql&nbsp;</span><span style="color: #808080">-</span><span style="color: #000000">h&nbsp;</span><span style="font-weight: bold; color: #800000">127.0</span><span style="color: #000000">.</span><span style="font-weight: bold; color: #800000">0.1</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">-</span><span style="color: #000000">P&nbsp;</span><span style="font-weight: bold; color: #800000">9906</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">-</span><span style="color: #000000">u&nbsp;root</span></div>
<p>&nbsp;&nbsp; 4、修改root密码<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root帐号默认密码为空，这个肯定是要修改的，可以连接上服务器后，执行：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">use</span><span style="color: #000000">&nbsp;mysql;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">update</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">user</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;password</span><span style="color: #808080">=</span><span style="color: #000000">password(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">新密码</span><span style="color: #ff0000">'</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">user</span><span style="color: #808080">=</span><span style="color: #ff0000">'</span><span style="color: #ff0000">root</span><span style="color: #ff0000">'</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />flush&nbsp;</span><span style="color: #0000ff">privileges</span><span style="color: #000000">;</span></div>
<p>&nbsp;&nbsp;&nbsp; 5、添加新用户<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加test，容许从localhost和远程登录，密码为"test"&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">GRANT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">ALL</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PRIVILEGES</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">.</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TO</span><span style="color: #000000">&nbsp;test</span><span style="color: #008000">@localhost</span><span style="color: #000000">&nbsp;IDENTIFIED&nbsp;</span><span style="color: #0000ff">BY</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">test</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">WITH</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">GRANT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">OPTION</span><span style="color: #000000">;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">GRANT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">ALL</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PRIVILEGES</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">.</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TO</span><span style="color: #000000">&nbsp;test@"</span><span style="color: #808080">%</span><span style="color: #000000">"&nbsp;IDENTIFIED&nbsp;</span><span style="color: #0000ff">BY</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">test</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">WITH</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">GRANT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">OPTION</span><span style="color: #000000">;</span></div>
<p>&nbsp;&nbsp;&nbsp; 当使用SQL语句修改账户时使用FLUSH PRIVILEGES的原因是告诉服务器重读授权表。否则，只有重启服务器后更改才会被注意到。使用 GRANT，则不需要使用FLUSH PRIVILEGES。<br />
&nbsp;&nbsp;&nbsp; 6、关闭mysql<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 执行：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">.</span><span style="color: #808080">/</span><span style="color: #000000">mysqladmin&nbsp;</span><span style="color: #808080">-</span><span style="color: #000000">h&nbsp;localhost&nbsp;</span><span style="color: #808080">-</span><span style="color: #000000">P&nbsp;</span><span style="font-weight: bold; color: #800000">3306</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">-</span><span style="color: #000000">u&nbsp;root&nbsp;</span><span style="color: #808080">-</span><span style="color: #000000">p&nbsp;&nbsp;</span><span style="color: #0000ff">shutdown</span></div>
<p>&nbsp;&nbsp; 到此安装及配置过程就结束了，可在用户根目录下建一个mysql的shell文件，便于启动及关闭MySQL，如下：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #008000">#</span><span style="color: #008000">!/bin/sh</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">case&nbsp;$</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start)&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">opt</span><span style="color: #000000">/</span><span style="color: #000000">cuix</span><span style="color: #000000">/</span><span style="color: #000000">mysql</span><span style="color: #000000">-</span><span style="color: #000000">5.0</span><span style="color: #000000">.</span><span style="color: #000000">51</span><span style="color: #000000">/</span><span style="color: #000000">bin</span><span style="color: #000000">/</span><span style="color: #000000">mysqld_safe&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">defaults</span><span style="color: #000000">-</span><span style="color: #000000">file</span><span style="color: #000000">=/</span><span style="color: #000000">opt</span><span style="color: #000000">/</span><span style="color: #000000">cuix</span><span style="color: #000000">/</span><span style="color: #000000">mysql</span><span style="color: #000000">-</span><span style="color: #000000">5.0</span><span style="color: #000000">.</span><span style="color: #000000">51</span><span style="color: #000000">/</span><span style="color: #000000">.my.cnf&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">&nbsp;;;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stop)&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">opt</span><span style="color: #000000">/</span><span style="color: #000000">cuix</span><span style="color: #000000">/</span><span style="color: #000000">mysql</span><span style="color: #000000">-</span><span style="color: #000000">5.0</span><span style="color: #000000">.</span><span style="color: #000000">51</span><span style="color: #000000">/</span><span style="color: #000000">bin</span><span style="color: #000000">/</span><span style="color: #000000">mysqladmin&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">h&nbsp;</span><span style="color: #000000">10.3</span><span style="color: #000000">.</span><span style="color: #000000">2.36</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">P&nbsp;</span><span style="color: #000000">9906</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">uroot&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">p&nbsp;shutdown;;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />esac<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p><br />
&nbsp;&nbsp;&nbsp; 这样通过./mysql restart和./mysql stop就可以启动和关闭MySQL了。<br />
</p>
 <img src ="http://www.blogjava.net/askcuix/aggbug/208297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/askcuix/" target="_blank">Chris.Cui</a> 2008-04-28 22:14 <a href="http://www.blogjava.net/askcuix/archive/2008/04/28/208297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>