最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL基于SSL協(xié)議進(jìn)行主從復(fù)制的詳細(xì)操作教程

 更新時(shí)間:2015年12月23日 11:33:15   作者:zdz  
這篇文章主要介紹了MySQL基于SSL協(xié)議進(jìn)行主從復(fù)制的詳細(xì)操作教程,示例環(huán)境基于Linux系統(tǒng)以及OpenSSL客戶端,需要的朋友可以參考下

當(dāng)mysql跨越互聯(lián)網(wǎng)進(jìn)行復(fù)制時(shí)別人可以竊取到mysql的復(fù)制信息,這些信息是明文的,因此存在不安全性,這里通過ssl對復(fù)制的信息進(jìn)行加密。當(dāng)在客戶沒有固定ip而要訪問服務(wù)器時(shí),mysql要允許任意地址的訪問,服務(wù)端和客戶端通過證書驗(yàn)證可以防止暴力破解。

開始之前讓我們先來回顧一下SSL協(xié)議客戶端OpenSSL的安裝過程:
安裝openssl

mkdir /test/setup
cd /test/setup
tar zxvf openssl-0.9.8b.tar.gz
cd openssl-0.9.8b
./config
make && make install

開啟mysql中ssl功能
登錄Mysql查看

mysql> show variables like '%ssl%'; 
+---------------+----------+ 
| Variable_name | Value  | 
+---------------+----------+ 
| have_openssl | DISABLED | 
| have_ssl   | DISABLED | 
| ssl_ca    |     | 
| ssl_capath  |     | 
| ssl_cert   |     | 
| ssl_cipher  |     | 
| ssl_key    |     | 
+---------------+----------+

如果mysql輸出如上所述,那么繼續(xù)操作開啟ssl;如果不是,重新編譯安裝mysql,注意生成makefile時(shí)填寫參數(shù)正確。
退出mysql,編輯/etc/my.cnf
在[mysqld]和[mysqldump]之間,加入下列配置信息:

ssl

保存后重新啟動(dòng)mysql,再次登錄mysql

mysql -uroot -p
mysql> show variables like '%ssl%'; 
+---------------+-------+ 
| Variable_name | Value | 
+---------------+-------+ 
| have_openssl | YES  | 
| have_ssl   | YES  | 
| ssl_ca    |    | 
| ssl_capath  |    | 
| ssl_cert   |    | 
| ssl_cipher  |    | 
| ssl_key    |    | 
+---------------+-------+

好了,下面進(jìn)入正題:
mysql基于ssl復(fù)制
1、創(chuàng)建證書中心
在主服務(wù)器上創(chuàng)建證書中心

cd /etc/pki/CA

生成私鑰

