下载安装包
MySQL 官方下载地址:https://dev.mysql.com/downloads/mysql/
MySQL 5.7官方安装文档:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
本文完全按照官方步骤配置安装
选择Linux - generic 64位安装包
MySQL 5.7.21 二进制包下载地址:https://dev.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
1 | wget --no-check-certificate https://dev.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz |
安装依赖包
MySQL依赖于libaio 库。如果这个库没有在本地安装,数据目录初始化和后续的服务器启动步骤将会失败。请使用适当的软件包管理器进行安装。例如,在基于Yum的系统上:
1 | shell> yum search libaio |
注意
SLES 11:从MySQL 5.7.19开始,Linux通用tar包的格式是EL6而不是EL5。以致于MySQL客户端bin / mysql需要libtinfo.so.5。
解决方法是创建软链接,例如64位系统上的ln -s libncurses.so.5.6 /lib64/libtinfo.so.5
或32 位系统上的ln -s libncurses.so.5.6 /lib/libtinfo.so.5
。
创建一个mysql用户和组
1 | shell> groupadd mysql |
注意
此用户仅用于运行mysql服务,而不是登录,因此使用useradd -r和-s /bin/false命令选项来创建对服务器主机没有登录权限的用户。
解压到指定目录
1 | shell> tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -C /opt |
配置环境变量
1 | echo "export PATH=$PATH:/opt/mysql-5.7.21/bin" >> /etc/profile |
配置数据库目录
数据目录:/opt/mysql-5.7.21/data
参数文件my.cnf:/etc/my.cnf
错误日志log-error:/opt/mysql-5.7.21/log/mysql_error.log
二进制日志log-bin:/opt/mysql-5.7.21/log/mysql_bin.log
慢查询日志slow_query_log_file:/opt/mysql-5.7.21/log/mysql_slow_query.log
套接字socket文件:/opt/mysql-5.7.21/run/mysql.sock
pid文件:/opt/mysql-5.7.21/run/mysql.pid
创建目录:
1 | shell> mkdir -p /opt/mysql-5.7.21/{data,log,etc,run} |
配置my.cnf文件
在/etc/下创建my.cnf文件,加入如下参数,其他参数根据需要配置(以下配置按默认配置设置)
1 | shell> touch /etc/my.cnf |
1 | [client] |
初始化
1 | shell> mysqld --initialize --user=mysql --basedir=/opt/mysql-5.7.21 --datadir=/opt/mysql-5.7.21/data |
此时会生成一个临时密码,可以在mysql_error.log文件找到
1 | shell> grep 'temporary password' /opt/mysql-5.7.21/log/mysql_error.log |
生成ssl
1 | shell> mysql_ssl_rsa_setup --basedir=/opt/mysql-5.7.21 --datadir=/opt/mysql-5.7.21/data/ |
配置服务,使用systemctl管理
1 | shell> cd /usr/lib/systemd/system |
文件内容如下
1 | # Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. |
让systemctl加载配置服务
1 | shell> systemctl daemon-reload |
启动MySQL服务
1 | shell> systemctl start mysqld.service |
MySQL用户初始化
重置密码(上一步已经重置过了 这次可以忽略)
删除匿名用户
关闭root用户的远程登录
删除测试数据库
1 | shell> /opt/mysql-5.7.21/bin/mysql_secure_installation |
导入时区
1 | shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql |
验证安装
1 | shell> mysqladmin version -u root -p |
参考
1.https://www.jianshu.com/p/0d628b2f7476
2.https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html