SSL安全套接層,即其繼任者傳輸層安全是爲網絡通訊提供安全即數據完整性的一種安全協議。複製默認是明文進行傳輸,經過SSL加密能夠大大提升數據的安全性。mysql
拓撲圖:
sql
在主mysql建立SSL/RSA文件數據庫
cd /usr/local/mysql/bin
vim
mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/dsata 建立新的SSL文件
安全
重啓mysqld服務:
服務器
systemctl restart mysqld
網絡
查看錯誤日誌:
tcp
vim /usr/local/mysql/data/mysqld.err
ide
根據報錯信息顯示不能得到私鑰,咱們就能夠查看這個文件,用命令ls
測試
沒有r權限,因此使用chmod設置權限。
chmod +r /usr/local/mysql/data/server-key.pem
而後設置完權限,重啓mysql服務。登陸mysql,執行show variables like '%ssl%';
注意:啓用mysql支持ssl安全鏈接主要用於mysql主從複製,internet複製建議採用ssl鏈接。
在主mysql上的操做完成後,再生成一個複製帳號:REQUIRE SSL
在mysql上啓用二進制日誌並重啓mysql服務
vim /etc/my.cnf
log-bin=mysql-bin 在mysql主配置文件添加此行
systemct restart mysqld
查看主mysql的狀態:show master status;
須要記住file和position的值,由於從服務器中須要
防火牆容許3306/tcp通訊
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
從服務器上配置主配置文件
注意的是主從服務器的主配置文件中的server_id要惟一。不能重複
把主mysql生成的證書給了從服務器
scap ca.pem client-cert.pem client-key.pem root@10.0.0.2:/usr/local/mysql/data
設置client-key.pem的r權限
chmod +r client-key.pem
配置SSL:修改主配置文件/etc/my.cnf,添加內容
重啓mysqld服務
而後查看是否有錯誤日誌
查看SSL是否被支持
在配置主從複製以前能夠在mysql上用SSL鏈接主服務器測試
cd /usr/local/mysql/data
mysql --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssk-key=client-key.pem -u rep -p123456 -h 10.0.0.1
SSL測試鏈接成功,而且登入的SSL協議是:Cipher in use is DHE-RSA-AES256-SHA
最後開始配置主從replicate,登陸從mysql
啓動從:
查看從的狀態:
slave_IO_Running:Yes
Slave_SQL_Running:Yes
測試:能夠在主服務器上建立一個表,表中插入一行數據。
create database db1 建立數據庫
use db1 進入db1數據庫
create table test (id int); 建立一個名爲test的表
insert into test values(1); 向表test中插入數據1
select * from test; 查看test表
在從服務器上
show databases; 查看全部數據庫
use db1; 進入db1數據庫
show tables; 查看數據庫中的全部表
select * from test; 查看test表中的數據