百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 配置MySQL 5.0的复制(Replication)的详解
分享文章到:

配置MySQL 5.0的复制(Replication)的详解

发布时间:01/15 来源: 浏览: 关键词:
Replication就是mysql数据库中一个主从复制功能了,我们可以通过Replication功能来进行数据的一个同步或异步同步了,这样可以实现多台服务器数据实时更新了。

MySQL的Replication功能可以自动同步主MySQL服务器的更新到若干个辅MySQL服务器上,这个功能能把MySQL的数据实时分布到多台机器上,提交了MySQL的数据安全性。

配置MySQL Replication并不是个简单的工作,如果配置的不好,回导致MySQL的同步性能不好,或者不能同步,甚至导致主辅服务器的数据不一致。

下面主服务器为master,辅助服务器为slave

master的配置

第一步保证master能单机正常工作,略。

在master上创建一个MySQL用户,这个用户专门用于Replication:

grant replication slave on *.* to 'repluser'@'%' identified by 'mypassword';

编辑MySQL的配置文件,允许log-bin,并且给master分配一个ID:

[mysqld]
skip-name-resolve
server-id=10
log-bin=mysql-bin
sync_binlog=1
innodb_flush_logs_at_trx_commit=1
innodb_support_xa=1
slave的配置
配置ID等

[mysqld]
server-id=20
log_bin = mysql-bin
relay_log = mysql-relay-bin
skip_slave_start
log_slave_updates = 1
read_only
skip-name-resolve

同步数据

在master上把数据导出,并记录当前数据位置。用一个用户连接mysql并运行:

flush tables with read lock;
show master status;

然后该连接不要退出,否则read lock就失效了,记录下当前日志的文件名和位置。在另外一个窗口运行如下命令导出数据:

mysqldump -uroot -p  --all-databases |gzip -c > db.sql.gz

然后把数据文件拷贝到slave上,解压缩:

gunzip db.sql.gz

进MySQL导入:

source db.sql;

这时候slave上的数据已经同步到master的导出时刻的数据了,下面就启动自动同步的线程就可以了:

change master to master_host='1.1.1.1', master_user='repluser', aster_password='mypassword',master_log_file='mysql-bin.000006',master_log_pos=502185;
show slave status;
start slave;

show slave status;

从上面的
show slave status命令的输出可以看到,
IO线程和SQL线程都开始工作了。过几分钟后比较一下slave和master上的日志文件及其位置,应该就是一样的了。

注意事项
应用程序不要使用数据库的root用户,一定要创建普通用户供应用程序使用,因为root用户可以在slave上进行写操作,容易导致数据不一致。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有4人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板