本人采用docker 安装mysql
一、前提条件:
1.SentOS 7
2.docker
二、docker 安装 mysql
1.查找镜像
docker search mysql
2.下载镜像
docker pull mysql
3.通过镜像创建容器并运行
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
4.在两台机器上都安装好mysql并启动测试,保证能正常使用,通过 docker ps
三、设置主库
192.168.203.137
进入docker mysql 容器
docker exec -it cded131186b8 bin/bash
cd ..
vi etc/mysql/my.cnf
添加此配置
server_id=1
返回服务器根目录
查看mysql容器id
docker ps
停止mysql 服务
docker stop cded131186b8
启动mysql 服务
docker start cded131186b8
或者直接
重启mysql 服务
docker restart cded131186b8
运行sql
SHOW VARIABLES LIKE 'log_%';
如果log_bin 的Value 为 OFF 则未开启日志文件
运行sql
SHOW MASTER STATUS
File=binlog.000004,Position=156,从库配置需要这两个参数
主库配置完成
四、设置从库
执行复制主机命令
CHANGE MASTER TO MASTER_HOST='192.168.203.137', MASTER_PORT=33060,MASTER_USER='root', MASTER_PASSWORD='123456', MASTER_LOG_FILE='binlog.000004',MASTER_LOG_POS=156;
MASTER_HOST = 主库ip
MASTER_PORT = 主库mysql端口
MASTER_USER = 主库用户名
MASTER_PASSWORD = 主库密码
MASTER_LOG_FILE = 主库日志文件(对应主库File=binlog.000004)
MASTER_LOG_POS = 主库日志位置(对应主库Position=156)
此时我这提示了
错误代码: 3021
This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first.
是因为我之前绑定过其他主库,一个数据库只能绑定一个主库。我们需要更换,不能直接用此命令更换主库配置
解决办法
1、停止已经启动的绑定
STOP SLAVE
2、重置绑定
RESET MASTER
3、执行复制主机命令
CHANGE MASTER TO MASTER_HOST='192.168.203.137', MASTER_PORT=33060,MASTER_USER='root', MASTER_PASSWORD='123456', MASTER_LOG_FILE='binlog.000004',MASTER_LOG_POS=156;
4、启动复制
START SLAVE
此时查看我们从看的主从配置情况
SHOW SLAVE STATUS
留意着两个参数一定要为yes
Slave_IO_Runing = yes
Slave_SQL_Runing = yes
从库配置完成
备注如果Slave_IO_Runing ,Slave_SQL_Runing 其中一个为no,请查看相应的报错信息
SHOW SLAVE STATUS
五、测试主从数据同步
主库创建一张表
此时查看从库
操作到此,mysql主从复制已经完成
恭喜恭喜
复制操作主->从 包括
1.建,改,删 库
2.建,改,删 表
3.增,改,删 数据
4.增,改,删 索引,存储过程…
六、主库查询被同步从库信息(开展知识点)
SHOW SLAVE HOSTS