记一次MySQL 主从配置(linux到windows)
2018-02-28 14:00
405 查看
测试环境:
主:centOS 6.4 mysql:5.7.17
从:windows 10 mysql:5.7.21
日志未开启,需开启日志。
修改配置文件 /ect/my.cnf: 添加如下
添加授权用户 rep 密码123456 进行复制:
注:% 表所有ip。可以指定。
查看是否添加成功:
刷新所有表,然后加锁:
查看 master 二进制日志:
解锁数据库:
注意开启主从同步前,应保证主从数据一致,把主数据库先手动复制到从数据库,我开始以为配置好了之后可以自己创建,真是太年轻。。报错,因为从库没有主库的数据库等问题
从库启动之后,
检查slave 状态:
可以看到slave 已经起来了。
在主master里面插入一条测试数据:
到从数据库查看:
若出现错误,一般是主从数据不一致导致的,开启同步前切记保持数据一致。
另外,mysql支持从低版本复制到高版本,但是不能从高版本复制到低版本,无法保证新特性在低版本适用。
主:centOS 6.4 mysql:5.7.17
从:windows 10 mysql:5.7.21
配置主数据库
mysql> show variables like '%log_bin%'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin | OFF | | log_bin_basename | | | log_bin_index | | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | sql_log_bin | ON | +---------------------------------+-------+ 6 rows in set (0.01 sec)
日志未开启,需开启日志。
修改配置文件 /ect/my.cnf: 添加如下
[mysqld] log-bin=mysql-bin #server-id要唯一 server-id=1 #日志过期时间 expire_logs_days=8 log-bin=mysql-bin #需要同步的数据库名称 replicate-do-db=test
添加授权用户 rep 密码123456 进行复制:
mysql> grant replication slave on *.* to 'rep'@'%' identified by '123456';
注:% 表所有ip。可以指定。
查看是否添加成功:
mysql> select distinct concat('User:''',user,'''@''',host,''';') as query from mysql.user; +-----------------------------------+ | query | +-----------------------------------+ | User:'rep'@'%'; | | User:'root'@'%'; | | User:'mysql.session'@'localhost'; | | User:'mysql.sys'@'localhost'; | | User:'root'@'localhost'; | +-----------------------------------+ 5 rows in set (0.00 sec)
刷新所有表,然后加锁:
mysql > flush tables with read lock;
查看 master 二进制日志:
mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000001 | 436 | | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)
解锁数据库:
mysql > unlock tables;
配置从数据库
修改配置文件(我的slave是windows):[mysqld] # 设置mysql的安装目录 basedir=E:\Program Files\mysql-5.7.21-winx64 # 设置mysql数据库的数据的存放目录 datadir=E:\Program Files\mysql-5.7.21-winx64\data server-id=2 replicate-do-db=test #配置relay-log路径,这里不配置也会报错。。。按理说应该有默认路径,我后来加的 relay-log=E:\Program Files\mysql-5.7.21-winx64\data
注意开启主从同步前,应保证主从数据一致,把主数据库先手动复制到从数据库,我开始以为配置好了之后可以自己创建,真是太年轻。。报错,因为从库没有主库的数据库等问题
从库启动之后,
reset slave; mysql> change master to -> master_host ='192.168.88.129', -> master_user='rep', //远程连接用户,就是上面建的那个 -> master_password='123456',//密码 -> master_log_file='mysql-bin.000003',//master日志名 -> master_log_pos=154; //同步点,也是上面查看到的
检查slave 状态:
mysql> start slave; Query OK, 0 rows affected (0.07 sec) mysql> show slave status\G;
可以看到slave 已经起来了。
在主master里面插入一条测试数据:
到从数据库查看:
若出现错误,一般是主从数据不一致导致的,开启同步前切记保持数据一致。
另外,mysql支持从低版本复制到高版本,但是不能从高版本复制到低版本,无法保证新特性在低版本适用。
相关文章推荐
- MySQL主从复制配置(WINDOWS和LINUX)——(1)
- Windows 下的 MySQL 主从关系配置
- Linux下mysql主从配置
- Windows下Mysql主从配置(Mysql5.5)
- MySQL主从复制配置-windows单机环境
- mysql 5.1.48 在 windows 下 主从配置流程
- windows连接虚拟机linux下mysql配置
- linux配置mysql主从--master and slave
- Linux下mysql主从配置
- windows连接虚拟机linux下mysql配置
- linux centos6.4 mysql主从同步配置
- 在Linux下和windows下配置apache+php+mysql 开发环境和Zend Studio+Aptana Studio 的IDE
- Windows 下配置mysql主从数据库同步
- Windows下Mysql主从配置(Mysql5.5)
- Linux MySQL主从复制(Replication)实践配置
- Linux中Mysql主从配置
- Linux下MySQL的主从热备(自动同步)配置
- linux下mysql主从同步配置
- Windows下MySQL的主从热备(自动同步)配置
- 为linux_mysql在windows下配置图形界面navicat