51
Linux mysql主从同步配置

一、在两台Ubuntu机器上安装mysql
1.检查系统中是否安装了mysql

这个是已经安装了的

没有安装的话执行上条命令
===============================
MySQL的一些简单管理:
启动MySQL服务: sudo start mysql
停止MySQL服务: sudo stop mysql
修改 MySQL 的管理员密码: sudo mysqladmin -u root password newpassword

二、Master主服务器上的配置(103.251.237.42)
1.编辑my.cnf (命令查找文件位置:find / -name my.cnf)

在[mysqld]中注释掉 bind-address = 127.0.0.1 不然mysql无法远程

server-id = 1 中 1 是可以自己定义的,但是需要保持它的唯一性,是服务器的唯一标识

log_bin 启动MySQL二进制日志
binlog_do_db 指定记录二进制日志的数据库
binlog_ignore_db 指定不记录二进制日志的数据库。

注释掉 binlog_do_db 和 binlog_ignore_db ,则表示备份全部数据库

做完这些后,重启下数据库
2.登陆主服务器mysql 创建从服务器用到的账户和权限;

@之后IP可访问主服务器,这里值定从服务器IP
新建密码为masterbackup的masterbackup 用户,并赋予replication slave 权限

可以看到用户masterbackup 已经添加

3.查看主数据库的状态

记录 mysql-bin.000007 以及 276,编写以下命令待用;
change master to master_host='103.251.237.42',master_port=3306,master_user='masterbackup',master_password='masterbackup',master_log_file='mysql-bin.000007',master_log_pos=276;


三、Slave从服务器配置上的配置(103.251.237.45)
1.编辑my.cnf(命令查找文件位置:find / -name my.cnf)

在[mysqld]中

relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index
暂时不清楚这是做什么的。加入这两条。

重启mysql服务

登陆mysql,停止同步命令

执行用上面准备的命令; 登录Slave从服务器,连接Master主服务器:

重新启动数据同步;

查看Slave信息;如图两句都为yes,则状态正常

四、从主从服务器测试结果

在主服务器创建一个数据库

在从服务器上查看刚才创建的数据库

可以查到,主从服务器配置完成。
=================================================================================================

因为以上是两台新机器做的mysql主从配置;所以不需要从主服务器导入之前的数据到从服务器;那么如果主服务器已经有了一部分数据,就需要增加从主服务器导入数据到从服务器的操作;

在配置主服务器赋予从服务器权限后;
1.执行以下命令锁定数据库以防止写入数据;

这个命令是全局读锁定,执行命令之后所有库所有表都将被锁定为只读。一般都是用在数据库联机备份,这个时候数据库的写操作将被阻止,读操作可以顺利进行;

2.退出mysql命令行,导出数据库到root文件下并命名为all.sql;

3.使用scp命令传输数据库文件all.sql到从服务器;

4.再次连接数据库进入mysql命令查看master状态,记录file 和position 的值;

5.解锁数据表;

在配置从服务器前,先导入数据;

1. 导入主服务器的数据库;

2. 之后的配置如之前的从服务器配置;


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!