Docker安装MySQL及配置主从模式
搜索镜像:docker search mysql
拉取镜像:docker pull mysql (不指定版本默认最新)
启动容器1:
docker run -d -p 3306:3306 -v /etc/mysql/conf:/etc/mysql/conf.d -v /etc/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234567 --name mysql1001 mysql
本地/etc/mysql/conf下配置内容:vim /etc/mysql/conf/mysql.cnf
[mysqld]
server-id = 1
log-bin = mysql-bin
查看容器ID: docker inspect 容器ID或名称
然后进入容器:docker exec -it mysql1001 bash
然后:mysql -uroot -p1234567
进入mysql里面:
mysql> use mysql
mysql> alter user 'root'@'%' identified with mysql_native_password by '1234567';
mysql> flush privileges;
启动容器2:
docker run -d -p 3307:3306 -v /etc/mysql2/conf:/etc/mysql/conf.d -v /etc/mysql2/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234567 --name mysql1002 mysql
-d 后台运行
-p 端口映射
-v 卷挂载
-e配置环境
进入容器:
本地/etc/mysql2/conf下配置内容:vim /etc/mysql2/conf/mysql.cnf
[mysqld]
server-id = 2
查看容器ID: docker inspect 容器ID
然后进入容器:docker exec -it mysql1002 bash
然后:mysql -uroot -p1234567
change master to master_host='172.17.0.2',master_user='root',master_password='123456',master_log_file=' mysql-bin.000001',master_log_pos=10741;
docker安装MySQL配置主从报错:
Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
master
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 10741 | | | |
+------------------+----------+--------------+------------------+-------------------+
slave:
mysql> stop slave;
Query OK, 0 rows affected, 2 warnings (0.00 sec)
mysql> change master to master_log_file ='mysql-bin.000001',master_log_pos=10741;
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> show slave status\G;
这样就成功了!
Docker安装MySQL及配置主从模式
搜索镜像:docker search mysql
拉取镜像:docker pull mysql (不指定版本默认最新)
启动容器1:
docker run -d -p 3306:3306 -v /etc/mysql/conf:/etc/mysql/conf.d -v /etc/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234567 --name mysql1001 mysql
本地/etc/mysql/conf下配置内容:vim /etc/mysql/conf/mysql.cnf
[mysqld]
server-id = 1
log-bin = mysql-bin
查看容器ID: docker inspect 容器ID或名称
然后进入容器:docker exec -it mysql1001 bash
然后:mysql -uroot -p1234567
进入mysql里面:
mysql> use mysql
mysql> alter user 'root'@'%' identified with mysql_native_password by '1234567';
mysql> flush privileges;
启动容器2:
docker run -d -p 3307:3306 -v /etc/mysql2/conf:/etc/mysql/conf.d -v /etc/mysql2/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234567 --name mysql1002 mysql
-d 后台运行
-p 端口映射
-v 卷挂载
-e配置环境
进入容器:
本地/etc/mysql2/conf下配置内容:vim /etc/mysql2/conf/mysql.cnf
[mysqld]
server-id = 2
查看容器ID: docker inspect 容器ID
然后进入容器:docker exec -it mysql1002 bash
然后:mysql -uroot -p1234567
change master to master_host='172.17.0.2',master_user='root',master_password='123456',master_log_file=' mysql-bin.000001',master_log_pos=10741;
docker安装MySQL配置主从报错:
Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
master
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 10741 | | | |
+------------------+----------+--------------+------------------+-------------------+
slave:
mysql> stop slave;
Query OK, 0 rows affected, 2 warnings (0.00 sec)
mysql> change master to master_log_file ='mysql-bin.000001',master_log_pos=10741;
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> show slave status\G;
这样就成功了!
更多资料,关注微信公众号: