柳叶花 發表於 2023-9-29 00:00:00

Linux CentOS6.6系统中安装mysql源码包的方法

<p>
        这里以CentOS6.6系统中安装MySQL的源码包,进行讲解。</p>
<p>
        <span><strong>1. mysql源码包的下载</strong></span></p>
<p>
        mysql安装包的官方下载地址为:http://dev.mysql.com/downloads/mysql/5.6.html#downloads</p>
<p>
        打开该下载地址后,在 “Select Version:”处,选择要下载的mysql的版本,我选择的是5.6.34;在“Select Platform:”处,选择适用的操作系统类型,由于是下载源码包,故这里我们要选择Source Code。</p>
<p>
        之后,会显示适合各个系统的安装包(奇怪的是,该列表中居然有很多rpm包),但这里我们并不是用rpm包来安装mysql。这里我们选择 Generic Linux (Architecture Independent), Compressed TAR Archive,在它的最右边有一个Download按钮,点击它就可以找到下载链接。</p>
<p>
        如果你还是不会的话,就直接使用我已经找到的下载地址:http://101.110.118.70/dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz 直接使用 wget 命令下载即可。</p>
<p>
        如果知道mysql源码包的具体地址,可直接在linux系统中使用 wget 命令,进行下载。<br>
        (注意:如果你的linux系统中还没有 wget 命令,可使用 yum -y install wget,先安装 wget)</p>
<p>
        在linux的根目录,创建一个多级空目录 /my_package/source,用来存放下载的源码包。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_677996">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">mkdir -p /my_package/source</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql plain">cd /my_package/source</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        执行下载命令:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_609496">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">wget http://101.110.118.70/dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        下载完成后,在目录 /my_package/source 中,就有了mysql的源码包 mysql-5.6.34.tar.gz</p>
<p>
        然后,可以对安装包的完整性进行MD5校验,即使用下面的命令:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_526426">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">md5sum ./mysql-5.6.34.tar.gz</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        执行该命令后,会生成一个md5的校验值,将该值与源码包下载页面给出的md5值进行人工比对,如果一致,则说明安装包完整无缺(当然,你也可以不校验)。</p>
<p>
        <span><strong>2. mysql源码包的安装与配置</strong></span></p>
<p>
        从mysql5.5版本开始,源码安装mysql需要使用到 cmake 命令。</p>
<p>
        检查你的linux系统是否安装了 cmake,可使用下面的命令检查:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_844116">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">whereis cmake</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        如果安装了 cmake 命令,就会显示 cmake 命令的绝对路径和 cmake命令帮助手册的绝对路径。否则,就说明没有安装 cmake 命令。</p>
<p>
        这里,使用 yum 工具,在线快速安装 cmake,方法如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_134996">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">yum search cmake</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql plain">yum -y install cmake.i686</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        还需要安装bison、gcc、gcc-c++和ncurses,也用yum工具快速安装:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_20692">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">yum -y install bison</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql plain">yum -y install gcc gcc-c++ ncurses</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong><span>上述准备工作做好了之后,再来安装mysql,下面来详细介绍mysql的安装步骤。</span></strong></p>
<p>
        <strong>(1)创建用户组和系统用户</strong></p>
<p>
        出于安全考虑,需要创建一个组名为mysql的用户组,然后再创建一个属于该用户组的系统用户mysql,该系统用户的作用是用来安装和运行MySQL服务。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_151526">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">groupadd mysql</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql plain">useradd -r -g mysql -s /bin/</code><code class="sql keyword">false</code> <code class="sql plain">mysql</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>(2)解压源码压缩包</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_835913">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">tar -zxvf mysql-5.6.34.tar.gz</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql plain">cd mysql-5.6.34</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        解压完毕后,进入解压后的目录。一般来说,该目录中都会有README(关于该软件包的介绍说明)和INSTALL(安装说明),这两个文件。当然,也可以不参考它的安装说明。</p>
<p>
        <strong>(3)安装参数配置、编译和安装</strong></p>
<p>
        可以利用 cmake 命令来设置一些安装参数(如安装路径等),这里我们使用默认配置,然后进行编译 make,编译完成之后,执行安装过程 make install。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterjs" id="highlighter_575568">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="js plain">cmake .</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="js plain">make</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="js plain">make install</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>(4)MySQL数据目录初始化</strong></p>
