您的位置:首页 > 数据库 > MySQL

mysql5.5主从配置

2015-11-14 21:29 543 查看

1.序

服务器为ubuntu,主数据库ip为192.168.37.101,从数据库ip地址为192.168.37.102

2.配置主库master同步复制时的选项

在mysql的配置文件中开启以下选项

server-id = 1 服务id

log_bin = mysql-bin 开启二进制日志文件

expire_logs_days = 10 日志过期时间(天)

max_binlog_size = 500M 单个日志最大空间

binlog_do_db = test 需要复制的数据库,如果复制多个添加新行即可

binlog_ignore_db = mysql 不需要进行复制的数据,如果需要忽略多个添加新行即可

重启mysql服务 sudo service mysql restart

可以通过pgrep mysql命令查看mysql是否启动成功

3.在主库master上创建同步复制时的用户并授权

创建用户

CREATE USER ‘slave’@’%’ IDENTIFIED BY ‘111111’;

授权

GRANT REPLICATION SLAVE ON . TO ‘slave’@’%’;

查看是否授权成功

select user,repl_slave_priv from user where user=’slave’;

在slave机器上测试是否可以连接master

mysql -h 192.168.37.101 -uslave -p111111

4.主库master锁表

flush tables with read lock;

注意:目前这个锁表的终端不要退出,否则这个锁就失效了,对于下面的操作可另开终端。

5.记录主库master的binlog文件名以及pos位置节点

show master status;

+——————+———-+————–+——————+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+——————+———-+————–+——————+

| mysql-bin.000001 | 107 | test | mysql |

+——————+———-+————–+——————+

1 row in set (0.00 sec)

注意:在从数据库操作时候用得到文件名和位置,文件名是说读取主数据库的那个二进制文件来进行同步,从二进制文件的哪个位置开始

6.导出需要同步的数据库

第一种方法就是在主库锁表后,使用tar把master库直接打包,然后使用scp或者rsync把该打包文件弄到从库slave上

第二种方法就是在主库锁表后,我们直接使用mysqldump命令导出数据库,然后在从库上进行恢复。

注意以上两种方法,我们都需要进行在主库master锁表后进行操作。

通过第二种方法来导出需要同步的数据库,如下:

sudo mysqldump -uroot -p111111 test>test.sql

可以通过cat命令查看导出

通过scp命令把sql文件复制到slave机器上

sudo scp test.sql wjm@192.168.37.102:/home/wjm

7.配置从库slave同步复制时所需要的选项

在mysql的配置文件中开启以下选项

server-id = 2

重启mysql服务 sudo service mysql restart

可以通过pgrep mysql命令查看mysql是否启动成功

8.在从库slave上创建数据库需要同步的数据库并导入备份

创建数据库

CREATE DATABASE IF NOT EXISTS test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

导入数据

mysql -uroot -p111111 test < /home/wjm/test.sql

9. 解锁主库master表

unlock tables;

10.设置从库slave与主库master同步

可先执行 stop slave命令

change master to master_host=’192.168.37.101’,

master_user=’slave’,

master_password=’111111’,

master_log_file=’mysql-bin.000001’,

master_log_pos=107,

master_connect_retry=100;

master_host表示是主库的IP

master_user表示主库master上允许同步的用户

maser_password表示同步用户的密码

master_log_file表示从哪个binlog文件开始同步

master_log_pos表示从该binlog文件的那个pos节点位置开始同步

master_connect_retry当重新建立主从连接时,如果连接建立失败,间隔多久后重试

11.在从库slave上开启同步

start slave;

可用命令show slave status\G;检查,同步是否正常。

查看同步是否主要是查看Slave_IO_Running与Slave_SQL_Running选项。

如果正常同步,这两选必须同时为YES。

如果Slave_IO_Running为NO,说明可能是从库与主库的网络不通。

如果Slave_SQL_Running为NO,说明很可能是从库与主库的数据不一致。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: