CentOS上源码安装MySQL问题解决及安全优化

当然,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 

MySQL5.7.3.0安装配置图解教程

Ubuntu 14.04下安装MySQL

《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF

Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

Ubuntu 14.04下搭建MySQL主从服务器

Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb

MySQL-5.5.38通用二进制安装

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 

......

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4d221607a2533bb814a397b8f9bc85b1.html