mysql数据库同步1.26
- 格式:doc
- 大小:46.00 KB
- 文档页数:7
MySQL数据库数据同步方案
测试环境基本上数据是瞬间同步:
Red Hat Enterprise Linux AS4(两台)
Mysql4.0.16
我是在两台虚拟的Red Hat Enterprise Linux AS4下实现的,安装在两台服务器上的Mysql版本是相同的。
Mysql数据库数据同步热备份
A服务器:192.168.1.82 主服务器master
B服务器:192.168.1.83 副服务器 slave
注意:这里的IP地址是我所配置的服务器,你们在使用的时候要修改成你们相应的主从服务器的IP地址。
A..配置master主机
#cp /usr/local/mysql/share/mysql/f /etc/f
要重启服务器,配置文件才能生效
#vi /etc/f
在[mysqld]下面添加以下代码:
***********************************************************
[mysqld]
datadir=/usr/local/mysql/var
socket=/tmp/mysql.sock
server-id=1 //主服务器的ID
log-bin //打开日志文件 sql-bin-update-same //同步数据库
binlog-do-db=fwlogdb //更新数据库fwlogdb的日志
binlog-ignore-db=fwlogdb //更新数据库fwlogdb错误日志
log-bin
sql-bin-update-same
binlog-do-db=unix_sms_log
binlog-ignore-db=unix_sms_log
master-host=192.168.1.83 //连接slave的IP
master-user=root //同步用户帐号
master-password='fwipsadmin' //root的密码
master-port=3306 //默认访问端口3306
replicate-do-db=fwlogdb //更新fwlogdb
replicate -ignore-table=fwlogdb.ipinterface //不同步的表
log-bin
replicate-do-db=unix_sms_log // 更新unix_sms_log
master-connect-retry=60 //设置重试时间间隔为60秒
[mysql.server]
user=mysql
basedir=/usr/local/mysql
[safe_mysqld]
err-log=/var/log/mysqld.log //错误日志文件
pid-file=/usr/local/mysql/logs/mysqld.pid ***********************************************************
# touch /var/log/mysqld.log //新建文件mysqld.log
#mkdir /usr/local/mysql/logs //新建文件夹logs
#touch /usr/local/mysql/logs/mysqld.pid //在logs中新建文件mysqld.pid
# touch /usr/local/mysql/var/mysqld.pid //新建文件mysqld.pid
# chmod 777 /usr/local/mysql/var/mysqld.pid (文件可以读写)
检查3306端口是否已经打开:
# iptables -L --line -nv
如果没有打开,则执行以下命令,修改端口配置文件:
# vi /usr/local/palladium/pldac1
在文件中添加一行:iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
保存退出文件,然后执行:
# /usr/local/palladium/pldac1
这样,端口3306就打开了。
B.配置slave主机
#cp /usr/local/mysql/share/mysql/var/f /etc/f
要重启服务器,配置文件才能生效
#vi /etc/f
将文件中server-id=1的1改为2,表明为服务器的编号
在[mysqld]下面添加以下代码:
*********************************************************** [mysqld]
datadir=/usr/local/mysql/var
socket=/tmp/mysql.sock
log-bin
sql-bin-update-same
master-host=192.168.1.82
master-user=root
master-password='fwipsadmin'
master-port=3306
server-id=2
master-connect-retry=60
replicate-do-db=fwlogdb
replicate -ignore-table=fwlogdb.ipinterface
log-bin
replicate-do-db=unix_sms_log
log-slave-updates
log-bin
binlog-do-db=fwlogdb
binlog-ignore-db=fwlogdb
log-slave-updates
log-bin
binlog-do-db=unix_sms_log binlog-ignore-db=unix_sms_log
[mysql.server]
user=mysql
basedir=/usr/local/mysql
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/usr/local/mysql/logs/mysqld.pid
***********************************************************
# touch /var/log/mysqld.log
#cd /usr/local/mysql
#mkdir logs
#cd /usr/local/mysql/logs
#touch mysqld.pid
# touch /usr/local/mysql/var/mysqld.pid
# chmod 777 /usr/local/mysql/var/mysqld.pid (文件可以读写)
检查3306端口是否已经打开:
# iptables -L --line -nv
如果没有打开,则执行以下命令:
# vi /usr/local/palladium/pldac1
在文件中添加一行:iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
保存退出文件,然后执行:
# /usr/local/palladium/pldac1 这样,端口3306就打开了。
注意:如果文件配置错误,则启动数据库出错,检查配置文件是否正确配置
C, 创建同步的数据库
In master
# /usr/local/mysql/bin/mysql –uroot –pfwipsadmin
Mysql->grant all on *.* to root@’%’ identified by ‘1234’;
In slave
# /usr/local/mysql/bin/mysql –uroot –pfwipsadmin
Mysql->grant all on *.* to root@’%’ identified by ‘1234’;
注意:master和slave上root用户给所有主机可以访问的权限,
D 重启数据库
In master
# /usr/local/mysql/bin/mysqladmin –uroot –pfwipsadmin shutdown
#/usr/local/mysql/bin/mysqld_safe --user=root&
In slave
# /usr/local/mysql/bin/mysqladmin –uroot –pfwipsadmin shutdown
#/usr/local/mysql/bin/mysqld_safe --user=root &
注意:在重启数据库前要删除master和slave服务器上的(/usr/local/mysql/var/)文件(该文件系统会自动生成,如果不删除,则使用的还是原来系统的配置),
E 查看服务器日志 In master
# tail /var/log/mysqld.log
In slave
# tail /var/log/mysqld.log
检查是否连接正常,否则检查前面的配置是否正确。
F. 测试
In master
# /usr/local/mysql/bin/mysql –uroot –pfwipsadmin
Mysql->show master status;
Mysql->show slave status\G;
注意:Slave_IO_Running和Slave_SQL_Running两相的值必需为Yes,否则检查配置文件或同步用户root的权限
Mysql->show processlist\G;
上述实现的是双向的两个数据库的实时同步,