(详细简单成功版本)Mysql主从复制

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

博主不易如果有帮助点个赞加个关注再走啊家人们

目录

介绍

配置-前置条件

大坑如果两份mysql文件都是复制的一份那么就修改其中一份的uuid要不后续配置不成功

配置-主库Master

1.修改Mysql数据库的配置文件my.ini

2.重启mysql并登陆mysql

3.创建可以主从中复制的权限账号

4.执行下面SQL记录下结果中File和Position的值

配置-从库Slave

1.修改Mysql数据库的配置文件my.ini

2.重启mysql并登陆mysql

3.配置连接主数据库

4.启动连接 

5.查看连接

6.Slave_IO_Running: No 解决方法

7.如果6还没解决那就看看你的主数据库的服务器是不是能连接的上 

1.可能网络原因

2.如果是阿里云啦啥的服务器看看3306端口有没有放开

3.可能被主数据库所在的服务器被放防火墙拦了关掉防火墙


介绍

MysSQL主从复制是一个异步的复制过程底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台AysQL数据库(slave即从库从另一台MysQL数据库(master即主库进行日志的复制然后再解析日志并应用到自身最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MysQL数据库自带功能无需借助第三方工具。

MysQL复制过程分成三步:

  • master将改变记录到二进制日志 binary log)
  • slave将master的binary log拷贝到它的中继日志relay log
  • slave重做中继日志中的事件将改变应用到自己的数据库中

配置-前置条件

提前准备好两台服务器分别安装Mysql并启动服务成功

如果配置的mysql中没有my.ini文件

下方链接可以配置

 简单成功版本Mysql配置my.ini文件__揽的博客-CSDN博客

简单成功版本Mysql配置my.ini文件__揽的博客-CSDN博客

大坑如果两份mysql文件都是复制的一份那么就修改其中一份的uuid要不后续配置不成功

主从两台数据库的UUID相同了即data目录下的 auto.cnf 中的 server-uuid值相同了找个字母随便改一下就行 比如把 9改成8 ,重启数据库

uuid在这个文件夹里面

 

注意克隆的需要修改数据库的uuid

配置-主库Master

1.修改Mysql数据库的配置文件my.ini

在my.ini文件下面的[mysqld]的下面配置如下

[mysqld]
log-bin=mysql-bin #[必须]启用二进制日志
server-id=100 #[必须]服务器唯一ID

2.重启mysql并登陆mysql

net stop mysql//关闭mysql
net start mysql//打开mysql
mysql -u root -p//登陆mysql

3.创建可以主从中复制的权限账号

CREATE USER '用户名' IDENTIFIED WITH 'mysql_native_password' BY '密码';//第一步
GRANT REPLICATION SLAVE ON *.* TO '用户名';//第二步
flush privileges;//第三步刷新立刻生效

4.执行下面SQL记录下结果中File和Position的值

show master status;

File和Position后续副数据库连接的时候用到

OK到这里主数据库就别动了因为操作可能会影响上图中的Position的值

配置-从库Slave

1.修改Mysql数据库的配置文件my.ini

在my.ini文件下面的[mysqld]的下面配置如下

注意这里的server-id不能与主数据的id相等

[mysqld]
server-id=101 #[必须]服务器唯一ID

2.重启mysql并登陆mysql

net stop mysql//关闭mysql
net start mysql//打开mysql
mysql -u root -p//登陆mysql

3.配置连接主数据库

执行下面命令

change master to master_host='主数据库地址',master_user='主数据创建的权限账号',master_password='密码',master_log_file='主数据里面的File',master_log_pos=主数据库里面的Position;

例子

change master to master_host='101.201.110.183',master_user='wang1',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=441;

红字都是主数据执行完最后一步显示的东西

4.启动连接 

start slave;

5.查看连接

show slave status\G;

 这两个都是YES就是配置成功了可以试着操作主数据库然后刷新副数据库测试效果

6.Slave_IO_Running: No 解决方法

你看看这里

大坑如果两份mysql文件都是复制的一份那么就修改其中一份的uuid要不后续配置不成功

主从两台数据库的UUID相同了即data目录下的 auto.cnf 中的 server-uuid值相同了找个字母随便改一下就行 比如把 9改成8 ,重启数据库

uuid在这个文件夹里面

7.如果6还没解决那就看看你的主数据库的服务器是不是能连接的上 

1.可能网络原因

2.如果是阿里云啦啥的服务器看看3306端口有没有放开

3.可能被主数据库所在的服务器被放防火墙拦了关掉防火墙

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysql