1 docker安装mysql
(1) docker pull mysql:5.7
(2) 服务器上创建目录
/usr/local/mysql/data
/usr/local/mysql/log
/usr/local/mysql/conf
(3) chmod -R 755 mysql
(4) conf下创建my.cnf 文件
(5) 编辑my.cnf
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
max_connections=1000
server-id=1
log-bin=mysql-bin
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
(6) 启动docker容器 挂载对应文件到宿主机
如:
docker run -d --name mysqlMaster -p 3306:3306 -v /usr/local/mysql/data/:/var/lib/mysql -v /usr/local/mysql/conf/my.cnf:/etc/my.cnf -v /usr/local/mysql/logs/:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 --restart=always mysql:5.7
以上可认为是搭建主库,重复以上步骤搭建从库。注意 (5)中server-id修改成其他值(据说同一局域网不能相同,具体没有验证),(6)中 --name==mysqlSlave 至于端口号,由于我是2台云服务器,所以没有修改端口,如果在一台服务器上搭建,就自行修改。
2 数据库建立主从关系。
(1)主库创建用户 slave 用于从库同步数据
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456' ;
FLUSH PRIVILEGES;
(2) 在主库执行 show master status;记录红框的2个值
(3) 在从库执行
change master to master_host='主库ip', master_port=3306, master_user='刚才创建的用户名', master_password='123456', master_log_file='第一个红框值', master_log_pos=第二个红框值;
(4) 在从库执行 show slave status 如下字段值为yes 即为成功