開發與維運

mysql主從複製

前提:三年前雙11買的阿里雲今年到期了,win2012的,上面mysql數據庫裡記著自己的一些記賬數據,上一年雙11買了騰訊雲的,centos7.7, 想學學MYSQL的複製功能,今天趁著無BUG可擼,試著配置了一下,成功,在阿里雲上的部署的網站寫入數據,可同時複製到騰訊雲上了,以下是配置步驟:

  1. 遠程桌面登錄阿里雲服務器,打開sqlyog 執行select version()查看版本號

1.png

  1. 停掉MYSQL服務,看配置文件 "C:ProgramDataMySQLMySQL Server 8.0my.ini" 裡的[mysqld]下的配置,記下來:

log-bin="iZwz95a6wosz6ka-bin"
server-id=1

  1. 再啟動MYSQL服務,通過命令行登錄 上MYSQL,執行:show master status, 記下結果 :

名稱:iZwz95a6wosz6ka-bin.000007 位置:155

  1. 阿里雲MYSQL做為主庫,創建可供遠程複製的賬號,因為是MYSQL 8.0的,得拆分成二條語句來執行,先建立賬號,再設置權限

create user 'replic_user'@'%' identified by 'copypassword';
grant replication slave,replication client on . to 'replic_user'@'%' ;

  1. 用sqlyog裡的導出功能把niunan數據庫整個全部導出,弄到本地備份,至此主庫的操作完成, 下面要在騰訊雲的從庫上進行操作
  2. 重新開始,上騰訊雲網站給服務器重新系統,centos 7.7, 裝完後用xshell登錄進去,根據寶塔網站(https://bt.cn/)的安裝教程安裝 寶塔面板 ,在寶塔裡的軟件商店再安裝MYSQL8。0 (因為之前自己測試用命令安裝 MYSQL真的好慢好慢,根本就下載不了,yum install mysql)
  3. 把第五步備份的文件傳到/root目錄下,在xshell 裡mysql -u root -p 登錄 MYSQL, source /root/niunandb.sql 導入牛腩數據庫
  4. 在寶塔上修改MSYQL的配置文件,[mysqld]下,改完後重啟下服務

log_bin=iZwz95a6wosz6ka-bin
server_id=2
relay_log=/path_to_mysql_log/mysql-relay-bin
log_slave_updates=1
read_only=1

記得要建立/path_to_mysql_log目錄

  1. 在xshell裡mysql -u root -p 登錄 MYSQL,執行命令設置主庫連接的用戶名和密碼:
  2. master to master_host='120.78.185.96',master_port=3306,master_user='replic_user',master_password='copypassword',master_log_file='iZwz95a6wosz6ka-bin.000007',master_log_pos=155

那個最後二個參數是第三步裡記下來的玩意,運行後發現錯誤了,沒有權限什麼的,最後直接在FTP裡給那個path_to_mysql_log目錄設置777權限 就行了

運行命令啟動 : start slave;
運行命令查看狀態: show slave status;

3.png
4.png
5.png

  1. 在阿里雲部署的網站上測試一下,插入幾條數據,然後再跑到騰訊雲上查詢看看,發現成功了,剛剛插入的數據已經同步到騰訊雲!!!

8.png
9.png

Leave a Reply

Your email address will not be published. Required fields are marked *