当前位置:Gxlcms > 数据库问题 > mysql主从配置

mysql主从配置

时间:2021-07-01 10:21:17 帮助过:14人阅读

log-bin=/usr/local/mysql_data/mysql-bin.log  #写一个存在的路径,但是这个目录下必须有权限,如果没有的话使用chmod加上权限即可

2、创建一个用来专门同步数据用的用户,sql如下,用户名和密码都可以自己随便写。

 
1 2 3 GRANT REPLICATION SLAVE ON *.* TO ‘username‘@‘%‘ identified by ‘password‘;  #添加用户 FLUSH PRIVILEGES;#刷新权限  

3、找到主服务器上的二进制文件和位置,使用下面的sql就可以看到了,先记录一下file和Position这2列,要在slave服务器上配置

 
1 SHOW MASTER STATUS;

技术图片

4、复制之前的数据,我的master上是有一些表和数据的,要先把它整到slave一份。

先用mysqldump备份整个数据库

 
1 2 3 4 5 6 7 mysqldump -uroot -p123456 --all-databases --lock-all-tables > ~/master_db.sql   #-u :用户名 #-p :示密码 #--all-databases :导出所有数据库 #--lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改 #~/master_db.sql :导出的备份数据(sql文件)位置,可自己指定

备份完之后,拿到的salve执行一下,也就是我Windows上面的mysql,咋执行都ok,可以直接把sql文件里面的sql语句复制出来执行,可以直接用mysql命令执行sql文件。

5、在slave节点上配置master的信息,让它能找到master。

在slave节点的配置文件里面找到server-id也改成唯一的一个,不能和其他的一样

技术图片

ps:这里改完别忘了重启,配置文件修改完之后,重启了之后才会生效

在slave上执行下面的sql,设置主服务器的信息

 
1 2 3 4 5 6 7 8 9 10 11 12 change master to master_host=‘10.234.137.164‘, master_user=‘slave‘, master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘, master_log_pos=2544;     -- master_host就是master的ip   -- master_user就是上面建的用户   -- master_password上面创建用户的密码   -- master_log_file是刚才上面让记的file那一列的值   -- master_log_pos是刚才上面让记的Position那一列的值

上面只是设置了master节点的信息,还没有开始同步,执行start slave;开始同步,sql语句如下:

 
1 START SLAVE;

开始同步之后,查看一下同步状态,sql如下,看下图可以看到已经开始运行了。

 
1 show slave status \G; #查看salve的状态

技术图片

6、测试是否可以同步,先在master上创建一个数据库,再去slave节点上找这个数据库。

技术图片

下面是同步完之后的

技术图片

至此测试结束,主从配置完成,快去试试吧。

mysql主从配置

标签:主服务器   账号   基于   hang   password   指定   授权   插入   一个数据库   

人气教程排行