MySQL搭建主从复制的配置与说明(不同版本区别)
一,主库上: 1.创建授权从库访问主库的用户及帐号mysql> create user 'backup'@'192.168.0.2' identified by 'backuppassword'; Query OK, 0 rows affected (0.00 sec) mysql> grant replication slave on *.* to backup@192.168.0.2; Query OK, 0 rows affected (0.00 sec)2.修改配置文件,在配置文件/etc/my.cnf中,增加:
server-id = 1说明:无需指明log bin的值,因为它的默认值就是打开的,
show variables like 'log_bin';返回: 说明:主库的server-id要和从库的server-id区分开,一般主库用1,其他各从库用2及以后的数字
vi /etc/my.cnf主要配置以下各项:
server-id = 2 replicate-do-db = 要复制的库名 read_only= 1三,复制备份的sql文件到从库服务器,导入到数据库。即要求主从库在开启服务前的数据尽量保持一致。
[root@backup ~]# mysql -u root -p my_base < back.sql enter password:四,在从库上启动复制: 1,执行sql对复制进行设置
change replication source to source_host='主库IP地址', source_user='主库上复制用户', source_password='主库上复制用户的密码',source_port=3306, source_log_file='mysql-bin.000002', source_log_pos=158, source_ssl=1;2,启动复制:
start replica;3,在从库上查看复制状态:
show replica status;五,需要注意的地方: 1,show master status; 不能用了
# mysql 8.4版本前使用这条命令查看 show master status; # mysql 8.4版本后使用这条命令查看 show binary log status;2,change master to不能用了
# MySQL 8.23前 change master to master_host='192.168.0.2', master_user='remote', master_password='yourpassword', master_log_file='binlog.000003', master_log_pos=158; # MySQL 8.23后 change replication source to source_host='192.168.0.2', source_user='remote', source_password='yourpassword', source_log_file='binlog.000003', source_log_pos=158; change replication source to source_host='192.168.0.3', source_user='remote', source_password='yourpassword', source_log_file='binlog.000004', source_log_pos=158,get_source_public_key=1;3,start slave不能用了 # 开启同步
start replica ; #8.0.22之后 start slave ; #8.0.22之前4,show slave status不能用了 # 查看状态,\G表示行转列,便于查看
show replica status; #8.0.22之后
show slave status; #8.0.22之前