安裝 MySQL
最新穩(wěn)定的MySQL版本是5.7吴汪,所以這是我們將在本教程中安裝和配置的版本糊探。該包是您需要添加的第一件事缔刹,它在MySQL存儲(chǔ)庫中可用愉粤。 執(zhí)行以下命令開始:
yum localinstall -y https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
該命令將添加可以用于安裝數(shù)據(jù)庫系統(tǒng)的MySQL存儲(chǔ)庫:
yum install -y mysql-community-server
在安裝過程結(jié)束時(shí)暇务,使用systemd工具啟動(dòng)MySQL:
systemctl start mysqld
檢查MySQL狀態(tài):
mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) ...
MySQL可以通過執(zhí)行netstat工具看到3306端口泼掠,
netstat -plntu | grep mysql
tcp6 0 0 :::3306 :::* LISTEN 8776/mysqld
MySQL配置
在MySQL服務(wù)器的初始啟動(dòng)時(shí),將創(chuàng)建一個(gè)超級(jí)用戶帳戶('root'@'localhost)垦细,并將默認(rèn)密碼設(shè)置并存儲(chǔ)在錯(cuò)誤日志文件中择镇。 通過執(zhí)行以下命令顯示此密碼:
grep 'temporary password' /var/log/mysqld.log
輸出為:
[Note] A temporary password is generated for root@localhost: en>_g6syXIXq
第一步是更改root密碼。
登錄到MySQL shell:
mysql -u root -p
輸入使用上一個(gè)命令顯示的自動(dòng)生成的密碼括改。
接下來,使用以下查詢更改密碼:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'RootStrongPassword1!';
刷新權(quán)限并退出:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> EXIT;
Bye
為MySQL啟用SSL
默認(rèn)情況下,MySQL有自己的SSL證書疮茄,存儲(chǔ)在/var/lib/mysql中伦吠。 為了本教程的目的,這些證書是足夠好的惹骂。
注意:在生產(chǎn)中苏携,始終使用更安全和“personal”的證書。
從MySQL shell檢查SSL对粪。
# mysql -u root -p
mysql> SHOW GLOBAL VARIABLES LIKE '%ssl%';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | ca.pem |
| ssl_capath | |
| ssl_cert | server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | server-key.pem |
+---------------+-----------------+
9 rows in set (0.01 sec)
檢查SSL狀態(tài):
mysql> STATUS;
mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper
...
SSL: Not in use
...
如您所見右冻,SSL沒有被使用。 所以著拭,下一步是啟用它纱扭。
在MySQL配置文件中啟用SSL
編輯MySQL配置文件:
# $EDITOR /etc/my.cnf
在[mysqld]部分,粘貼以下內(nèi)容:
ssl-ca=/var/lib/mysql/ca.pem
ssl-cert=/var/lib/mysql/server-cert.pem
ssl-key=/var/lib/mysql/server-key.pem
保存儡遮,退出并重啟MySQL服務(wù)乳蛾。
# systemctl restart mysqld
再次檢查MySQL shell中的SSL狀態(tài)。
# mysql -u root -p
mysql> STATUS;
mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper
...
SSL: Not in use
...
啟用客戶端
此時(shí)尚未使用SSL。 這是因?yàn)槲覀冃枰ㄟ^SSL強(qiáng)制所有的客戶端連接肃叶。 所以忆首,退出MySQL shell并再次編輯my.cnf文件。
# $EDITOR /etc/my.cnf
在文件末尾粘貼以下內(nèi)容:
[client]
ssl-ca=/var/lib/mysql/ca.pem
ssl-cert=/var/lib/mysql/client-cert.pem
ssl-key=/var/lib/mysql/client-key.pem
再次保存被环,退出并重新啟動(dòng)MySQL:
# systemctl restart mysqld
檢查MySQL狀態(tài)如上所述:
mysql> STATUS
mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper
...
SSL: Cipher in use is DHE-RSA-AES256-SHA
...
現(xiàn)在啟用糙及,連接通過它進(jìn)行保護(hù)。
啟用遠(yuǎn)程連接
本教程的最后一步是啟用遠(yuǎn)程連接筛欢。 每個(gè)系統(tǒng)管理員都知道浸锨,只允許經(jīng)過驗(yàn)證的客戶端是至關(guān)重要的。
編輯MySQL配置文件:
# $vim /etc/my.cnf
在[mysqld]部分的末尾粘貼以下行:
bind-address = *
#require_secure_transport = ON
保存版姑,退出并重啟MySQL柱搜。
# systemctl restart mysqld
為遠(yuǎn)程連接創(chuàng)建新用戶
此時(shí),SSL和遠(yuǎn)程連接已啟用剥险。 接下來要做的是創(chuàng)建一個(gè)新的MySQL用戶:
# mysql -u root -p