主从复制mysql

windows服务器下mysql数据库主从复制案例

前提:;mysql版本最好一直

主数据库:MySQL版本5.7.29,IP为172.18.109.119

从数据库:MySQL版本5.7.29,IP为172.18.109.122

主服务器配置

第一步:关闭mysql服务

在mysql安装目录下打开windows命令窗口 快捷键 :到指定目录按shift+鼠标右键,点解powerShell窗口

执行 net stop mysql

第二步:修改mysql.ini文件

修改mysql.ini 文件

# 主从复制
#设置server-id
server_id=1
 #开启二进制文件 
log-bin=mysql-bin
#同步的数据库,除此之外别的不同步(和下面binlog-ignore-db二选一)
binlog_do_db=testdb

第三步:重启mysql服务

执行 net start mysql

第四步:创建用于同步的用户账号

(1)以管理员身份打开cmd窗口后,运行mysql -uroot -p,输入密码(为空则直接回车),登陆。
(2)先后执行下面3条命令创立用户(用户名MySlave,密码123456),并刷新权限

	注: 新增用户时mysql默认的密码强度:开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

​ 修改方式 :mysql> set global validate_password_policy=0;

CREATE USER 'MySlave'@'172.18.109.122' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'MySlave'@'172.18.109.122';
FLUSH PRIVILEGES;

MySlave为用户名
172.18.109.122:备用服务器ip地址
123456:用户密码

第五步:查看Master状态,记录二进制文件名和位置

主从复制mysql_第1张图片

二进制文件为mysql-bin.000002,位置为1630

从服务器数据库配置

1、创建一个新的测试数据库,名称为testdb。

2、验证同步账号能否登陆

打开Navicat for MySQL,新建链接,IP填写172.18.109.119(主服务器ip),用户名MySlave,密码123456,点击“连接测试”验证是否能连接。

3、打开my.ini,增加配置

server-id=2 #设置server-id
log-bin=mysql-bin #开启二进制文件

4、重启MySQL服务

5、cmd命令行登陆MySQL数据库,执行下面命令进行手动同步

mysql > CHANGE MASTER TO MASTER_HOST='172.18.109.119',MASTER_PORT=3306,MASTER_USER='MySlave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=1630;

MASTER_HOST:主服务器ip

MASTER_PORT:mysql占用的端口号

6、启动salve同步进程

mysql > start slave;

7、查看slave状态

执行命令:show slave status\G;
Slave_IO_Running: Yes,Slave_SQL_Running: Yes时说明两个线程已启动,主从复制配置成功。

主从复制mysql_第2张图片

8、测试

在主数据库新建一个表,刷新从数据库,可以看到这个表。

备注:

在进行数据库主从复制前,主数据库中已有表和数据,则这部分数据不会同步,需要手动导出,并在从数据库中导入。

你可能感兴趣的:(主从复制mysql)