: 矮哥linux运维群:93324526
前言:
MySQL的数据是如此的重要,不做个备份吗?
部署
1.快速部署方案
1.安装好要配置从库的数据库,配置好log-bin和server-id 2.无需配置主库my.cnf文件,主库的log-bin和server-id参数默认就是配置好的 3.登录主库增加用于从库连接主库同步的账号例如:rep,并授权replication slave同步权限 4.使用半页mysqldump带--master-data=1备份的全备数据恢复到从库,5.在从库执行change master to ...语句6.从库开启同步开关,start slave7.从库 show slave status\G,检查同步状态,并在主库进行更新测试。
[shell]:
[mysql]:
主库
1.开启节点
[shell]:echo -e "log-bin=mysql-bin\nserver-id=1">>/etc/my.cnf [shell]:/etc/init.d/mysqld restart
2.添加从库用户
[mysql]:grant replication slave on *.* to 'rep'@'172.16.1.%' identified by '123456';
[mysql]:flush privileges;
3.锁库
[mysql]:flush table with read lock;
[mysql]:show master status;
show variables like "%timeout%"; 查看锁的超时时间interactive和wait
4.备份
[shell]:mysqldump -uroot -p123456 -A -B --events|gzip>/opt/rep.sql.gz
5.开锁
[mysql]:unlock tables;
从库
小坑:因为yum仓库的mysql是克隆关系,所以加上此命令
mv /application/mysql/data/auto.cnf{,.bak}
就跟克隆虚拟机效果一样
1.增加节点
[shell]:echo -e "log-bin=mysql-bin\nserver-id=2">>/etc/my.cnf [shell]:/etc/init.d/mysqld restart
2.导入数据
把主库的给scp到从库上,并进行数据
[shell]:zcat rep.sql.gz |mysql -uroot -p123456
3.配置从库数据
主库查询master状态
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 120 | | | |
+------------------+----------+--------------+------------------+-------------------+
[mysql]:CHANGE MASTER TO MASTER_HOST='172.16.1.51',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=120;
4.开启从库
start slave;
5.查看状态
[mysql]:show slave status\G#出现两个yes就好了#Slave_IO_Running: Yes#Slave_SQL_Running: Yes
步骤回顾
步骤回顾: 1.准备两台数据库环境,或者单台多实例环境,能否正常启动和登录。 2.配置my.cnf文件,主库配置log-bin和server-id参数,从库配置server-id,不能和主库及其他从库一样,一般不开启从库log-bin功能。注意配置参数后要重启生效。 3.登录主库增加用于从库连接主库同步的账号:例如rep,并授权replication slave同步的权限。 4.登录主库,整库锁表flush table with read lock(窗口关闭后即失效,超时参数倒了也失效。)然后show master status 查看binlog的位置状态。 5.新开窗口,linux命令行备份或导出原有的数据库数据,并拷贝岛从库所在的服务器目录。 如果数据量很大,并且允许停机。可以停机打包,而不用mysqldump 6.解锁主库:unlock tables; 7.把主库导出的原有数据恢复岛从库。 8.根据主库的show master status查看binlog的位置状态,在从库执行change master to ...语句 9.从库开启同步开关,start slave。 10.从库show slave status、G,检查同步状态,并在主库进行更新测试。
转载于:https://blog.51cto.com/523064/1913862