mysql实现主主互相热备

部分内容引用自:http://www.cnblogs.com/kristain/articles/4142970.html
使用mysql的主从备份功能很方便的备份你需要的数据库到另外一台服务器上,为安全增添一份保险.
MySQL 的 Master 配置:
配置my.cnf:

 

# vi /etc/my.cnf

 

[mysqld]
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
server-id=200
log-bin=mysql-bin //默认一般已开
relay-log=relay-bin
relay-log-index=relay-bin-index

 

read-only=0
#binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=amh
auto-increment-increment = 10
auto-increment-offset = 1

*配置好后,重启Master 的 MySQL服务!!!

 

service mysqld restart
//————————————————–
MySQL 的 Slave 配置:
配置my.cnf:

 

# vi /etc/my.cnf

 

[mysqld]
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
server-id=132
log-bin=mysql-bin  //默认一般已开
replicate-do-db=test  //需要备份的数据库名
log-slave-updates=1

 

 replicate-do-db =test   //数据库名
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=amh
relay_log=mysqld-relay-bin
log-slave-updates = ON
*配置好后,重启Slave 的 MySQL服务!!!

 

service mysqld restart

 

//————————————————–
登录Slave,然后执行下面命令,如果无法登陆尝试使用 mysql -uroot -p  然后输入密码登入到sql界面:

 

mysql> stop slave;
mysql>change master to master_host=’主数据ip’,master_user=’主数据库用户名’,master_password=’PASSWD’;
mysql> start slave;
mysql> show slave statusG;

 

查看这两项是否为YES,yes为正常。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如报错,尝试使用:
#1.停止mysql数据库
/etc/init.d/mysqldstop 
#2.执行如下命令
mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 
#3.使用root登录mysql数据库
mysql -u root mysql 
#4.更新root密码
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
#5.刷新权限 
mysql> FLUSH PRIVILEGES; 
#6.退出mysql
mysql> quit 
#7.重启mysql
/etc/init.d/mysqldrestart 
#8.使用root用户重新登录mysql
mysql -uroot -p 
Enter password: <输入新设的密码newpassword>
重点更新连接信息:
CHANGE MASTER TO
MASTER_HOST=’主数据库ip’,
MASTER_USER=’同步用户’,
MASTER_PASSWORD=’passwd’,
MASTER_LOG_FILE=’在主sql上查看’,
MASTER_LOG_POS= 主数据库pos值;
到这里 如果你成功了 那么就可以歇一歇了,然后我们进入第二步:
首先在从服务器中编辑/etc/my.cnf:
read-only=0
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=amh
auto-increment-increment = 10
auto-increment-offset = 2
然后使用show master statusG; 查看作为master的信息.
记住后登陆之前的主服务器同样编辑my.cnf:
replicate-do-db =test   //数据库名
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=amh
relay_log=mysqld-relay-bin
log-slave-updates = ON
然后重启mysql服务! 查看各自的状态.都是yes那么就成功了.
如遇到第二项是NO可以尝试使用:
1.mysql> reset slave; # 重点就是这行
2.mysql> CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000001′, MASTER_LOG_POS=107; # 请依照自行环境设定
3.mysql> start slave; # 就正常了.
最后如果你开启了iptables需要放行互联的ip地址或端口:
-A INPUT -p tcp -m state –state NEW -m tcp –dport 3306 -j ACCEPT  直接放行3306
分享到:

0 条评论

昵称

沙发空缺中,还不快抢~