mysql 主从复制

一、 mysql 安装

文档参考 https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html

二、 外网访问权限设置

1、授权root用户可以远程登陆

GRANT ALL ON *.* TO 'root'@'%';

2、刷新权限

flush privileges;

3、修改加密规则

ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword' PASSWORD EXPIRE NEVER;

4、更新 root 用户密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';

5、刷新权限

FLUSH PRIVILEGES;

三、主服务器设置

文档参考 https://dev.mysql.com/doc/refman/8.0/en/replication-howto-masterbaseconfig.html

1.修改mysql配置

找到主数据库的配置文件my.cnf(或者my.ini),在[mysqld]部分插入如下两行:

[mysqld]

log-bin=mysql-bin #开启二进制日志

server-id=1 #设置server-id

Windows 下 server-id 设置不生效 可进入MySQL控制台 执行 SET GLOBAL server_id = 1;

查看:mysql> SHOW VARIABLES LIKE 'server_id';

2.重启mysql,创建用于同步的用户账号

进入MySQL控制台

创建用户并授权:用户:slaveuser 密码:Slavepass1!

mysql> CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'Slavepass1!';#创建用户

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';#分配权限

mysql> flush privileges;  #刷新权限

mysql > SHOW MASTER STATUS; 查看master状态


四、从服务器配置

找到主数据库的配置文件my.cnf(或者my.ini),在[mysqld]部分插入如下两行:

[mysqld]

server-id=2 #设置server-id

Windows 下 server-id 设置不生效 可进入MySQL控制台 执行 SET GLOBAL server_id = 1;

查看:SHOW VARIABLES LIKE 'server_id';

2.重启mysql,打开mysql会话,执行同步SQL语句

需要主服务器IP 用户名密码二进制文件名称位置

mysql> CHANGE MASTER TO

        ->    MASTER_HOST='192.168.0.7',

        ->    MASTER_PORT='3306',

        ->    MASTER_USER='slaveuser',

        ->    MASTER_PASSWORD='Slavepass1!',

        ->    MASTER_LOG_FILE='mysql-bin.000004',

        ->    MASTER_LOG_POS=156;

3.启动slave同步进程:

mysql> start slave;

4.查看slave状态:

mysql> show slave status\G;

当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了

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