(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

生成自簽證書,由于需要輸入大量用戶信息,因此編輯證書的配置文件,在私有的CA上創(chuàng)建證書要注意所有的用戶信息要和CA中的一致,從國家到部門都要相同,否則會(huì)造成證書無法使用

vim /etc/pki/tls/openssh.cnf
 [ req_distinguished_name ]
 countryName     = Country Name (2 letter code)
 countryName_default = CN
 countryName_min   = 2
 countryName_max   = 2
 stateOrProvinceName = State or Province Name (full name)
 stateOrpovinceName_default = FJ
 localityName    = Locality Name (eg,city)
 localityName    = FZ
 O.organizationName = Organization Name (eg,company)
 O.organizationName_default = zdz
 organizationalUnitName   = Organizational Unit Name (eg,section)
 organizationalUnitName_default = zdz

生成自簽證書

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650

-x509是創(chuàng)建自簽證書是需要的參數(shù),在創(chuàng)建其他證書時(shí)不能加該參數(shù)

由于是自簽證書因此要修改證書路徑

vim /etc/pki/tls/openssl.cnf
 [ CA_defalut ]
 dir = /etc/pki/CA
 certs = $dir/certs   #存放生成證書的目錄
 crl_dir = $dir/crl   #存放吊銷證書的目錄
 database = $dir/index.txt  #證書的索引文件
 new_certs_dir = $dir_newcerts  #新簽的證書目錄
 serial = $dir/serial  #序列號
 crl = $dir/crl.pem
 private_key = $dir/private/cakey.pem  #證書中心私鑰文件

創(chuàng)建證書編號

mkdir certs crl newcerts
 touch index.txt
 echo 00 > serial

2、為主服務(wù)器創(chuàng)建證書
服務(wù)器的名稱必須固定,在申請證書時(shí)要輸入服務(wù)器名稱,證書和服務(wù)器名稱對應(yīng)

創(chuàng)建私鑰

mkdir /usr/local/mysql/ssl
 cd /usr/local/mysql/ssl
 (umask 077;openssl genrsa -out /usr/local/mysql/ssl/master.key 2048)

生成證書申請

openssl req -new -key master.key -out master.csr

在證書服務(wù)器上對master的證書進(jìn)行簽發(fā)

openssl ca -in master.csr -out master.crt -days 365

3、創(chuàng)建從服務(wù)器證書

(umask 077;openssl genrsa -out /usr/local/mysql/ssl/slave.key 2048)
 openssl req -new -key slave.key -out slave.csr

將從服務(wù)器的證書申請文件復(fù)制到證書服務(wù)器上進(jìn)行簽發(fā)

opessl ca -in slave.csr -out slave.crt -days 356

4、修改證書權(quán)限和mysql配置文件
將證書的公鑰cacert.pem復(fù)制到主從服務(wù)器的目錄下

cd /usr/local/mysql/ssl
 cp /etc/pki/CA/cacert.pem ./
 chown -R mysql:mysql master.crt master.key cacert.pem
 chmod 600 master.crt master.key cacert.pem
 vim /usr/local/mysql/my.cnf
 ssl
 ssl_ca         = /usr/local/mysql/ssl/cacrt.pem
 ssl_cert        = /usr/local/mysql/ssl/master.crt
 ssl_key         = /usr/local/mysql/ssl/master.key

修改從服務(wù)器配置

cd /usr/local/mysql/ssl
 cp /etc/pki/CA/cacert.pem ./
 chown -R mysql:mysql slave.crt slave.key cacert.pem
 chmod 600 slave.crt slave.key cacert.pem
 vim /usr/local/mysql/my.cnf
 ssl
 ssl_ca         = /usr/local/mysql/ssl/cacrt.pem
 ssl_cert        = /usr/local/mysql/ssl/slave.crt
 ssl_key         = /usr/local/mysql/ssl/slave.key

5、在主服務(wù)器上創(chuàng)建復(fù)制用戶

grant replication slave on *.* to slave@'192.168.216.133' identified by 'slave' requere ssl;
 flush privileges;

查看主服務(wù)器當(dāng)前二進(jìn)制位置

mysql> show master status ;
 +-------------------------+------------+---------------------+--------------------------+--------------------------+
 | File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
 +-------------------------+------------+---------------------+--------------------------+--------------------------+
 | mysql-bin.000007 |   1015  |               |                  |                  |
 +-------------------------+------------+---------------------+--------------------------+---------------------------+
 1 row in set (0.00 sec)

6、在從服務(wù)器上開始復(fù)制

change master to
 master_host='192.168.216.132',
 master_user='slave',
 master_password='slave',
 master_log_file='mysql-bin.000007',
 master_log_pos=1015,
 master_ssl=1,
 master_ssl_ca=' /usr/local/mysql/ssl/cacrt.pem',
 master_ssl_cert='/usr/local/mysql/ssl/slave.crt',
 master_ssl_key='/usr/local/mysql/ssl/slave.key';
 start slave;

查看狀態(tài)

20151223113001802.png (515×581)

錯(cuò)誤1:

如果要確保證書沒有問題可以通過建立測試的用戶同ssl進(jìn)行連接在主服務(wù)器上開一個(gè)權(quán)限很大的用戶,進(jìn)行ssl的登錄測試

grant all privileges on *.* to root@'192.168.216.133′ identified by ‘root' require ssl;

[root@slave ssl]# mysql -uroot -proot -h192.168.216.133 –ssl-ca=cacrt.pem –ssl-cert=slave.crt –ssl-key=slave.key

Warning: Using a password on the command line interface can be insecure.

ERROR 2026 (HY000): SSL connection error: ASN: before date in the future

這是由于虛擬的時(shí)間不正確導(dǎo)致
如果這時(shí)候不使用ssl方式進(jìn)行連接則會(huì)報(bào)出錯(cuò)誤

[root@slave ssl]# mysql -uroot -proot -h192.168.216.133;

Warning: Using a password on the command line interface can be insecure.

ERROR 1045 (28000): Access denied for user ‘root'@'192.168.216.132′ (using password: YES)

錯(cuò)誤2:

在配置文件中添加證書配置后執(zhí)行 show variables like ‘%ssl%'顯示

20151223113020248.png (426×277)

這是由于沒有將證書的屬主改為mysql,可以從日志中得知是無權(quán)限獲取私鑰

20151223113037083.png (695×95)

相關(guān)文章

  • MySQL數(shù)據(jù)查詢limit子句用法舉例

    MySQL數(shù)據(jù)查詢limit子句用法舉例

    這篇文章主要介紹了MySQL數(shù)據(jù)查詢limit子句用法的相關(guān)資料,LIMIT子句在MySQL中用于限制查詢結(jié)果集的行數(shù),適用于分頁顯示和限制數(shù)據(jù)量,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • 探討:innodb與myisam在存儲(chǔ)上有何特點(diǎn)和區(qū)別

    探討:innodb與myisam在存儲(chǔ)上有何特點(diǎn)和區(qū)別

    本篇文章是對innodb與myisam在存儲(chǔ)上有何特點(diǎn)和區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL執(zhí)行SQL語句的流程詳解

    MySQL執(zhí)行SQL語句的流程詳解

    這篇文章主要介紹了MySQL執(zhí)行SQL語句的流程詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Windows10系統(tǒng)下Mysql8.0.13忘記root密碼的操作方法

    Windows10系統(tǒng)下Mysql8.0.13忘記root密碼的操作方法

    這篇文章主要給大家介紹了關(guān)于Windows10系統(tǒng)下Mysql8.0.13忘記root密碼的操作方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • mysql修改自增主鍵數(shù)值無效的問題及解決

    mysql修改自增主鍵數(shù)值無效的問題及解決

    這篇文章主要介紹了mysql修改自增主鍵數(shù)值無效的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MySQL在Linux系統(tǒng)中隱藏命令行中的密碼的方法

    MySQL在Linux系統(tǒng)中隱藏命令行中的密碼的方法

    這篇文章主要介紹了MySQL在Linux系統(tǒng)中隱藏命令行中的密碼的方法,作者利用簡單的C程序?qū)崿F(xiàn),需要的朋友可以參考下
    2015-06-06
  • MySQL鎖阻塞的深入分析

    MySQL鎖阻塞的深入分析

    這篇文章主要給大家介紹了關(guān)于MySQL鎖阻塞的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • MySQL千萬數(shù)據(jù)量深分頁優(yōu)化流程(拒絕線上故障)

    MySQL千萬數(shù)據(jù)量深分頁優(yōu)化流程(拒絕線上故障)

    這篇文章主要為大家介紹了MySQL千萬數(shù)據(jù)量深分頁優(yōu)化拒絕線上故障,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • mysql出現(xiàn)提示錯(cuò)誤10061的解決方法

    mysql出現(xiàn)提示錯(cuò)誤10061的解決方法

    這篇文章主要為大家詳細(xì)介紹了mysql出現(xiàn)提示錯(cuò)誤10061的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程

    PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程

    這篇文章主要介紹了PureFTP借助MySQL實(shí)現(xiàn)用戶身份驗(yàn)證的操作教程,就像普通程序中的用戶注冊功能那樣為用戶登陸數(shù)據(jù)信息建立一個(gè)數(shù)據(jù)庫來進(jìn)行驗(yàn)證,需要的朋友可以參考下
    2015-12-12

最新評論

八宿县| 弋阳县| 赤壁市| 喀什市| 诸城市| 延安市| 新源县| 通江县| 乌什县| 泸水县| 长治县| 德庆县| 云浮市| 乌兰浩特市| 博罗县| 佛山市| 焦作市| 石狮市| 山东省| 临沧市| 刚察县| 吴忠市| 旺苍县| 上林县| 台山市| 铜梁县| 通州市| 临清市| 九台市| 奇台县| 航空| 满城县| 桑日县| 乐东| 商南县| 新泰市| 东至县| 乌拉特后旗| 平邑县| 东宁县| 正宁县|