本帖最后由 测试积点老人 于 2018-12-17 15:43 编辑
mysql版本为5.7以上 系统ubuntu 两台mysql服务器(192.168.10.10 为master 主,192.168.10.11为Slave 从) Mysql是通过二进制的日志文件来实现数据同步的。主mysql生成日志,从mysql获取日志。 在主mysql创建用户,从mysql使用这个用户远程连接读取二进制文件来同步数据。
配置主mysql进入Mysql创建和设置用户 - // 创建用户
- create user 'slave'@'127.0.0.1' identified by 'mysql';
- //设置用户的replication slave权限和密码,通配访问IP
- grant replication slave on *.* to 'slave'@'192.168.10.%';
- flush privileges;
复制代码修改主mysql /etc/mysql/mysql.conf.d/mysqld.cnf 配置。 - server-id = 10 //mysql服务器的唯一标示
- log_bin = /var/log/mysql //存放二进制log文件的路径
复制代码重启mysql。 进入Mysql执行下面命令。 - show variables like '%log_bin%';
复制代码log_bin ON
log_bin_basename /var/log/mysql/mysql-bin
log_bin_index /var/log/mysql/mysql-bin.index
log_bin_trust_function_creators OFF
log_bin_use_v1_row_events OFF
sql_log_bin ON
显示这些信息就表示配置成功。 查看日志文件 mysql-bin.000002 154
配置从mysql修改主mysql /etc/mysql/mysql.conf.d/mysqld.cnf 配置。 - server-id = 11 //mysql服务器的唯一标示
- relay-log==/var/log/mysql/slave-relay-bin
复制代码进入Mysql - change master to master_host='192.168.10.10',
- master_port=3306,
- master_user='slave',
- master_password='mysql',
- master_log_file='master-bin.000002',
- master_log_pos=0;
复制代码启动Slave 重启mysql。 测试主mysql新加表,看下从mysql数据是否同步。从mysql一般不做update insert delete操作,只能做select操作。
|