Mysql 的数据库复制功能 (Replication Database)

2009-05-13 12:57:08来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

绝对蓝屏 [ihweb](黄华栋)
Mysql 数据库相信大家已经投入了生产使用。很多人都将他和 PHP 集成在 Apache 中,为WebSite 服务。的确,他们在WebSite 中的应用比较多,而且PhpMyAdmin 又是一个PHP+Mysql 的最好应用例子。
那么Mysql 能不能实现两个系统之间通过TCP/IP去复制数据库?能不能实现实时复制呢?也就是说能不能实现同步(Synchronization)的问题。先概括介绍一下Mysql 的Replication Database功能。
复制(Replication)类似于拷贝数据库到另一台服务器上,但它是通过定义Master 和Slave的关系去实时地保证两个数据库的完全同步。这个功能在Mysql的3.23版中开始出现。
下面大家一起来测试一下Mysql的Replication 功能。
作者的平台是:
Master:Mysql 3.23.53-log on FreeBSD 4.7 Release IP:192.168.10.100
Slave: Mysql 3.23.56-log on FreeBSD 4.8 Stable IP:192.168.10.200 1、Master 机器设置权限,赋予Slave Relication 权利,并打包要同步的数据库结构。
MasterBSD# pwd
/usr/local/mysql/bin
MasterBSD#./mysql –u root –p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 3.23.53-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> GRANT FILE ON *.* TO replication@192.168.10.200 IDENTIFIED BY ‘repplication’;
(赋予192.168.10.200也就是Slave 机器有File权限)
然后打包要复制的数据库
MasterBSD# cd var
MasterBSD# tar czvf repdatabase.tar.gz repdatabase
这样,我们的到一个repdatabase数据库的打包文件repdatabase.tar.gz
2设置主服务器Master的my.cnf,启动Mysql服务
MasterBSD# vi /etc/my.cnf在[mysqld]添加或修改以下的
[mysqld]
log-bin
server-id=1
sql-bin-update-same
binlog-do-db= repdatabase针对repdatabase 库做replication 功能
然后把Master主服务器的Mysql重启。
MasterBSD# /usr/local/mysql/bin/mysqladmin –u root –p shutdown
MasterBSD# /usr/local/mysql/bin/safe_mysqld --user=mysql &3、建立Slave数据库
刚才我们在Master中打包了repdatabase.tar.gz,它的作用就是要在Slave恢复成一样的数据库。先把Master 的repdatabase.tar.gz文件传到Slave机器中去。然后
SlaveBSD# tar zxvf repdatabase.tar.gz -C /usr/local/mysql/var/4、修改Slave服务器的my.cnf
SlaveBSD# vi /etc/my.cnf在[mysqld]添加或修改以下的
master-host=192.168.10.100
master-user=replication
master-password=replication
master-port=3306
server-id=2
master-connect-retry=60
replicate-do-db=reldatabase    [要更新的数据库]
log-slave-updates5、重启动Slave的slave start。
SlaveBSD# /usr/local/mysql/bin/mysqladmin –u root –p shutdown
SlaveBSD# /usr/local/mysql/bin/safe_mysqld --user=mysql &6、测试
先检测两个Mysql数据库中的repdatabase是否正常。
正常情况应该是Master和Slave 中的Mysql 都有相同的repdatabase 数据库,并且里面的数据都一样。
然后我们测试replication 功能是否起用。
在Master中的repdatabas数据库添加一笔数据:
MasterBSD# /usr/local/mysql/bin/mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:基于数据库的虚拟域邮件系统的构建

下一篇:浅谈FreeBSD 5.2R 常用操作(设置)的改变