CentOS源码安装MySQL5.7

本文档会在/usr/local/ahsl/mysql3307目录下安装mysql5.7.20,端口号为3307。


1. 操作系统准备
操作系统版本CentOS6.5以上,如果内存超过4GB则安装 64位系统,否则安装32位系统。MySQL性能的关键瓶颈是磁盘性能,务必使用高速磁盘,如SSD或SAS组成的RAID。

1) 确认关闭SELINUX
[root@localhost ~]# cat /etc/selinux/config
SELINUX=disabled

2) 优化Linux内核参数
vi  /etc/security/limits.conf


*                soft    nofile         655350
*                hard    nofile         655350
*                soft    nproc          655350
*                hard    nproc         655350
wq保存文件后,断开连接或重启系统,使用ulimit –a查看确认





2. 创建ahsl目录
mkdir /usr/local/ahsl
cd /usr/local/ahsl

3. 安装编译依赖包gcc/c++/ ncurses /perl
yum install -y gcc gcc-c++ ncurses-devel perl
4. 安装编译工具cmake

wget --no-check-certificate  https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz

tar -xzvf /usr/local/ahsl/cmake-3.4.1.tar.gz  

cd /usr/local/ahsl/cmake-3.4.1 

./bootstrap

make && make install



5. 在centos中添加mysql用户
groupadd mysql
useradd -r -g mysql mysql


6. 下载MySQL源码
wget --no-check-certificate  https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz

7. 解压
tar -zxvf mysql-5.7.20.tar.gz

8. 创建mysql数据目录

mkdir -p  /usr/local/ahsl/mysql3307/data

chown mysql:mysql  /usr/local/ahsl/mysql3307/data




9. 编译

cd /usr/local/ahsl/mysql-5.7.20

wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

tar xzf boost_1_59_0.tar.gz

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/ahsl/mysql3307 \
-DMYSQL_UNIX_ADDR=/usr/local/ahsl/mysql3307/mysql.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/ahsl/mysql3307/data \
-DMYSQL_TCP_PORT=3307 \
-DWITH_BOOST=boost_1_59_0


make && make install

10. 设置mysql安装目录权限
chown -R mysql:mysql /usr/local/ahsl/mysql3307

11. 配置mysql连接数及配置参数优化

对于mysql5.7而言通常必须配置最大连接数,其它参数默认即可。
vi /usr/local/ahsl/mysql3307/my.cnf

[mysqld]
max_connections = 4096

对于高性能数据库服务器可以根据服务器的硬件性能进行优化,具体参数相关文章:
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html



实际上mysql5.7已经可以通过SET GLOBAL var=value的方式动态调优,但重启后会失效。
在mysql8.0中可以使用SET PERSIST var=val的方式动态修改并保存参数。


12. 初始化数据库
/usr/local/ahsl/mysql3307/bin/mysqld --initialize --user=mysql

记录随机生成的默认密码quw&sioK)48f。

13. 启动mysql服务
/usr/local/ahsl/mysql3307/bin/mysqld_safe &
提示:停止mysql服务 /usr/local/ahsl/mysql3307/support-files/mysql.server stop


14. 登陆mysql,修改root密码默认密码,创建ahsl用户
/usr/local/ahsl/mysql3307/bin/mysql -uroot -p'初始化时产生的随机密码'

set password=password('y4yhl9t');

grant all privileges on *.* to 'ahsl'@'%' identified by 'y4yhl9t';

flush privileges;

15. 随系统自动启动
vi /etc/rc.d/rc.local

在JDK前方或tomcat前方增加mysql启动。
/usr/local/ahsl/mysql3307/bin/mysqld_safe &
重启后使用netstat –anpt检查3307端口是否监听,使用sqlyog连接




16. 其它
如果同一操作系统下有多个mysql实例,请一定要移除/etc/my.cnf因为这是针对mysql参数的全局配置文件,推荐的办法是在各个实例的安装目录下放置此文件。


17. 参考资料
https://www.insp.top/article/make-install-mysql-5-7

猜你喜欢

转载自lixor.iteye.com/blog/2407782
今日推荐