Docker部署Mysql8.0.20并配置主從復制的實現(xiàn)步驟
更新時間:2024年06月04日 11:43:26 作者:C3Stones
主從復制是指數(shù)據(jù)可以從一個MySQL數(shù)據(jù)庫服務器主節(jié)點復制到一個或多個從節(jié)點,本文主要介紹了Docker部署Mysql8.0.20并配置主從復制的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下
1. Linux安裝Mysql8.0.20并配置主從復制(一主一從,雙主雙從)
Linux安裝Mysql8.0.20并配置主從復制(一主一從,雙主雙從)
2. 前提準備
# 創(chuàng)建主從數(shù)據(jù)庫文件夾 mkdir -p /usr/local/mysql/master1/conf mkdir -p /usr/local/mysql/master1/data mkdir -p /usr/local/mysql/slave1/conf mkdir -p /usr/local/mysql/slave1/data # 初始化主數(shù)據(jù)庫配置文件 cd /usr/local/mysql/master1/conf touch my.cnf vi my.cnf # 粘貼以下內容 [mysqld] datadir = /usr/local/mysql/master1/data character-set-server = utf8 lower-case-table-names = 1 # 主從復制-主機配置 # 主服務器唯一ID server-id = 1 # 啟用二進制日志 log-bin=mysql-bin # 設置logbin格式 binlog_format = STATEMENT # 初始化從數(shù)據(jù)庫配置文件 cd /usr/local/mysql/slave1/conf touch my.cnf vi my.cnf # 粘貼以下內容 [mysqld] datadir = /usr/local/mysql/slave1/data character-set-server = utf8 lower-case-table-names = 1 # 主從復制-從機配置 # 從服務器唯一ID server-id = 2 # 啟用中繼日志 relay-log = mysql-relay # 文件夾授權 chmod -R 777 /usr/local/mysql
3. Docker部署Mysql8.0.20
# 拉取鏡像 docker pull mysql:8.0.20 # 查看鏡像 docker images # 構建主數(shù)據(jù)庫容器 docker run --name=mysql-master-1 --privileged=true -p 3306:3306 -v /usr/local/mysql/master1/data/:/var/lib/mysql -v /usr/local/mysql/master1/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/master1/mysql-files/:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=3edc#EDC -d mysql:8.0.20 --lower_case_table_names=1 # 查詢是否啟動成功 docker ps # 驗證是否可以登錄 # 交互式進入容器 docker exec -it mysql-master-1 /bin/bash # 登錄(使用構建時指定的密碼:3edc#EDC) mysql -uroot -p # 退出 quit exit # 構建從數(shù)據(jù)庫容器 docker run --name=mysql-slave-1 --privileged=true -p 3307:3306 -v /usr/local/mysql/slave1/data/:/var/lib/mysql -v /usr/local/mysql/slave1/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/slave1/mysql-files/:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=3edc#EDC -d mysql:8.0.20 --lower_case_table_names=1 # 查詢是否啟動成功 docker ps # 驗證是否可以登錄 # 交互式進入容器 docker exec -it mysql-slave-1 /bin/bash # 登錄(使用構建時指定的密碼:3edc#EDC) mysql -uroot -p # 退出 quit exit # 關閉防火墻 # 查看防火墻狀態(tài) systemctl status firewalld # 關閉防火墻 systemctl stop firewalld
4. 配置主從復制
# 進入主數(shù)據(jù)庫 mysql -uroot -p -h192.168.10.234 -P3306 - 主數(shù)據(jù)庫創(chuàng)建用戶slave并授權 # 創(chuàng)建用戶 create user 'slave'@'%' identified with mysql_native_password by 'password'; # 授權 grant replication slave on *.* to 'slave'@'%'; # 刷新權限 flush privileges; # 查詢server_id值 show variables like 'server_id'; # 也可臨時(重啟后失效)指定server_id的值(主從數(shù)據(jù)庫的server_id不能相同) set global server_id = 1; # 查詢Master狀態(tài),并記錄File和Position的值 show master status; # 注意:執(zhí)行完此步驟后退出主數(shù)據(jù)庫,防止再次操作導致File和Position的值發(fā)生變化 # 驗證slave用戶是否可用 mysql -uslave -p -h192.168.10.234 -P3306 # 進入從數(shù)據(jù)庫 mysql -uroot -p -h192.168.10.234 -P3307 # 查詢server_id值 show variables like 'server_id'; # 也可臨時(重啟后失效)指定server_id的值(主從數(shù)據(jù)庫的server_id不能相同) set global server_id = 2; # 若之前設置過同步,請先重置 stop slave; reset slave; # 設置主數(shù)據(jù)庫 change master to master_host='192.168.10.234',master_port=3306,master_user='slave',master_password='password',master_log_file='mysql-bin.000002',master_log_pos=156; # 開始同步 start slave; # 若出現(xiàn)錯誤,則停止同步,重置后再次啟動 stop slave; reset slave; start slave; # 查詢Slave狀態(tài) show slave status\G # 查看是否配置成功 # 查看參數(shù) Slave_IO_Running 和 Slave_SQL_Running 是否都為yes,則證明配置成功。若為no,則需要查看對應的 Last_IO_Error 或 Last_SQL_Error 的異常值。
5. 測試
通過工具連接主從數(shù)據(jù)庫或者在服務器連接。
# 在主數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫test create database test; # 從數(shù)據(jù)庫查看 show databases; # 在主數(shù)據(jù)庫創(chuàng)建表 use test; create table t_user(id int, name varchar(20)); # 插入數(shù)據(jù) insert into t_user values(1, 'C3Stones'); # 在從數(shù)據(jù)庫查看 use test; select * from t_user; # 其他刪改查操作請自行測試
到此這篇關于Docker部署Mysql8.0.20并配置主從復制的實現(xiàn)步驟的文章就介紹到這了,更多相關Docker部署Mysql主從復制內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
docker-compose網絡配置-?IP?主機名?hosts配置方式
這篇文章主要介紹了docker-compose網絡配置-?IP?主機名?hosts配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
解決Docker鏡像拉取超時及優(yōu)化網絡配置的方法(failed to do request
在使用 Docker 構建和部署應用時,拉取鏡像是一個關鍵的步驟,然而,在一些網絡環(huán)境中,特別是企業(yè)內部網或受限網絡環(huán)境中,可能會遇到 Docker 鏡像拉取失敗或超時的問題,這篇博客將詳細探討如何應對 Docker 鏡像拉取超時的問題,需要的朋友可以參考下2024-11-11

