mysql实现主从复制、读写分离的配置方法(一)

1. 测试环境

  两个CentOS7虚拟机

  mysql 5.5-MariaDB

  master_ip:192.168.1.109

  slave_ip:192.168.1.118

 

2. 配置主服务器

  2.1  修改 /etc/my.cnf 配置文件,增加如下内容:

  # 指定唯一的server ID,master和slave的server-id不能一样

  # 如不配置,在start slave后可能会报“ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO”的错误。

  server-id = 1  

  # 表示启用binlog功能,并指定二进制日志的存储目录

  log-bin=mysql-bin

 

  2.2 

  mysql -uroot -p

  create database dbtest;  # 创建要被同步的数据库

  create user 'slave'@'192.168.1.118' identified by 'slavepsw';  # 添加一个slave用户

  GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.118';  # 为slave指定replication权限

  show master status;    

  

 

   2.3 与2.2作用相同

  # 每个slave使用标准的mysql用户和密码链接master。进行复制操作的用户会收于REPLICATION SLAVE权限。

  mysql> GRANT  REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'192.168.1.118' IDENTIFIED BY 'slavepsw' ;

  # REPLICATION SLAVE 常用于建立复制时所需要用到的用户权限,也就是说slave server必须被master server授权具有该权限的用户,才能通过该用户复制

  # REPLICATION CLIENT 不可用与建立复制,有该权限时,只是多了可以使用“SHOW SLAVE STATUS”、“SHOW MASTER STATUS”等命令

 

3. 配置从服务器

  3.1 修改 /etc/my.cnf 配置文件,增加如下内容:

  server-id = 2

  log-bin=mysql-bin

 

  3.2 

  mysql -uroot -p

  create databases dbtest;  # 创建要被同步的数据库 

  stop slave;

  change master to master_host = '192.168.1.109',

  master_port = 3306,

  master_user = 'slave',

  master_password = 'slavepsw',

  master_log_file = 'mysql-bing.000002',

  master_log_pos = 592;  # 配置主数据库参数

  start slave;  #启动数据库复制功能;

   

   如果Slave_IO_Running: Yes,Slave_SQL_Running: Yes,说明所有配置已成功。


 

posted @ 2020-11-25 14:50  阿木工作室  阅读(153)  评论(0编辑  收藏  举报