部分内容引用自: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
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
/mysqld
stop
#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
/mysqld
restart
#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值;
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
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
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; # 就正常了.
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