[MySQL] docker下安裝使用mysql配置主從複製

拉取mysql的鏡像
docker search mysql
docker pull mysqlmysql

經過鏡像建立容器,這裏先建立第一個容器做爲master mysql
-v /etc/mysql:/etc/mysql/conf.d 表示目錄共享,目錄提早建立好,第二個容器要目錄不同sql

docker run -d --name one_mysql -v /etc/mysql:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysqldocker

進入容器
docker exec -it one_mysql bash數據庫

宿主機的配置文件
/etc/mysql/mysql.cnfbash

[mysqld]
server-id = 1
log-bin = mysql-bin加密

進入容器後
show master status
查看下當前的狀態,若是看到binlog日誌是咱們配置的文件名就說明咱們配置成功了日誌

 

建立第二個容器做爲咱們的slave mysqlserver

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.cnfblog

[mysqld]
server-id = 2it

進入容器看看變量變了沒有,若是已是咱們配置的就說明配置文件是成功的
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

相關文章
相關標籤/搜索