centos部署主从mysql


一、环境准备
centos7系统服务器2台、 一台用户做Mysql主服务器, 一台用于做Mysql从服务器, 配置好yum源、各节点时钟服务同步、 各节点之间可以通过主机名互相通信

二、前置步骤
1.关闭防火墙,关闭selinux
2.两台服务器都使用yum方式安装Mysql服务, 要求版本一致
3.分别启动两台服务器mysql服务, 确保服务正常

三、主从部署
1.配置master主服务器
(1)在/etc/my.cnf中加入以下内容
server-id=1      //配置server-id,让主服务器有唯一ID号
log-bin=mysql-bin  //打开Mysql日志,日志格式为二进制
skip-name-resolve  //关闭名称解析,(非必须)
(2)创建复制帐号slave
mysql>CREATE USER 'slave'@'192.168.%.%' IDENTIFIED BY 'password';
mysql>grant replication slave,replication client on *.* to slave@'192.168.%.%' identified by 'password';
mysql>FLUSH PRIVILEGES;
(3)退出并重启数据库
#systemctl restart mysqld;
(4)查看主服务器状态
进入Master的数据库执行 show master status,查看主服务器二进制日志状态及位置号,记录file和position的值,在后面的slave配置中会用到。
File:mysql-bin.000001 是当前记录的日志;
Position:154 是日志中记录的位置;

2.配置slave从服务器
(1)在/etc/my.cnf中加入以下内容
server-id=2 //配置server-id,让从服务器有唯一ID号
relay_log = mysql-relay-bin //打开Mysql日志,日志格式为二进制
read_only = 1 //设置只读权限
log_bin = mysql-bin //开启从服务器二进制日志
log_slave_updates = 1 //使得更新的数据写进二进制日志中
(2)重启数据库
#systemctl restart mysqld;
(3)启动从服务器复制线程
登录数据库并执行以下命令
mysql> change master to master_host='192.168.%.%',
>master_user='slave',
>master_password='keer',
>master_log_file='mysql-bin.000001',
>master_log_pos=154;
mysql> start slave;
(4)查看从服务器状态
可使用SHOW SLAVE STATUS\G;查看从服务器状态,也可用show processlist \G;查看当前复制状态:
Slave_IO_Running: Yes //IO线程正常运行
Slave_SQL_Running: Yes //SQL线程正常运行

3.测试主从同步
在 master 服务器上创建一个数据库,再使用该数据库创建一个表,添加一条记录,来看一看 slave 服务器有没有同步成功