<p>
        安装过程执行完成之后,会在 /usr/local/ 目录中,自动生成一个文件夹mysql,也就是说,/usr/local/mysql 是MySQL的默认安装目录。<br>
        现在,我们需要对MySQL进行一些初始化操作,比如:初始化 data 目录,初始化MySQL的系统表,初始化一个配置文件 my.cnf 等等。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_231012">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">cd /usr/</code><code class="sql keyword">local</code><code class="sql plain">/mysql</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql plain">chown -R mysql .</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="sql plain">chgrp -R mysql .</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="sql plain">scripts/mysql_install_db </code><code class="sql comments">--user=mysql \</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="sql comments">--basedir=/usr/local/mysql \</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="sql comments">--datadir=/usr/local/mysql/data </code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="sql plain">chown -R root .</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="sql plain">chown -R mysql data</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        说明:scripts/mysql_install_db 是 MySQL的初始化命令。在初始化命令前,将目录 /usr/local/mysql 的所有者和所属组改为了mysql;在初始化命令后,将目录 /usr/local/mysql 的所有者改为了root,然后又将 /usr/local/mysql/data 目录的所有者改为了mysql。</p>
<p>
        注意:上述初始化操作完成后,会在 /usr/local/mysql 目录中自动生成一个配置文件 my.cnf。如果系统的其他位置没有 my.cnf 文件,启动MySQL的时候,就会默认以 /usr/local/mysql/my.cnf 作为配置文件启动。否则,需要手动指定要使用的配置文件。<br>
        当然,最好的办法是删除其他位置的my.cnf。</p>
<p>
        我们会发现,在linux系统的配置文件目录 /etc 中,本身就早已存在了一个 my.cnf 文件,为了防止冲突,我们将其删除(其实,初始化操作完成后,也会给出这样的提示)。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_57807">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">rm -f /etc/my.cnf</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        (5)启动和关闭MySQL服务</p>
<p>
        手动启动MySQL:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_359678">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">cd /usr/</code><code class="sql keyword">local</code><code class="sql plain">/mysql</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql plain">bin/mysqld_safe </code><code class="sql comments">--user=mysql &amp;</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        启动完毕后,使用下面的命令检测MySQL是否启动成功</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_337224">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">netstat -tlunp</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        或</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_886819">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">ps aux | grep mysql</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        如果MySQL没有启动成功,就查看一下错误日志:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_162742">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">vi /usr/</code><code class="sql keyword">local</code><code class="sql plain">/mysql/data/localhost.localdomain.err</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        根据具体的错误信息,解决问题后,重新启动MySQL。</p>
<p>
        关闭MySQL:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_232962">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">./bin/mysqladmin -u root -p shutdown</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        为了方便,将mysql的bin目录加入linux系统的环境变量PATH中,方法如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_211190">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">export PATH=/usr/</code><code class="sql keyword">local</code><code class="sql plain">/mysql/bin:$PATH</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        这样,我们就可以在任何目录直接使用 /usr/local/mysql/bin 目录中的命令,而不用再带上绝对路径了,或者说不用再切换到该目录中了。</p>
<p>
        <strong>(6)常见的错误及解决方法</strong></p>
<p>
        <strong>错误1 :无法在本地连接mysql</strong></p>
<p>
        当MySQL服务成功启动后,却发现无法在本地连接上mysql,即在本地使用命令 mysql -uroot -p 时,却出现错误信息“-bash: mysql: command not found”。如果已经确定mysql命令存在且访问方式正确,但还是出现该错误信息,则很有可能是 socket 套接字文件的绝对路径没有明确指定导致的。</p>
<p>
        <span>解决方法:</span></p>
<p>
        修改mysql的配置文件 /usr/local/mysql/my.cnf,加入下面的代码:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_595146">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain"></code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql plain">socket=/tmp/mysql.sock</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        也就是,在配置文件中,明确指定socket套接字的位置。mysql.sock文件会在MySQL服务启动后,自动生成。如果不清楚它的具体路径,可使用命令 find / -name mysql.sock,进行查找。</p>
<p>
        修改mysql的配置文件后,关闭MySQL服务,然后重新开启MySQL服务。再来在本地连接mysql试试,一般就没问题了。</p>
<p>
        <strong>错误2:无法在远程连接mysql</strong></p>
<p>
        在本地连接mysql没有问题,但是在其他电脑上连接mysql,就算使用同样的用户名(如:root)和密码,也无法连接上mysql。</p>
<p>
        这是因为,linux系统的mysql服务器出于安全考虑,默认只允许在本地登录数据库服务器。</p>
<p>
        mysql服务器中,有一个系统数据库,名为mysql,该库中有一个user数据表,user表有很多字段,比如:host、user、password和权限字段等等。mysql服务器,通过该表来控制各个用户的操作权限。</p>
<p>
        所以,只要对该表的数据进行修改或在表中新增一条授权记录,就可以了。</p>
<p>
        <strong><span>解决方法:</span></strong></p>
<p>
        首先,我们不急着解决问题,先看看问题的原因。在本地登录root用户,查看下mysql数据库中user表的记录信息。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_333966">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">mysql -uroot -p</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql plain">show databases;</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="sql plain">use mysql;</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="sql plain">show tables;</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="sql keyword">select</code> <code class="sql plain">host,</code><code class="sql color2">user</code><code class="sql plain">,</code><code class="sql keyword">password</code> <code class="sql keyword">from</code> <code class="sql color2">user</code><code class="sql plain">;</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        这时,我们会发现,所有用户(包括root)的host列的值基本上都是localhost或127.0.0.1,也就是说,默认只允许从本地登录和操作mysql。可以证明,上面的分析是正确的。</p>
