一、實驗環(huán)境
操作系統(tǒng):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

五、自定義數(shù)據目錄
MySQL的數(shù)據目錄默認是/var/lib/mysql ,當然你也可以自定義數(shù)據存放目錄
# mkdir /opt/data/mysql
# vim??/etc/my.cnf
datadir=/opt/data/mysql

注意:
socket=/var/lib/mysql/mysql.sock 這個配置沒有更改的必要
如果你自定義為? socket=/var/lib/mysql/mysql.sock,那么啟動后連接數(shù)據庫時就會報錯

如果更改了默認,那么數(shù)據庫啟動后,需要做一個軟鏈接
# 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,可以通過執(zhí)行 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初始密碼,且密碼強度需滿足一定要求,才能執(zhí)行數(shù)據庫操作
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?
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