mysql主从复制

mysql主从复制



mysql 版本 8.0.28 master192.168.2.123 slave192.168.2.124 部署请参考(linux下tar包mysql8安装(经过本人多次测试)) 配置文件如下: my.cnf 1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码 2、修改主服务器master #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=1 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 3、修改从服务器slave: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[不是必须]启用二进制日志 server-id=2 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 4、重启两台服务器的mysql /etc/init.d/mysql restart 5、在主服务器上建立帐户并授权slave:

#/usr/local/mysql/bin/mysql -uroot -p123456 #use mysql; #CREATE USER ‘slave’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’; #mysql> GRANT REPLICATION SLAVE ON . TO ‘slave’@’%’; //一般不用root帐号 ‘%‘表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如 192.168.137.141,加强安全。 6、登录主服务器的mysql,查询master的状态 mysql>show master status; ±—————–±———±————-±—————–+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | ±—————–±———±————-±—————–+ | bin.000005 | 694 | | | ±—————–±———±————-±—————–+ 1 row in set (0.00 sec) 注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化 7、从服务器设置普通用户只读模式 mysql>create user ‘test’@’%’ identified by ‘123456’; // 创建普通用户,可以远程连接 mysql> grant select on . to test@’%‘identified by ‘123456’; //授权所有库,只能查询操作 mysql> grant all privileges on . to test@’%‘identified by ‘123456’; //这是授予所有权限 关于mysql创建用户以及权限,下面有详细说明;这里只是做了主从复制避免从库添加数据做准备; 从库远程登录就用刚才设置的普通的只要查询权限的账号去登录,避免导致主从出错 8、配置从服务器Slave: 在从库上配置需要连接的主库信息: mysql>change master to master_host=‘192.168.2.123’,master_user=‘slave’,master_password=‘123456’, master_log_file=‘bin.000005’,master_log_pos=694; //注意不要断开,308数字前后无单引号。 Mysql>start slave; //启动从服务器复制功能

9、检查从服务器复制功能状态: show slave status;

page3