当然,MySQL的安装方法多种多样,在CentOS上,你可以采用YUM的方式安装,这样的好处是:快速方便。基本上,它会帮你解决所有的函数库依赖问题,正常情况下,只要YUM执行完成,那么MySQL也就可以使用了。
但我更倾向于使用源码的方式来安装MySQL,原因也很简单:除了有详细的官方文档外,你还可以非常清楚地知道你自己在做什么,这点在以后MySQL运行出现问题时将会有很大的帮助!
但即便是按照官方文档来安装,你也会遇到各种各样的问题,这里,我将呈现一个完整的过程给大家,直到完成下面的4个任务:
下载MySQL 5.6
安装准备:安装MySQL依赖函数库
安装与运行MySQL
优化MySQL
(1)账户安全优化
(2)数据库安全优化
我是安装完CentOS 6.5后就进行MySQL 5.6的安装,因此非常有参考价值!
CentOS 7下源码安装MySQL 5.6
Ubuntu 14.04下安装MySQL
Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL
Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群
Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb
1.下载MySQL 5.6
下载地址:
进入该下载地址后,选择:
Linux - Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive
或
Linux - Generic (glibc 2.5) (x86, 32-bit), Compressed TAR Archive
这取决于你用的是32位的还是64位的,这里,我下载的是64位的,下载完成后的包如下:
1 2
[root@leaf ~]# ls mysql-5.6.29-linux-glibc2.5-x86_64.tar.gz
2.安装准备:安装MySQL依赖函数库
MySQL依赖一个名为libaio的函数库,需要先安装它,否则后面安装MySQL会出现问题。
如下:
1 2 3 4 5 6
[root@leaf ~]# yum search libaio #查找libaio的相关信息 [root@leaf ~]# yum install libaio Loaded plugins: security Setting up Install Process Package libaio-0.3.107-10.el6.x86_64 already installed and latest version Nothing to do
当然,有可能在你安装完CentOS后,你就已经安装了libaio,这取决你你当时安装CentOS时所选择的安装包,如上面我的安装提示,就说明我的系统上已经安装了libaio了。
3.安装与运行MySQL
(1)分别创建一个名为mysql的用户和用户组
如下:
1 2
[root@leaf ~]# groupadd mysql [root@leaf ~]# useradd -r -g mysql -s /bin/false mysql
-r和-s参数的可以使得mysql这个用户没有登陆你系统的权限,这可以保证系统的安全性。
(2)解包与建立软链接
如下:
1 2 3
[root@leaf ~]# cd /usr/local [root@leaf local]# tar zxvf /root/mysql-5.6.29-linux-glibc2.5-x86_64.tar.gz [root@leaf local]# ln -s /usr/local/mysql-5.6.29-linux-glibc2.5-x86_64/ mysql
需要知道的是,正常情况下,我们习惯将编译安装的软件放在/usr/local目录下,当然你也可以自行选择,不过还是建议放在这里。
建立软链接的好处是,如果你需要使用mysql的安装目录,就不用去输入一长串的目录名称了,因为我们解压缩后的mysql包的目录,名字很长。
(3)初始化Data目录
解包完MySQL后,MySQL目录中会有一个data目录:
1 2 3
[root@leaf local]# cd mysql [root@leaf mysql]# ls -d data/ data/
里面包含的是MySQL运行所必需的系统信息,因此我们需要将这些数据初始化,如下:
1 2 3 4 5
[root@leaf mysql]# chown -R mysql . #修改mysql目录下的所有文件的属主为mysql [root@leaf mysql]# chgrp -R mysql . #修改mysql目录下的所有文件的属组为mysql [root@leaf mysql]# scripts/mysql_install_db --user=mysql #以mysql用户的身份初始化数据 [root@leaf mysql]# chown -R root . #修改mysql目录下的所有文件的属主为root [root@leaf mysql]# chown -R mysql data #修改mysql目录下的data目录的属主为mysql
请务必按照上面的操作进行,至于详细的是什么意思,为什么要这样做,可以参考官方文档,有非常详细的解释:
(4)启动MySQL
如下:
1 2 3 4 5
[root@leaf mysql]# bin/mysqld_safe --user=mysql & [1] 30877 [root@leaf mysql]# 160306 11:58:50 mysqld_safe Logging to '/var/log/mysqld.log'. 160306 11:58:50 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 160306 11:58:51 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
理论上应该是可以的,但是看我上面的操作,出现了ended的提示,也就是mysql启动不了,这时我们去看一下日志信息:
1 2 3 4 5
[root@leaf ~]# tail -f /var/log/mysqld.log ......