主从服务器MySql版本尽可能一致。如果不一致的情况此文没考虑。
主服务器必须开启二进制日志文件。查看是否开启:
SHOW VARIABLES LIKE 'log_bin';
开启方法,只需要在配置文件添加如下配置:
[mysqld]
log-bin=mysql-bin
1、MySql主服务器配置
(1)修改配置文件my.ini或my.cnf
[mysqld]
server-id=1
log_bin=mysql-bin
binlog_do_db=your_database_name
重启主服务器以使更改生效。
然后,登录到主服务器,创建复制用户:
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
2、从服务器配置
[mysqld]
server-id=2
relay_log=mysql-relay-bin
log_bin=mysql-bin
read_only=1
binlog_do_db=jhtqs-data343(数据库名称)
relay_log的值需要查看一下从服务器相应文件,是否是mysql-relay-bin。我的是dell-pc-relay-bin
重启从服务器以使更改生效。
然后,登录到从服务器,设置主服务器的位置:
CHANGE MASTER TO MASTER_HOST='master_ip_address', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.XXXXXX', MASTER_LOG_POS=XXXX;
START SLAVE;
如果启动不成功,应该是配置的主服务器地址或账号有错误,或是账号没有足够的权限。
遇到的一个错误:
Slave SQL for channel '': Could not execute Update_rows event on table jhtqs-data343.qrtz_scheduler
遇到以上错误,是主从服务器相应的这个表记录不一致。把记录修改一致后,成功启动。
如果配置成功,修改主服务器数据数据,从服务器会跟着变化了。
3、Doker下MySql配置文件修改
Linux下docker内的Mysql可用以下方式进行配置修改:
#docker -it <容器名或ID> /bin/bash
进入容器后,配置文件在以下地址:
# cd /ect/mysql/ 可能会因为 系统有变化。找到则可。
# vi my.cnf 即可修改。
如果没有vi需要安装。
在Ubuntu/Debian系统中,可以使用以下命令安装vim:
sudo apt-get install vim
在CentOS/RedHat系统中,可以使用以下命令安装vim:
sudo yum install vim