mysql主从复制配置过程

所属分类: 数据库 / Mysql 阅读数: 1146
收藏 0 赞 0 分享

主库配置

1. 配置mysql

vim /etc/my.cn
# 在文件中增加以下内容
server-id=1 # 保证server id唯一
log-bin = /var/lib/mysql/mysql-bin.log
binlog-do-db = db1 
binlog-do-db = db2

其中db1和db2是计划进行主从复制的库,如果有多个,写多行即可。配置完毕后,重启数据库: service mysqld restart

2. 添加复制用户

通过phpmyadmin,添加新用户,并授予REPLICATION SLAVE权限。或者通过root用户登录到mysql,赋予权限:

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password'

其中repl是用户名,password是该用户的密码。

3. dump数据

如果能够保证不会产生新数据,就不需要对数据库加锁。如果不能保证,则需要对每一个dump数据的数据库加锁:

use db1;
FLUSH TABLES WITH READ LOCK;

然后dump数据:

mysqldump -uroot -p db1 > db1.sql

如果有多个数据库,则重复上述过程多次。

4. 查看二进制文件位置

使用root身份登录mysql,查看master状态:

show master status;

该命令会有类似如下格式的输出:

+-----------------+-----------+----------------+------------------+
| File  | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+-----------+----------------+------------------+
| mysql-bin.00002 | 445 | db1,db2 |   |
+-----------------+-----------+----------------+------------------+
1 row in set (0.00 sec)

5. 解锁

如果导出数居前对数据库加了读锁,则需要解除:

use db1;
UNLOCK TABLES;

到此,主库配置完毕。特别需要记住 show master status 输出中的 file 和 position 的值。

从库配置

1. 新建数据库

首先在从库上建立相同名称的数据库。

2. 配置从数据库

vim /etc/my.cnf
# 在my.cnf中增加以下内容:
server-id = 2 # 保证id唯一
relay-log = /var/lib/mysql/mysql-relay-bin.log
replicate-wild-do-table = db1.%
replicate-wild-do-table = db2.%

如果同步多个数据库,replicate-wild-do-table需要写多行。配置好后,重启数据库。

3. 导入数据

将主服务器上dump出来的数据导入从服务器中:

mysql -uroot -p db1 < db1.sql

4. 配置主从同步

登录到mysql服务器,配置同步的主服务器信息:

> change master to master_host='xxx.xxx.xx.xx',
> master_user='repl',
> master_password='password',
> master_log_file='mysql-bin.00000x',
> master_log_pos=xxxx;

配置好后启动主从同步: start slave。然后通过命令查看状态:show slave status,如果成功的话slave_io_running和slave_sql_running两项应该都是yes.

测试

在主库上新增记录或者添加表等操作,几乎都能实时反映到从库上。

以上就是mysql主从复制配置过程的详细内容,更多关于mysql主从复制配置的资料请关注脚本之家其它相关文章!

更多精彩内容其他人还在看

mysql found_row()使用详解

在参考手册中对found_rows函数的描述是: it is desirable to know how many rows the statement would have returned without the LIMIT. 也就是说,它返回值是如果SQL语句没有加LI
收藏 0 赞 0 分享

很全面的MySQL处理重复数据代码

这篇文章主要为大家详细介绍了MySQL处理重复数据的实现代码,如何防止数据表出现重复数据及如何删除数据表中的重复数据,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

图文详解Ubuntu下安装配置Mysql教程

这篇文章主要以图文结合的方式详细为大家介绍了Ubuntu安装配置Mysql的实现步骤,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Ubuntu下mysql安装和操作图文教程

这篇文章主要为大家详细分享了Ubuntu下mysql安装和操作图文教程,喜欢的朋友可以参考一下
收藏 0 赞 0 分享

Linux/UNIX和Window平台上安装Mysql

这篇文章主要为大家详细介绍了Linux/UNIX和Window两个系统上采用命令安装Mysql的方法,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

忘记MySQL的root密码该怎么办

忘记密码总是一件令人头疼的事情,当我们忘记了MySQL的root密码该怎么办?本文给出解决方法,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Mysql存储引擎MyISAM的常见问题(表损坏、无法访问、磁盘空间不足)

这篇文章主要介绍了Mysql存储引擎MyISAM的常见问题,针对表损坏、无法访问、磁盘空间不足等问题进行解决,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

VS2013连接MySQL5.6成功案例一枚

这篇文章主要为大家分享了VS2013连接MySQL5.6成功案例一枚,很有实用性,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Windows下mysql修改root密码的4种方法

这篇文章主要为大家详细介绍了windows下mysql修改root密码的4种方法,大家可以根据的自己的实际情况进行选择,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解决方法

这篇文章主要介绍了mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多