ubuntu 12 mysql_Ubuntu 12.04 MySQL 单向同步

主服务器(A):192.168.1.6

从服务器(B):192.168.1.8

同步数据库:dbshop

最终实现:B服务器单向从A服务器同步数据库信息。

主服务器:

先去A服务器(主)将/etc/mysql/my.cnf里的

Shell

bind-address 127.0.0.1

1

bind-address127.0.0.1

注释掉

Shell

#bind-address 127.0.0.1

1

#bind-address 127.0.0.1

或者修改为

Shell

bind-address 0.0.0.0

1

bind-address0.0.0.0

这是因为mysql默认只允许本地连接,注释掉或者修改为0.0.0.0这样,就可以支持远程连接了。如果这里不设置,即使在数据库中设置用户可以通过远程连接,也是无法连接的。

通过然后进入mysql的命令行界面,设置用户,我们假定用户名是dbtest

如果数据库中已经有了用户,且已经设置了他可以从B服务器(192.168.1.8)访问A服务器,那么我们只需要用如下命令即可

Shell

grant replication slave,reload,super on *.* to dbtest@192.168.1.8

1

grantreplicationslave,reload,superon*.*todbtest@192.168.1.8

假如该用户不存在,那么我们用下面的命令建立即可

Shell

grant replication slave,reload,super on *.* to dbtest@192.168.1.8 identified by '123456'

1

grantreplicationslave,reload,superon*.*todbtest@192.168.1.8identifiedby'123456'

设置完成后,最好从服务器B远程连接下服务器A中的数据库测试一下,看是否正常登录。

修改A服务器(主)/etc/mysql/my.cnf 内容

PHP

server-id=1

log_bin=/var/log/mysql/mysql-bin.log

binlog_do_db=dbshop

binlog_ignore_db=mysql

1

2

3

4

server-id=1

log_bin=/var/log/mysql/mysql-bin.log

binlog_do_db=dbshop

binlog_ignore_db=mysql

上面的内容,在my.cnf是存在的,只是被注释掉了,我们可以去掉注释,然后修改成自己的信息,需要修改 binlog_do_db 和 binlog_ignore_db(如果需要用的话)即可。如果没有这些内容,直接添加就可以。

binlog_do_db 是需要同步的数据库,如果有多个写多行即可

binlog_ignore_db是不需要同步的数据库,如果有多个写多个即可,不写也行

重启一下mysql

Shell

service mysql restart

1

servicemysqlrestart

再次进入mysql命令行界面,输入

Shell

show master status;

1

showmasterstatus;

回车后看到如下内容

Shell

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000002 | 106 | dbshop | mysql |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

1

2

3

4

5

6

+------------------+----------+--------------+------------------+

|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|

+------------------+----------+--------------+------------------+

|mysql-bin.000002|106|dbshop|mysql|

+------------------+----------+--------------+------------------+

1rowinset(0.00sec)

OK了,主服务器配置告一段落,这个显示的内容后面还有用到。

从服务器(B):

配置一下my.cnf文件中的内容

Shell

server-id=2

log_bin=/var/log/mysql/mysql-bin.log

replicate_do_db=dbshop

1

2

3

server-id=2

log_bin=/var/log/mysql/mysql-bin.log

replicate_do_db=dbshop

重新启动一下mysql

Shell

service mysql restart

1

servicemysqlrestart

进入mysql命令行界面,输入

Shell

CHANGE MASTER TO

MASTER_HOST='192.168.1.6',

MASTER_USER='dbtest',

MASTER_PASSWORD='123456',

MASTER_PORT=3306,

MASTER_LOG_FILE='mysql-bin.000002',

MASTER_LOG_POS=0,

MASTER_CONNECT_RETRY=60;

1

2

3

4

5

6

7

8

CHANGEMASTERTO

MASTER_HOST='192.168.1.6',

MASTER_USER='dbtest',

MASTER_PASSWORD='123456',

MASTER_PORT=3306,

MASTER_LOG_FILE='mysql-bin.000002',

MASTER_LOG_POS=0,

MASTER_CONNECT_RETRY=60;

MASTER_LOG_FILE的值,是上面 show master status 显示中的内容

MASTER_CONNECT_RETRY 重试间隔60秒,当主从服务器连接意外断开时数据库每隔60秒进行一个重新连接

然后输入

Shell

start slave;

show slave status\G

1

2

startslave;

showslavestatus\G

在显示的内容如果有

Slave_IO_Running=Yes

Slave_SQL_Running=Yes

表明slave的I/O和SQL线程都已经开始运行

这样mysql单向数据同步就完成了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值