一、实验环境
操作系统:CentOS 7.x
MySQL版本:MySQL5.7
IP: 192.168.1.106
二、防火墙、selinux设置
# setenforce 0
# sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
# firewall-cmd --zone=public--add-port=3306/tcp --permanent
# firewall-cmd --reload
三、配置YUM源
MySQL官网yum源:http://dev.mysql.com/downloads/repo/yum
# wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
# yum -y install mysql57-community-release-el7-11.noarch.rpm
# yum repolist enabled | grep "mysql.*-community.*"
你可以修改 /etc/yum.repos.d/mysql-community.repo,改变默认安装的mysql版本
需要安装哪个版本,那么设置改仓库为enabled=1,其他设置为enabled=0
# vim /etc/yum.repos.d/mysql-community.repo
四、安装MySQL
# yum -y install mysql-community-server mysql-community-client
MySQL安装包有一定大小,请耐心等待安装
# rpm -qa | grep mysql-community
五、自定义数据目录
MySQL的数据目录默认是/var/lib/mysql ,当然你也可以自定义数据存放目录
# mkdir /opt/data/mysql
# vim /etc/my.cnf
datadir=/opt/data/mysql
注意:
socket=/var/lib/mysql/mysql.sock 这个配置没有更改的必要
如果你自定义为 socket=/var/lib/mysql/mysql.sock,那么启动后连接数据库时就会报错
如果更改了默认,那么数据库启动后,需要做一个软链接
# ln -s /opt/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
因为rpm包安装的MysQL客户端默认会去找/var/lib/mysql/mysql.sock,你也可以在MySQL配置文件中加客户端相关字段,然后重启MySQL!
# chown -R mysql:mysql /opt/data/mysql
六、初始化MySQL
初始化MySQL,可以通过执行 mysqld --initialize 或者 mysqld --initialize-insecure
使用 --initialize 选项,以“安全模式”初始化,会在日志中生成一个随机的root初始密码
使用--initialize-insecure选项,以“非安全模式”初始化,没有root密码生成,你需要及时为MySQL指定一定强度的root密码
方式一、以“安全模式”初始化
# mysqld --initialize --datadir=/opt/data/mysql --user=mysql
# cat /var/log/mysqld.log | grep "temporary password"
# systemctl start mysqld
# systemctl status mysqld
# mysql -u root -p"*simYaJY=7zH"
首次登录,必须更改随机的root初始密码,且密码强度需满足一定要求,才能执行数据库操作
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '设置的新密码';
# mysql -u root -p"MySQL@123"
方式二、以 “非安全模式”初始化
# mysqld --initialize-insecure --datadir=/opt/data/mysql --user=mysql
# systemctl start mysqld
# systemctl status mysqld.service
# mysql -u root --skip-password
投入生产前,你需要立刻为MySQL设置一个root密码
交互式设置
# mysql -u root --skip-password
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '设置的新密码';
非交互式设置
# mysql -u root --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '设置的新密码'"
七、参考
The world's most popular open source database
https://dev.mysql.com
A Quick Guide to Using the MySQL Yum Repository
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
Installing MySQL on Linux Using the MySQL Yum Repository
https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html