日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL数据库备份之主从同步配置

發布時間:2025/3/20 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL数据库备份之主从同步配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??點擊上方?好好學java?,選擇?星標?公眾號

重磅資訊、干貨,第一時間送達 今日推薦:用好Java中的枚舉,真的沒有那么簡單!個人原創+1博客:點擊前往,查看更多 出處:https://www.cnblogs.com/wendj/p/11023497.html 編輯:尹文敏

主從同步意義?

  • 主從同步使得數據可以從一個數據庫服務器復制到其他服務器上,在復制數據時,一個服務器充當主服務器(master),其余的服務器充當從服務器(slave)。因為復制是異步進行的,所以從服務器不需要一直連接著主服務器,從服務器甚至可以通過撥號斷斷續續地連接主服務器。通過配置文件,可以指定復制所有的數據庫,某個數據庫,甚至是某個數據庫上的某個表。

機制
  • Mysql服務器之間的主從同步是基于二進制日志機制,主服務器使用二進制日志來記錄數據庫的變動情況,從服務器通過讀取和執行該日志文件來保持和主服務器的數據一致。

  • 在使用二進制日志時,主服務器的所有操作都會被記錄下來,然后從服務器會接收到該日志的一個副本。從服務器可以指定執行該日志中的哪一類事件(譬如只插入數據或者只更新數據),默認會執行日志中的所有語句。

配置主從同步的基本步驟

有很多種配置主從同步的方法,可以總結為如下的步

  • 在主服務器上,必須開啟二進制日志機制和配置一個獨立的ID 開啟方法

  • 在每一個從服務器上,配置一個唯一的ID,創建一個用來專門復制主服務器數據的賬號

  • 在開始復制進程前,在主服務器上記錄二進制文件的位置信息

  • 如果在開始復制之前,數據庫中已經有數據,就必須先創建一個數據快照(可以使用mysqldump導出數據庫,或者直接復制數據文件)

  • 配置從服務器要連接的主服務器的IP地址和登陸授權,二進制日志文件名和位置

案例:將騰訊云服務器上的mysql備份到本地服務器中。

遠程騰訊云服務mysql------------------------主

本地服務器daocker容器中的mysql -------從

第一步:

在本地服務器中的docker容器中安裝 mysql_docker鏡像(mysql_docker_5722.tar文件地址 提取碼:f9np)

將鏡像文件下載到本地,然后通過工具上傳到本地服務器中(我使用的是以下工具進行上傳和下載直接拖拽即可完成)

使用xshell進入本地服務器中查看文件是否上傳到了home/ubuntu目錄下

第一步:

還是在本地服務器中使用docker安裝鏡像,執行 docker load -i mysql_docker_5722.tar

檢查鏡像是否安裝成功。

第二步:

在本地服務器中創建一個用于備份的虛擬環境

第三步:

在遠程騰訊云服務器中的/home/ubuntu目錄中創建一個mysql_slave目錄,進入該目錄在創建一個data目錄

第四步:

將遠程騰訊云服務器中的mysql配置信息復制到上面創建的mysql_slave目錄中 執行命令:cp -r /etc/mysql/mysql.conf.d ./

第五步:

進入mysql.conf.d目錄中對mysqld.cnf文件進行編輯(注意,這里我復制過來的所有配置相當于從服務器中的配置,因為后面我會將整個mysql_slave文件夾傳到我本地服務器中)

修改內容如下:

注意server-id 一定不能重復

第六步:

接下來,我們就將上述mysql_slave文件夾傳到我本地服務器中(通過下面的軟件將mysql_slave下載到電腦本地,然后在通過這個軟件上傳到本地的Linux系統)

第七步:

在本地Linux系統中創建docker容器

docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=mysql -d --network=host -v /home/ubuntu/mysql_slave/data:/var/lib/mysql -v /home/ubuntu/mysql_slave/mysql.conf.d:/etc/mysql/mysql.conf.d mysql:5.7.22

第八步:

測試上面創建的容器查看原始數據庫中信息

  mysql -uroot -pmysql -h 127.0.0.1 --port=8306

第九步:

備份主服務器原有數據到從服務器

在遠程騰訊云服務器中執行數據庫備份命令:備份主服務器原有數據到從服務器$ mysqldump -u用戶名 -p密碼 --all-databases --lock-all-tables > ~/master_db.sql

  • --all-databases :導出所有數據庫

  • --lock-all-tables :執行操作時鎖住所有表,防止操作時有數據修改

  • ~/master_db.sql :導出的備份數據(sql文件)位置,可自己指定

同時將主服務器中備份的master_db.sql文件上傳到本地Linux系統中

先從遠程騰訊云服務器(主)下載到本地

在從本地上傳到Linux系統中(從)

第十步:

進入本地服務器(從)在docker容器中導入數據:

mysql -uroot -pmysql -h127.0.0.1 --port=8306 < ~/master_db.sql

執行完成后,主數據庫內容就備份到了從服務器中

第十一步:

登入遠程騰訊云主服務器Ubuntu中的mysql,創建用于從服務器同步數據使用的帳號

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'Slave@mysql520'; FLUSH PRIVILEGES;

第十二步 獲取主服務器的二進制日志信息

show variables like 'log_bin'; SHOW MASTER STATUS; SHOW MASTER STATUS;

第十三步:

在本地Linux系統中進入docker中的mysql,執行以下命令

change master to master_host='遠程服務器IP(主)', master_user='上面創建授權的用戶名', master_password='上面創建授權的密碼',master_log_file='對應上面File', master_log_pos=對應上面的Position;
  • master_host:主服務器Ubuntu的ip地址

  • master_log_file: 前面查詢到的主服務器日志文件名

  • master_log_pos: 前面查詢到的主服務器日志文件位置

第十四步:

啟動slave服務器,并查看同步狀態

start slave; show slave status \G

檢查狀態:show slave status \G

如果標記的地方兩個參數都是yes說明就啟動成功了。

后面就可以測試了,在遠程的服務器mysql中創建庫獲取操作表,再到本地查看是否也發生變化。只要數據庫內容保持一致,說明就配置成功了。

總結

以上是生活随笔為你收集整理的MySQL数据库备份之主从同步配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。