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;

上述实现的是双向的两个数据库的实时同步,