拉取mysql的鏡像
docker search mysql
docker pull mysql
通過鏡像創建容器,這里先創建第一個容器作為master mysql
-v /etc/mysql:/etc/mysql/conf.d 表示目錄共享,目錄提前創建好,第二個容器要目錄不一樣
docker run -d --name one_mysql -v /etc/mysql:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
進入容器
docker exec -it one_mysql bash
宿主機的組態檔
/etc/mysql/mysql.cnf
[mysqld]
server-id = 1
log-bin = mysql-bin
進入容器后
show master status
查看下當前的狀態,如果看到binlog日志是我們配置的檔案名就說明我們配置成功了

創建第二個容器作為我們的slave mysql
docker run -d --name two_mysql -v /etc/mysql2:/etc/mysql/conf.d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
宿主機的組態檔
/etc/mysql2/mysql.cnf
[mysqld]
server-id = 2
進入容器看看變數變了沒有,如果已經是我們配置的就說明組態檔是成功的
docker exec -it two_mysql bash
show variables like 'server_id';
開啟主從復制
change master to master_host='172.17.0.3',master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=155;
start slave
show slave status

看到Slave_Io_Running:yes Slave_SQL_Running:yes 就可以了
修改密碼的加密方式,因為默認的加密方式,主從復制的時候,從資料庫連接不上
USE mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
docker inspect 容器ID 查看該容器的IP
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/125412.html
標籤:PHP
上一篇:PHP 在Swoole中使用雙IoC容器實作無污染的依賴注入
下一篇:laravel佇列
