用途: 生产mysql数据库灾备,或者用作读写分离
环境: 两个服务器环境配置相同(硬件带宽等不同,从库性能略低)- 阿里云ECS、CentOS 7、lnmp1.5集成环境( Mysql5.7 )
准备工作:
- 主服务器mysql停止数据读写工作并备份
- 从数据库拷贝主库的完整备份,库名要相同
1、master数据库配置文件
$ vi /etc/my.cnf #[mysqld] 下面添加
# abs add begin
server-id=1 #设置主服务器id,必须唯一,可以为IP地址最后尾段数字
binlog-ignore-db=mysql,test,其他忽略的数据库名
binlog-do-db=squaredental, 其他需要备份的数据库名
log-bin=master-bin
log-bin-index=master-bin.index
# abs add end
# 保存退出后,重启mysql
2、master数据库 添加slave远程连接账户
$ mysql -uroot -p
# grant slave:
mysql> CREATE USER 'slaver_1'@'127.0.0.2' IDENTIFIED BY 'your_password'; #创建用户 127.0.0.2 换成实际从服务器IP或者 %,your_password 换成你想设置的密码
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slaver_1'@'127.0.0.2'; #slave账户分配权限 127.0.0.2 换成实际从服务器IP或者 %
mysql> flush privileges; #刷新权限
3、查看master状态,记录二进制文件名(mysql-bin.000078)和位置(306), 第5步要用到:
mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000078 | 306 | squaredental | mysql,test | |
+------------------+----------+--------------+------------------+—————————+
4、slave数据库 配置从服务器id
$ vi /etc/my.cnf
[mysqld]
server-id=2 #设置从服务器id,必须唯一,可以为IP地址最后尾段数字
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
5、slave数据库 配置映射信息,用到第3步获取到的信息
mysql> CHANGE MASTER TO
-> MASTER_HOST='127.0.0.1', #主库IP地址
-> MASTER_USER='slaver_1',
-> MASTER_PASSWORD='your_password',
-> MASTER_LOG_FILE='mysql-bin.000078', #第3步的 File:
-> MASTER_LOG_POS=306; #第3步的 Position:
6、slave数据库 开启同步
mysql> start slave;
7、master数据库开始工作后,slave数据库 查看同步状态
mysql> show slave status\G;