怎么单向同步两linux服务器上的MYSQL数据库

因为工作需要,所以就慢慢配置两台Linux服务器上面的MYSQL数据库,实现单向数据库的同步,同步数据库的条件是:

(1)两服务器上的数据库的名字要相同。(2)数据库的表的结构要相同,不同一个数据库多一张表,一个数据库少一张表。(3)只能高版本的数据库同步低版本的数据库,因为mysql是向下兼容的。所以,主服务器master是低版本的,从服务器slave是高版本的。

假设数据库名为test,数据库的用户为root,密码为123456,则进行同步配置如下:

一,先配置主服务器master:

1,找到mysql的配置围巾my.cnf,不同的linux版本my.cnf的存放位置都不同,这点得注意。

2,找到[mydqld],在里面添加如下:

server-id=1

log-bin=mysql-bin

binlog-do-db=test

保存退出,登录数据库,查看是否起作用,在数据库下面输入命令show master status

+------------------+----------+-------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+-------------------+------------------+
| mysql-bin.000064 | 1813 |            test |
+------------------+----------+-------------------+------------------+

如上所示,把File,Position,Binlog_Do_DB三个选项的复制好,待会要用到。

二,配置从服务器slave

1,同样是先找到my.cnf,用vim打开my.cnf

2,在my.cnf的mysqld下面配置如下:

server-id=2

replicate-do-db=test

保存退出,然后登录数据库,在数据库里面输入如下命令:

change master to master_host=‘IP‘,master_user=‘root‘,master_password=‘123456‘, master_log_file=‘mysql-bin.000064‘,master_log_pos=1813;

重启mysql,然后进入数据库里面输入如下命令查看:

show slave status\G;

如果出现这些就表明配置成功:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test

三,配置的注意事项

1,mysql5.1.版本之后,不能再使用master-host,master-user这些变量来配置slave了,否则会出错,只能使用这命令来配置:

change master to master_host=‘IP‘,master_user=‘root‘,master_password=‘123456‘, master_log_file=‘mysql-bin.000064‘,master_log_pos=1813;

这些我弄了几天终于搞清楚了。

2,配置之后必须重启。

3,同步是这样的,当master发生数据的增加,删除,改变的时候,slave都可以改变,但是slave的操作不影响master

4,File | Position | Binlog_Do_DB这三项都是随时同步改变的。

时间: 2024-08-06 16:05:27

怎么单向同步两linux服务器上的MYSQL数据库的相关文章

Linux服务器上的MySQL数据库宕掉的原因

生产环境: 操作系统:CentOS release 6.8 数据库系统:MySQL 5.5.52 分析问题: 一.客户端访问出现以下错误: 错误1:浏览器访问Cacti监控系统 FATAL: Cannotconnect to MySQL server on 'localhost'. Please make sure you have specified avalid MySQL database name in 'include/config.php' 错误2:浏览器访问Discuz系统 Dis

使用Navicat连接管理远程linux服务器上的mysql数据库

点击这个连接,选择mysql. 填完这两页,测试成功,点击确定即可.创建了hyj连接. 结果如下: 原文地址:https://www.cnblogs.com/hyjh/p/11503234.html

Linux服务器上安装MySql数据库(默认安装,密码为空),首次使用需要修改密码

1,在/etc/my.cnf末尾  加入skip-grant-tables,保存,跳过身份验证. 2,重启MySql,使刚才修改的配置生效. 3,终端输入mysql,然后再输入use mysql; 4,终端输入update mysql.user set authentication_string=password('123456') where user='root'; 5,在/etc/my.cnf末尾  去掉skip-grant-tables,保存. 6,重启MySql,终端输入 mysql

cwRsyncServer从windows下数据实时同步到linux服务器上的实现过程

由于公司有两台windows服务器,开发在操作时一般也都是在这两台服务器上上传一些数据或修改一些东西,而Linux上的服务器也要跟windows上的数据要保持一致而又不需要人为的实现这个过程,基于此过程,昨天花了点时间,完成了基本的测试实现过程,今天就把这过程给记录下来,方便以后查看,以希望可以帮到还在困惑的朋友们. 第一步:在windows上的安装cwRsyncServer4.1.0以及配置过程: 在windows上下载安装包cwRsyncServer4.rar,这个不多解析,大家都懂,要是在

navicat连接不上Linux服务器上的MySQL

1.首先确定你的linux已经关闭防火墙 详细操作点这里: 如果是公司服务器防火墙比较重要不能关闭,那就麻烦点了,需要在防火墙的配置文件下配置属性. 如果还不能解决,请继续往下看. 2.如果是云服务器,请确认3306端口是否已经设置对外开放 此处以阿里云服务器为例,阿里云的服务器默认端口是不对外开放的,如果想要供外部访问,需要在安全组中手动添加规则,详情操作可以参考官方文档 :https://helpcdn.aliyun.com/document_detail/25471.html?spm=51

Linux服务器 上登录MySql

Linux服务器 上登录MySql  : 1.mysql -uroot -p123 这样只指定用户,而不指定主机,这样默认以localhost登录. 2.mysql -hlocalhost -uroot -p -h数据库主机 -u用户 -p密码 -P端口号(大写P) 例如mysql -hlocalhost -uroot -p12345 -P3306 -p密码部分,可以直接指定密码,如果不指定,会提示输入密码. 我们先mysql -hlocalhost -uroot -p看看 是不是提示输入密码?

使用Navicat远程连接阿里云ECS服务器上的MySQL数据库

1.必须给服务器的安全组规则设置端口放行规则,在管理控制台中设置: 2.之后填写配置,授权对象是授权的IP,其中0.0.0.0/0为所有IP授权,之后保存; 3.Navicat使用的配置 在编辑连接处,要配置SSH和常规两项 在常规项填写配置,主机名填写:localhost,配置完成后,就使用Navicat远程连接阿里云ECS服务器上的MySQL数据库: 测试连接,完美成功. 原文地址:https://www.cnblogs.com/GreenForestQuan/p/11776130.html

android数据库编程:连接服务器上的MySQL数据库详细示例

1 public class DatabaseDemo extends Activity { 2 private TextView textView; 3 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 // TODO Auto-generated method stub 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.acti

远程访问服务器上的MySQL数据库,发现root远程连接不上

远程访问服务器上的MySQL数据库,发现root远程连接不上,提示错误:"1045-Access denied for user [email protected]" 解决办法如下,执行命令: mysql> use mysql; mysql> selecthost,user from user; 查看结果是不是root用户仅允许本地(localhost)登录,下面这个截图就是这种情况. 是的话,就要修改它的host为%,表示任意IP地址都可以登录. GRANT ALL PR