环境:CentOS 6.5 最小化缺省安装

Mysql:mysql-5.5.42.tar.gz


1.安装需要的软件包

 yum install gcc gcc-c++ ncurses-devel cmake -y


安装之前要先从网上下载Mysql的源码安装包,最近上到官方网站上找不到下载源码包的地方,不知道是什么原因,希望高手告解一下。

我是从搜虎的开放源下载的:http://mirrors.sohu.com/mysql/MySQL-5.5/ 

下载回到本机电脑再利用lrzsz工具上传到Centos服务器上

把mysql-5.5.42.tar.gz 暂时上传到/downlocal目录下。



2.下载mysql源码包后解压

   建立mysql的安装目录: mkdir -p/usr/local/mysql/data

建立mysql用户和组,并把上面的文件目录授于mysql用户和组所有者。

groupadd mysql

useradd mysql -g mysql

chmod -R mysql.mysql /usr/local/mysql/data


   

   这里说明一下,我是把数据库存放在/data目录下。


    tar -zxvf mysql-5.5.42.tar.gz

3. 进入解压后的源码包

   cd mysql-5.5.42

4. cmake进行编译(首先要创建数据文件夹和安装文件夹, 如果路径不存在)

   cmake . \

   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

   -DMYSQL_DATADIR=/usr/local/mysql/data/ \

   -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

   -DDEFAULT_CHARSET=utf8 \

   -DEXTRA_CHARSETS=all \

   -DDEFAULT_COLLATION=utf8_general_ci \

   -DENABLED_LOCAL_INFILE=1 \

参数说明:


-DCMAKE_INSTALL_PREFIX=/usr/local/mysql        //安装目录


-DINSTALL_DATADIR=/usr/local/mysql/data         //数据库存放目录


-DMYSQL_UNIX_ADDR=                            //UNIX socket文件路径


-DDEFAULT_CHARSET=utf8                        //使用utf8字符


-DDEFAULT_COLLATION=utf8_general_ci            //校验字符


-DEXTRA_CHARSETS=all                            //安装所有扩展字符集


-DENABLED_LOCAL_INFILE=1                        //允许从本地导入数据


5.make && make install


配置文件由于源码安装所以要复制出配置文件和启动服务文件。

cd /usr/local/mysql

[root@server mysql]# cp support-files/my-medium.cnf /etc/my.cnf  //Mysql的配置文件



[root@server mysql]# cp support-files/mysql.server /etc/init.d/mysqld //mysql的启动文件只是放到可以自启动的地方。

[root@server mysql]#在chmod 755 /etc/init.d/mysqld 


6.直接启用数据库会出错。Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/server.pid).

要初始化数据库。进入/usr/local/mysql目录。

[root@server mysql]#scripts/mysql_install_db


注:如果不能启动要设置一下环境变量 :

vi /etc/profile     在最后添加:


PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH

export PATH

保存即可。


service mysqld start 成功启动。


补充:昨天上面完成后会提示:bash: mysql: command not found

原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:

# ln -s /usr/local/mysql/bin/mysql /usr/bin