<p>
        然后,我们再来解决问题。给指定的用户分配所有的操作权限,并允许其从其他电脑登录和操作MySQL服务器。一般来说,仅执行下面的命令就可以完成授权,并解决问题:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_275319">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql keyword">GRANT</code> <code class="sql color1">ALL</code> <code class="sql keyword">PRIVILEGES</code> <code class="sql keyword">ON</code> <code class="sql plain">*.* </code><code class="sql keyword">TO</code> <code class="sql string">'root'</code><code class="sql plain">@</code><code class="sql string">'%'</code> <code class="sql plain">IDENTIFIED </code><code class="sql keyword">BY</code> <code class="sql string">''</code><code class="sql plain">;</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        上面的命令执行完后,就会在mysql.user表中新增一条授权记录。此后,我们也就可以从远程的其他电脑登录这台linux的MySQL服务器了。</p>
<p>
        如果还是有问题,可以执行命令:flush privileges; 该命令的作用是使刚刚新增的授权记录立即生效(一般都不用执行该命令)。</p>
<p>
        可能很多人都不明白刚刚的授权命令,这里,我进行详细说明,以便大家可以灵活运用该命令进行授权。</p>
<p>
        ALL PRIVILEGES:表示给指定的用户分配所有的权限,主要包括增、删、改、查等等。</p>
<p>
        ON *.*:表示指定的用户可以对所有数据库的所有数据表进行操作,如果想改为指定数据库的指定数据表,可以用 “ON 数据库名.数据表名” 替代。</p>
<p>
        TO ‘root':表示给root用户分配操作权限,如果想给其他的用户分配权限,可以将root改为其他的用户名。</p>
<p>
        @'%':表示允许所有的客户端IP进行访问。也就是说,% 表示不限制客户端的IP地址。如果想限制客户端的IP地址,可以将 % 替换为指定的IP地址。</p>
<p>
        IDENTIFIED BY ”:表示被授权的用户的密码。由于我是给root用户分配权限,而root用户的密码默认为空,故我使用的是空字符串。</p>
<p>
        <strong>(7)设置root用户的初始密码</strong></p>
<p>
        mysql的root用户默认是没有密码的,这里设置root用户的初始密码为123456。即执行下面的命令:</p>
<p>
        mysqladmin -u root password '123456'</p>
<p>
        当然,也可以让root用户一直没有密码。但为了安全起见,还是推荐给root用户设置一个初始密码。</p>
<p>
        <strong>(8)将mysql服务添加到系统服务</strong></p>
<p>
        将mysql服务添加到系统服务,是为了以后可以通过系统服务快速启动或关闭mysql服务。方法如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_275559">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">cd /usr/</code><code class="sql keyword">local</code><code class="sql plain">/mysql</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql plain">cp support-files/mysql.server /etc/init.d/mysql.server</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        这样,就可以使用新的方式启动和关闭mysql服务了。</p>
<p>
        启动mysql服务:service mysql.server start</p>
<p>
        关闭mysql服务:service mysql.server stop</p>
<p>
        重启mysql服务:service mysql.server restart</p>
<p>
        当然,以前的命令方式(启动和关闭)仍然有效。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_350261">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">mysqld_safe </code><code class="sql comments">--user=mysql &amp;</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="sql plain">mysqladmin -u root -p shutdown</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>(9)将mysql服务设置为开机自动启动</strong></p>
<p>
        将mysql服务设置为开机自动启动的方法有很多种,这里只介绍修改</p>
<p>
        /etc/rc.d/rc.local 文件的方式。</p>
<p>
        也可以修改 /etc/rc.local 这个文件,/etc/rc.local 其实是 /etc/rc.d/rc.local 文件的软链接,相当于快捷方式,该文件会在系统开机后自动执行。</p>
<p>
        只需执行下面的命令,即可将mysql服务设置为开机自启动:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightersql" id="highlighter_720723">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="sql plain">echo </code><code class="sql string">"/usr/local/mysql/bin/mysqld_safe --user=mysql &amp;"</code> <code class="sql plain">&gt;&gt; /etc/rc.d/rc.</code><code class="sql keyword">local</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        上面的命令表示,将字符串 “/usr/local/mysql/bin/mysqld_safe –user=mysql &amp;” 以追加的方式写入 /etc/rc.d/rc.local 文件。</p>
<p>
        由此可知,要想关闭mysql的开机自启动,只需编辑这个文件,删除刚刚写入的字符串即可。</p>
<p>
        以上所述是小编给大家介绍的Linux CentOS6.6系统中安装mysql源码包的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!</p>
頁: [1]
查看完整版本: Linux CentOS6.6系统中安装mysql源码包的方法