一、實驗環(huán)境
操作系統(tǒng): CentOS 7.2 Minimal
MySQL 版本: 5.7.16
IP: 192.168.1.105
二、防火墻、selinux設(shè)置
#?setenforce?0
#?sed?-i?'s/^SELINUX=.*/SELINUX=permissive/g'???/etc/selinux/config
# firewall-cmd --permanent --zone=public --add-port=3306/tcp
# firewall-cmd --reload
三、卸載mariadb相關(guān)組件
注:一般是 mariadb-libs
#?rpm??-e???--nodeps??$(rpm?-qa?|?grep?mariadb*)
#?rpm?-qa?|?grep?mariadb*?|?xargs?rpm?-e??--nodeps
四、從MySQL官網(wǎng)下載MySQL rpm合集包
#?wget? ??http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
#?tar ?-xvf?mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar

解壓下載的MySQL bundle包),你會看到有12個rpm包

實際安裝一個MySQL數(shù)據(jù)庫,我們只需要安裝5個rpm包


五、檢查依賴,安裝依賴
# rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n' ? libaio ? ?net-tools? perl
# yum? -y install epel-release
# yum -y install ?libaio ??net-tools??
# yum -y install perl??
安裝perl,主包加依賴共有27個


四、按順序安裝MySQL組件
#?rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
#?rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
#?rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
#?rpm -ivh mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
#?rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm

# rpm -qa | grep mysql-community

安裝結(jié)束后會在Linux中的各種目錄生成必要的文件,如下表:

五、自定義數(shù)據(jù)目錄
MySQL的數(shù)據(jù)目錄默認是/var/lib/mysql ,當然你也可以自定義數(shù)據(jù)存放目錄
# 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ù)據(jù)庫時就會報錯

如果更改了默認,那么數(shù)據(jù)庫啟動后,需要做一個軟鏈接
# ln -s /opt/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
# 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ù)據(jù)庫操作
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '設(shè)置的新密碼';

# 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

投入生產(chǎn)前,你需要立刻為MySQL設(shè)置一個root密碼
交互式設(shè)置
# mysql -u root --skip-password
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '設(shè)置的新密碼';

非交互式設(shè)置
# mysql -u root --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '設(shè)置的新密碼'"

七、參考
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
CentOS Linux 7離線安裝MySQL 5.7.x
https://zhuanlan.zhihu.com/p/34719781