一、 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的时候就表示主从同步设置成功了