闲来没事试了一下,mysql主从备份数据库的配置,主数据库服务器为自用windows,mysql版本为5.5.28,备机为一台linux测试服务器,mysql为5.0.77。据说最好是主备版本一致,但本人本着探索的精神试试看。
1)第一步不多说肯定是先安装mysql数据库,这里不再赘述;
2)准备:
主机A IP:10.0.67.106,mysql 端口3306;(master)
主机B IP:10.0.65.3 mysql 端口3306;(slave )
3)
登陆主机A mysql:
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘mysqlusername’@’10.0.65.3‘ IDENTIFIED BY ‘password’;
赋予从机权限,有多台丛机,就执行多次;
找到主机A的mysql配置文件C:\Program Files\MySQL\MySQL Server 5.5\my.ini(注意linux下为my.cnf);
在[mysqld]下边添加如下内容:
server-id=1#主机标示,整数
port=3306
log-bin =C:/Program Files/MySQL/MySQL Server 5.5/log/mysql-bin.log #确保此文件可写
read-only=0 #主机,读写都可以
binlog-do-db=test #需要备份数据库,多个写多行
binlog-ignore-db=mysql#不需要备份的数据库,多个写多行
4)
打开从机的数据库配置文件my.cnf(linux主机):
server-id = 2 #从机标识
log_bin = /var/log/mysql/mysql-bin.log #确保该文件可写
master-host =10.0.67.106 #主机Ip
master-user =mysqlusername #数据库访问用户名
master-pass =password#数据库访问密码
master-port =3306 #主机端口
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =test #只复制某个库
replicate-ignore-db=mysql #不复制某个库
5)
先启动主机,再启动备机:
在主机A中,mysql>show master status\G
在从机B中,mysql>show slave status\G
6)
可以在主机A中,做一些INSERT, UPDATE, DELETE 操作,看看主机B中,是否已经被修改
可能遇到的问题:
1)需要备份和不需要备份的数据库配置、需要复制和不需要的数据库配置缺一不可,我开始只配了需要复制和备份的配置,数据库根本起不来;
2)备机启动如果出现下图错误
重启master库:service mysqld restart
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 98 | | |
+------------------+----------+--------------+------------------+
备机:
mysql> slave stop;
mysql> change master to Master_Log_File='mysql-bin.000001',Master_Log_Pos=98;
mysql> slave start;
mysql> show slave status\G
3)'./mysql-bin.index' not found (Errcode: 13) 的解决方法,类似这样的文件找不到,但文件是有的,文件权限问题,
chgrp -R mysql /usr/local/mysql/data && chown -R mysql /usr/local/mysql/data