CentOS7上编译安装MySQL5.6.23



CentOS7上编译安装MySQL5.6.23

1.下载源码

 

2.解压

 

 

1
tar zxvf mysql-5.6.23.tar.gz

 

3.安装必要的包

 

1
sudo yum install cmake gcc-c++ ncurses-devel perl-Data-Dumper

4.进入mysql源码目录,生成makefile

 

 

1
cmake .

5.编译

 

 

1
make

6.安装

 

 

1
sudo make install

mysql将会安装到/usr/local/mysql路径。

 

7.添加mysql用户和组

 

1
2
sudo groupadd mysql
sudo useradd -r -g mysql mysql

8.修改目录和文件权限,安装默认数据库

 


 

1
2
3
4
cd /usr/local/mysql
sudo chown -R mysql .
sudo chgrp -R mysql .
sudo scripts/mysql_install_db --user=mysql
1
sudo chown -R root .
1
sudo chown -R mysql data

 

至此,mysql就可以启动运行了。

9.启动mysql

CentOS7自带MariaDB的支持,/etc下默认存在my.cnf文件干扰mysql运行,需要先删掉

 

1
2
cd /etc
sudo rm -fr my.cnf my.cnf.d

 

然后再/etc下重建my.cnf文件,内容如下

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# For advice on how to change settings please see
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = /data/mysql/data
# port = .....
# server_id = .....
# socket = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
max_connection = 10000
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#binary log
log-bin = mysql-bin
binlog_format = mixed
expire_logs_day = 30
#slow query log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 3
log-queries-not-using-indexes
log-slow-admin-statements

现在可以启动mysql了

 

 

1
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &

CentOS7 不能使用service控制mysql服务,而源码安装的mysql也没有提供Systemd的控制脚本。

 

于是编辑/etc/rc.d/rc.local文件,添加mysql的开机启动命令。

 

1
/usr/local/mysql/bin/mysqld_safe --user=mysql &

然后给/etc/rc.d/rc.local添加可执行权限

 

 

1
sudo chmod a+x /etc/rc.d/rc.local

9.修改root密码

1
2
3
/usr/loca/mysql/bin/mysql -uroot
use mysql;
UPDATE user SET password = PASSWORD('test2015') WHERE user = 'root';
1
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'stcm2015';
1
FLUSH PRIVILEGES;

 

至此,安装基本完成了,一个mysql就能用了。