一、1.编辑MySQL主上的/etc/my.cnf
vim /etc/my.cnf
//在文件加入以下
log-bin=resp_mysql
server-id=1
log-bin:MySOL的bin-log的名字,
server-id:MySQL实例中全局唯一,并且大于0。
之后重启mysql
service mysqld restart
显示以下说明配置成功
vim /etc/my.cnf
server-id=2
server-id:MySQL实例中全局唯一,并且大于0。与主上的erverid区分开
三、在MySQL主上创建用于备份账号进入mysql命令行
resp:账号
repl123456:密码
CREATE USER 'resp'@'%' IDENTIFIED BY 'repl123456';
给用户赋予权限
GRANT REPLICATION SLAVE ON *.* TO 'resp'@'%';
四、MySQL主上加锁,阻止所有的写入 *** 作
FLUSH TABLES WITH READ LOCK;
五、MySQL主上,查看bin-log的文件名和位置
SHOW MASTER STATUS;
六、MySQL主上dump所有数据备份
在外部执行命令
mysqldump --all-databases --master-data > dbdump.db -uroot -p
输入密码后会备份到当前目录
七、MySQL主进行解锁,解锁后,主上可以写入数据此处有可能会显示 : -bash: mysqldump: 未找到命令
解决方法如下:
find / -name mysql -print // 找到文件名称为mysql的文件
ln -fs /usr/local/mysql-5.7.26/bin/mysqldump /usr/bin 执行
UNLOCK TABLES;
八、MySQL从上导入之前dump的数据
上传文件到服务器然后执行命令
mysql < dbdump.db -uroot -p
九、MySQL从上配置主从连接信息
change master to
-> master_host='ip',
-> master_user='resp',
-> master_password='repl123456',
-> master_log_file='resp_mysql.000001',
-> master_log_pos=217918;
或者
change master to master_host='ip',master_user='resp',master_password='repl123456',master_port=13306,master_log_file='resp_mysql.000001',master_log_pos=286944;
master host:MySQL主的地址
master_user:备份的用户名
master_password:备份的用户密码
master_log_file:bin-log的文件名
master_log_pos:bin-log的位置
START SLAVE;
查看状态
show slave status
遇到问题解决方式
解决办法一、
Slave_SQL_Running: No
1.程序可能在slave上进行了写 *** 作
2.也可能是slave机器重起后,事务回滚造成的.
一般是事务回滚造成的:
解决办法:
mysql> stop slave ;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave ;
解决办法二、(推荐)
首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值
进入master
复制代码
mysql> show master status;
±---------------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±---------------------±---------±-------------±-----------------+
| localhost-bin.000094 | 33622483 | | |
±---------------------±---------±-------------±-----------------+
1 row in set (0.00 sec)
然后到slave服务器上执行手动同步:
change master to
-> master_host='ip',
-> master_user='resp',
-> master_password='备份用户密码',
-> master_log_file='resp_mysql.000001',
-> master_log_pos=217918;
mysql> show slave status;
*************************** 1. row ***************************
…
Master_Log_File: localhost-bin.000094
Read_Master_Log_Pos: 33768775
Relay_Log_File: localhost-relay-bin.000537
Relay_Log_Pos: 1094034
Relay_Master_Log_File: localhost-bin.000094
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)