1. 本文档安装目录结构
1、MySQL安装路径 /usr/local/mysql
2、MySQL数据存放路径 /data/3306/data
2. 下载mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz并传至Linux服务器
链接:https://pan.baidu.com/s/15jdHgZ7ByZyvIWBzrnZmEw
提取码:445z
3. 将加压后的mysql文件夹复制到/usr/local目录下
cp /root/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz /usr/local/
4. 解压MySQL压缩包
tar -zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
5. 将压缩后的包重命名为MySQL
mv mysql-5.7.16-linux-glibc2.5-x86_64 mysql
6. 添加MySQL用户和用户组
groupadd mysql
useradd -r -g mysql mysql
7. 将mysql安装目录所有者改为MySQL用户
cd /usr/local
chown -R mysql:mysql mysql
8. 修改/etc/my.cnf文件改变MySQL数据存储路径到内存较大的/data/目录下(默认存到系统盘)
1、/data目录下创建/3306/文件夹
mkdir /data/3306
2、/data/3306目录下创建/data文件夹用于存MySQL数据
mkdir /data/3306/data
3、将/data根目录所有者改为mysql用户
chown -R mysql:mysql /data/
4、修改mysql配置文件
vi /et/my.cnf
************************以下为修改内容************************
[mysqld]
datadir=/data/3306/data
basedir = /usr/local/mysql
port=3306
#解决group by报错的问题
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#指定mysql.sock文件存放目录
socket=/data/3306/mysql.sock
character-set-server = utf8
skip-name-resolve
max_connections=1000 # 解决navicat连接的用户过多时报 too many connect的问题
lower_case_table_names=1 # 忽略表名大小写
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#Settings user and group are ignored when systemd is used.
#If you need to run mysqld under a different user or group,
#customize your systemd unit file for mariadb according to the
#instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error = /data/3306/data/error.log
pid-file = /data/3306/data/mysql.pid
#
#include all files from the config directory
#
!includedir /etc/my.cnf.d
************************以上为修改内容************************
9. 由于修改了my.cnf将原/tmp/mysql.sock移到了/data/3306/mysql.sock,所以需要创建一个软链接到/tmp。否则执行连接MySQL时报“Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)”的错。
ln -s /data/3306/mysql.sock /tmp/
10. 安装完成,初始化MySQL数据库
cd /mysql/bin/ && ./mysqld --initialize --user=mysql
a.执行成功后会在/data/3306/data/目录下生成一批文件
b.执行命令后会打印出初始密码
11. 将MySQL启动脚本放到开机初始化目录,添加为开机启动
cp /mysql/support-files/mysql.server /etc/init.d/mysql
12. 把mysql客户端放到默认路径(注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql)
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
13. 启动MySQL服务
service mysql start
service mysql status
14. 查看自动生成的root密码(11步已得到初始密码,该步可跳过)
cat /data/3306/data/error.log
得到密码:[Note] A temporary password is generated for root@localhost: h;OqWsD2!1!a
15. 使用密码连接进MySQL
mysql -uroot -p'输入上面得到的密码'
16. 进入MySQL修改密码
mysql> alter user 'root'@'localhost' identified by '自定义密码';
17. 修改root权限,以便navicat可以连接
mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> select user,host from user;
mysql> flush privileges;
18. 查看防火墙状态。关闭防火墙
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld