MySQL主从同步配置

MySQL主从同步配置,第1张

MySQL主从同步配置

MySQL主从同步配置步骤 MySQL主从同步配置一、1.编辑MySQL主上的/etc/my.cnf二、编辑MySQL从数据库上的/etc/my.cnf三、在MySQL主上创建用于备份账号四、MySQL主上加锁,阻止所有的写入 *** 作五、MySQL主上,查看bin-log的文件名和位置六、MySQL主上dump所有数据备份七、MySQL主进行解锁,解锁后,主上可以写入数据八、MySQL从上导入之前dump的数据九、MySQL从上配置主从连接信息十、MySOL从上开启同步


一、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

显示以下说明配置成功

二、编辑MySQL从数据库上的/etc/my.cnf
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

输入密码后会备份到当前目录

此处有可能会显示 : -bash: mysqldump: 未找到命令
解决方法如下:
find / -name mysql -print // 找到文件名称为mysql的文件
ln -fs /usr/local/mysql-5.7.26/bin/mysqldump /usr/bin 执行

七、MySQL主进行解锁,解锁后,主上可以写入数据
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的位置

十、MySOL从上开启同步
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:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/996433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存