MySQL-主从复制实践

主从复制实践

  • 主服务器配置

#编辑my.cnf
vi /etc/my.cnf
 
#在mysqld下加入以下配置
#server-id设置MySQL服务器的唯一标识符。在主从复制设置中,主库和从库的server-id值必须唯一。
#log-bin启用二进制日志功能,并设置二进制日志文件的名称为mysql-bin.log,目录在/usr/local/mysql。
#binlog-ignore-db忽略名为 "mysql" 的数据库的更改操作,不会被记录和复制到从库。
 
#master
#服务器唯一标识符
server-id=1
#启用二进制日志
log_bin=/usr/local/mysql/mysql-bin.log
#需要同步的数据库
binlog_do_db=biz-kkt-test
#忽略同步的数据库
binlog-ignore-db=mysql
 
#主服务器上创建复制权限用户
mysql> CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';
#赋权
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
#刷新权限
mysql> flush privileges;
 
#重启服务
service mysql stop
service mysql start
  • 从服务器配置

#编辑my.cnf
vi /etc/my.cnf
 
#在mysqld下加入以下配置
#slave
server-id = 2
#指定复制中继日志(relay log)的路径和文件名
relay-log = /usr/local/mysql/mysql-relay-bin.log
#启用从数据库服务器记录其接收到的变更事件的二进制日志
log_slave_updates = 1
#只读模式
read_only = 1
 
#重启服务
service mysql stop
service mysql start
 
#停止复制进程
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='master_server_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password';
#开始复制进程
START SLAVE;
 
#查看从库复制状态(Slave_IO_Running与Slave_SQL_Running 显示Yes说明成功了)
show slave status \G