您的位置:首页 > 数据库 > MySQL

mysql 主从复制

2017-10-26 14:43 239 查看
因为在网上看各种文章的时候遇到了各种坑,现在就整一个自己能看懂的

本篇针对在windows上安装mysql的用户

1、准备两台电脑(服务器),各自安装同版本的mysql,一台作为主服务器,另一台为从服务器

默认两台服务器为:192.168.3.11(主)192.168.3.12(从)

默认端口均为:3306

2、服务器配置my.ini

服务器配置my.ini

log-bin=E:\mysql\mysql-bin
#存放日志文件的地方mysql-bin为文件名

binlog-do-db=test          #要同步的数据库名称

server-id= 1               #与从服务器区别的id

从服务器配置my.ini

server-id=2      #服务器 id ,不能和主服务器一致

replicate-do-db=test     #待同步的数据库 

配置完均需重启

3、配置用户

在主库授权用户

mysql>GRANT REPLICATION SLAVE ON *.* to 'slave'@'192.168.3.12' identified by 'test123';
参数说明:

slave:用户名

192.168.3.12:从库地址

test123:用户密码

4、获取master(主库)状态

mysql>show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      327 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)


记录File以及Position,当前步骤可以在锁库后进行防止File与Position变化。

5、配置从库连接信息

mysql>change master to master_host='192.168.3.12',master_user='slave',master_password='test123',
master_log_file='mysql-bin.000001',master_log_pos=327;


参数说明

master_host:主服务器地址

master_user:用户名

master_password:用户密码

master_log_file:同步日志文件

master_log_pos:文件位置

(端口不一致时,修改端口号)master_port:主库端口号

6、启动并检查slave状态

mysql>start slave;

mysql>show slave status;



检查关键字段

Slave_IO_Running: Yes      //此状态必须YES

Slave_SQL_Running: Yes     //此状态必须YES

如不为yes,查看错误信息Last_IO_Error

7、测试是否复制成功

在主数据库新建test表

mysql> create table test (id int(3),name char(10));

在从库中查询

mysql> show tables;

+---------------------------------+
|               Tables_in_test    |
+---------------------------------+
|                         test    |
+---------------------------------+


如有疑问可及时询问,因为第一次尝试同为小白。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: