本文的操作系统是一个刚装好的新系统,因此默认没有安装cmake,make,gcc,g++等工具,因此安装过程中也会涉及到这些工具的安装。
1.下载MySQL安装包
直接去http://dev.mysql.com/downloads/mysql/页面,Select Version选择5.5.35,Select Platform选择Source Code,然后下载Generic Linux (Architecture Independent)Compressed TAR Archive,大小为20.7M。
有人可能在系统中曾经安装过MySQL,或者卸载的过程中存在残留,为了确保安装前不存在任何MySQL的东西,我们先卸载(清除)原有的安装。如果你肯定之前没有安装过,或者系统没有自带MySQL,那下面的几步可以不予考虑。
(1)查找带mysql的文件,删除曾经的安装残余
[huake@localhost ~]$ cd / #切换到根目录
[huake@localhost /]$ su #切换到超级用户
口令:
[root@localhost /]# find -name "*mysql*" #查找带mysql的文件
./selinux/booleans/mysqld_disable_trans
./selinux/booleans/allow_user_mysql_connect
./home/huake/Desktop/mysql-5.5.35.tar.gz
首先切换到根目录,把帐号切换成超级用户,在根目录下开始查找带mysql字样的文件。从上面的结果中看出,本机存在一个 mysql-5.5.35.tar.gz源码包,以及 mysqld_disable_trans和allow_user_mysql_connect 两个文件。后面两个文件是删除不掉的,且为空文件,对安装没有任何影响。除此之外,出现诸如/usr/local/mysql/等的文件,均可以认为是安装的残余,可以直接删除之(这是一种最保险的卸载软件的方法)。
(2)更改源码文件的权限并解压
[root@localhost huake]# chmod 755 mysql-5.5.35.tar.gz
[root@localhost huake]# tar zxvf mysql-5.5.35.tar.gz mysql-5.5.35
安装包被加压到mysql-5.5.35目录下。
2.添加mysql用户和用户组
这一步貌似不是必须的,但习惯上会为mysql软件创建一个mysql用户。首先我们要看看是不是已经存在mysql用户和组了。使用如下指令:
[root@localhost /]# cat /etc/passwd
然后从passwd文件中看是否存在mysql帐号。我的本机已经存在mysql帐号了,如下所示:
mysql:x:501:501::/home/mysql:/bin/bash
如[果机器上没有mysql帐号,可以使用如下指令添加:
root@localhost huake]# groupadd mysql
[root@localhost huake]# useradd -g mysql mysql
需要注意的是,可能是由于安全策略,我机器上添加帐号必须要以root帐号登录系统之后才能添加,在非root帐号的界面里,即使su成root帐号,也不能添加用户和用户组。
3.安装cmake,make,gcc,g++等
yum install cmake #安装cmake
此时会自动下载cmake的包并安装。
yum install make #安装make
此时会自动下载make的包并安装。
yum install gcc #安装gcc
此时会自动下载gcc的包并安装。
yum install gcc-c++ #安装g++
此时会自动下载g++包并安装。注意,很多人在装的时候没有安张g++,这会导致安装过程出错。
另外,我们还需要安装ncurses-devel包,否则编译过程中也会报错。使用如下指令可以安装:
rpm -ivh ncurses-devel*.rpm
4.编译安装MySQL
现在,我们可以开始编译安装MySQL了。切换到mysql-5.5.35目录下,输入如下指令:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql -DMYSQL_DATADIR=/usr/local/webserver/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR==/usr/local/webserver/mysql/mysql.sock -DMYSQL_USER=mysql -DWITH_DEBUG=0
上面指令的作用分别是:
DCMAKE_INSTALL_PREFIX 指定安装路径
DMYSQL_DATADIR 指定数据文件路径
DWITH_INNOBASE_STORAGE_ENGINE 指定存储引擎
MYSQL_TCP_PORT 指定占用端口
DMYSQL_UNIX_ADDR 指定SOCK文件路径
DMYSQL_USER 指定用户
DWITH_DEBUG 调试模式
编译之后,开始安装,指令为:
make
make install
安装完毕后,进入之前设置的安装路径usr/local/webserver/mysql,得到安装后的文件如下如图所示:
这说明安装已经大功告成了。
5.安装默认数据库实例
安装完成后并不表示大功告成了,因为我们还需要安装默认数据库实例,也就是通常见到的mysql数据库。步骤如下:
cd /usr/local/webserver/mysql #切换到mysql安装目录下
cp support-files/my-medium.cnf /etc/my.cnf #把my-medium.cnf复制到etc下
vim /etc/my.cnf #修改my.cnf文件
chown mysql:mysql /etc/my.cnf #修改权限
chown -R mysql:mysql /usr/local/webserver/mysql
cp scripts/mysql_install_db . #把my-medium.cnf 复制到安装路径下
./mysql_install_db #安装数据库
需要说明的是,上面修改my.cnf文件的时候,没有做任何修改,因为我在退出的时候忘记保存了。实际上因为我是默认参数安装,所以不修改也没有什么坏处。
[root@localhost mysql]# ./bin/mysqld_safe --user=root &
启动成功。查看MySQL进程,结果如下:
[root@localhost mysql]# ps -ef | grep mysql
root 22971 1 0 19:16 ? 00:00:00 /bin/sh ./bin/mysqld_safe --user=root
root 23223 22971 0 19:16 ? 00:00:02 /usr/local/webserver/mysql/bin/mysqld --basedir=/usr/local/webserver/mysql --datadir=/usr/local/webserver/mysql/data --plugin-dir=/usr/local/webserver/mysql/lib/plugin --user=root --log-error=/usr/local/webserver/mysql/data/localhost.localdomain.err --pid-file=/usr/local/webserver/mysql/data/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
root 23825 23314 0 19:32 pts/1 00:00:00 grep mysql
至此,安装完成。