mysql 主从 主主 模式配置
时间:2010-07-19 来源:火鸡
一,主从模式
- Master 端:
mkdir -p /var/log/mysql
chown -R mysql:mysql /var/log/mysql //创建更新目录并赋予mysql用户权限 修改配置文件:
chown -R mysql:mysql /var/log/mysql //创建更新目录并赋予mysql用户权限 修改配置文件:
vi /etc/my.cnf //编辑配置文件增加以下内容
log-bin=mysql-bin //启动二进制日志系统
binlog-do-db=test //二进制需要同步的数据库名 如果有多个数据库, 每个数据库一行
server-id= 1 //本机数据库ID
log-bin=/var/log /mysql/updatelog //设定生成log文件名,这里的路径没有mysql目录要手动创建并给于它mysql用户的权 限
binlog-ignore-db=mysql //避免同步mysql用户配置, 以免不必要的麻烦 创建用于同步的用户:
log-bin=mysql-bin //启动二进制日志系统
binlog-do-db=test //二进制需要同步的数据库名 如果有多个数据库, 每个数据库一行
server-id= 1 //本机数据库ID
log-bin=/var/log /mysql/updatelog //设定生成log文件名,这里的路径没有mysql目录要手动创建并给于它mysql用户的权 限
binlog-ignore-db=mysql //避免同步mysql用户配置, 以免不必要的麻烦 创建用于同步的用户:
mysql
GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO 'replication'@'192.168.0.35' IDENTIFIED BY '123456';
// 给从服务器用户replication 的同步权限
Grant ALL PRIVILEGES ON test.* TO replication@'%' IDENTIFIED BY '123456';
Flush privileges; //创建用户replication,密码123456,允许所有用户访问数据库test,并刷新权限 复制数据到从库:
GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO 'replication'@'192.168.0.35' IDENTIFIED BY '123456';
// 给从服务器用户replication 的同步权限
Grant ALL PRIVILEGES ON test.* TO replication@'%' IDENTIFIED BY '123456';
Flush privileges; //创建用户replication,密码123456,允许所有用户访问数据库test,并刷新权限 复制数据到从库:
service mysqld stop
(或对数据库进行锁操作
mysql
FLUSH TABLES WITH READ LOCK;
)
tar -cvf /root/db.tar /home/mysql/test //备份主服务器需同步的数据库
scp /root/db.tar [email protected]:/home/mysql //上传数据到从服务器,这个过程中需要输入从服务器的密码。
(UNLOCK TABLES;)
service mysqld start
mysql
show master status;
(或对数据库进行锁操作
mysql
FLUSH TABLES WITH READ LOCK;
)
tar -cvf /root/db.tar /home/mysql/test //备份主服务器需同步的数据库
scp /root/db.tar [email protected]:/home/mysql //上传数据到从服务器,这个过程中需要输入从服务器的密码。
(UNLOCK TABLES;)
service mysqld start
mysql
show master status;
- Slave 端:
vi /etc/my.cnf
server-id=2 //从服务器ID号
master-host=192.168.0.30 //主服务器地 址
master-user=replication //指定在主服务器上可以进行同步的用户名
master- password=123456 //密码
master- port=3306 //端口号
master-connect-retry=60 //断点重连时间
replicate-ignore-db=mysql //屏蔽对mysql库的同步,以免有麻烦
replicate-do- db=test //同步数据库名称 装载主服务器数据库 :
server-id=2 //从服务器ID号
master-host=192.168.0.30 //主服务器地 址
master-user=replication //指定在主服务器上可以进行同步的用户名
master- password=123456 //密码
master- port=3306 //端口号
master-connect-retry=60 //断点重连时间
replicate-ignore-db=mysql //屏蔽对mysql库的同步,以免有麻烦
replicate-do- db=test //同步数据库名称 装载主服务器数据库 :
tar -xvf /home/mysql/db.tar
service mysqld start 同步数据:
service mysqld start 同步数据:
mysql
slave stop;
CHANGE MASTER TO
MASTER_HOST='192.168.0.31',
MASTER_USER='replication',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='centos2-bin.000014',
MASTER_LOG_POS=188;
//根据主服务器show master的结果,进行从服务器的二进制数据库记录回归,达到同步的效果。
slave start;
show slave status\G; 二,主主模式 思路,互为对方的从服务器.每台服务器即是对方的主服务器,又是对方的从服务器. 原slave端:
slave stop;
CHANGE MASTER TO
MASTER_HOST='192.168.0.31',
MASTER_USER='replication',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='centos2-bin.000014',
MASTER_LOG_POS=188;
//根据主服务器show master的结果,进行从服务器的二进制数据库记录回归,达到同步的效果。
slave start;
show slave status\G; 二,主主模式 思路,互为对方的从服务器.每台服务器即是对方的主服务器,又是对方的从服务器. 原slave端:
mkdir -p /var/log/mysql
chown -R mysql:mysql /var/log/mysql
vi /etc/my.cnf //修改Slave配置文件,使之成为主服务器
log-bin=mysql-bin
log-bin=/var/log/mysql/updatelog
binlog-do-db=test
binlog-ignore-db=mysql
mysql
GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO 'replication'@'192.168.0.30' IDENTIFIED BY '123456';
// 给从服务器用户replication 的同步权限
Grant ALL PRIVILEGES ON test.* TO replication@'%' IDENTIFIED BY '123456';
Flush privileges; //创建用户replication,密码123456,允许所有用户访问数据库test,并刷新权限 原master端:
chown -R mysql:mysql /var/log/mysql
vi /etc/my.cnf //修改Slave配置文件,使之成为主服务器
log-bin=mysql-bin
log-bin=/var/log/mysql/updatelog
binlog-do-db=test
binlog-ignore-db=mysql
mysql
GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO 'replication'@'192.168.0.30' IDENTIFIED BY '123456';
// 给从服务器用户replication 的同步权限
Grant ALL PRIVILEGES ON test.* TO replication@'%' IDENTIFIED BY '123456';
Flush privileges; //创建用户replication,密码123456,允许所有用户访问数据库test,并刷新权限 原master端:
Master 端:
vi /etc/my.cnf
master- host=192.168.0.35 //主服务器地址
master-user=replication //指定在主服务器上可以进行同步的用户名
master- password=123456 //密码
master- port=3306 //端口号
master-connect-retry=60 //断点重连时间
replicate-ignore-db=mysql //屏蔽对mysql库的同步,以免有麻烦
replicate-do- db=test //同步数据库名称
mysql
slave stop;
CHANGE MASTER TO
MASTER_HOST='192.168.0.30',
MASTER_USER='replication',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='updatelog.000001',
MASTER_LOG_POS=98;
//根据主服务器show master的结果,进行从服务器的二进制数据库记录回归,达到同步的效果。
slave start;
show slave status\G;
vi /etc/my.cnf
master- host=192.168.0.35 //主服务器地址
master-user=replication //指定在主服务器上可以进行同步的用户名
master- password=123456 //密码
master- port=3306 //端口号
master-connect-retry=60 //断点重连时间
replicate-ignore-db=mysql //屏蔽对mysql库的同步,以免有麻烦
replicate-do- db=test //同步数据库名称
mysql
slave stop;
CHANGE MASTER TO
MASTER_HOST='192.168.0.30',
MASTER_USER='replication',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='updatelog.000001',
MASTER_LOG_POS=98;
//根据主服务器show master的结果,进行从服务器的二进制数据库记录回归,达到同步的效果。
slave start;
show slave status\G;
本文出自 “寒.枫” 博客,请务必保留此出处http://liguxk.blog.51cto.com/129038/213343
相关阅读 更多 +