Mysql主从配置_mysql备份_MYSQL5.5以上

mysql5.5.15配置主从数据库

1、编辑主库的my.cnf

   [mysqld]下添加如下配置

   server-id=1#一般默认为1,不需要修改(一般都以ip的后两位为server-id,保证全局的一致)

   read-only=0#主库读写都可以

   binlog-do-db=test#需要同步的数据库名称,要同步多个可以写多行

   binlog-ignore-db=mysql#不需要同步的数据库名称,可以写多行

   binlog-ignore-db=performance_schema

   log-bin= log/mysql-bin #二进制日志名称,确保此文件可写

 

2、设置同步数据库用的账号

   编辑好配置文件后,重启mysql,然后分配一个具有replication slave权限的用户

  例:  grant replication slave on *.* to 'dsg112'@'192.168.%' identified by 'dsg112';

 

3、查看主机状态

mysql>show master status;

 白俊遥博客

记下fileposition ,这里显示的binlog_do_dbbinlog_ignore_db就是第一步在配置文件中设置的。

4、编辑从库的my.cnf

   将从库的server-id改成与主库不一致,也可以添加replicate-do-dbreplicate-ignore-db来指定同步的数据库和不同步的数据库。

server-id=2

 

#从库只读

read-only=1

 

#需要同步的数据库名称,要同步多个可以写多行

replicate-do-db=wxdp_wccd

replicate-do-db=test

#不需要同步的数据库名称,可以写多行

replicate-ignore-db=mysql

replicate-ignore-db=information_schema

replicate-ignore-db=performance_schema

#二进制日志名称,确保此文件可写

log-bin=log/mysql-bin

 

5、在从库上设置主库信息

   编辑完配置文件后,重启从库mysql,然后用change master 命令设置主库信息。

   mysql>change master to master_host='192.168.64.129',master_user='dsg112',master_password='dsg112',master_log_file='mysql-bin.000001',master_log_pos=268;

 

master_host为主库ipmaster_usermaster_password是第二步分配的同步用的用户名和密码;master_log_filemaster_log_position是第三步中的fileposition值。

 

6、查看是否配置成功

start slave #启动从数据库

show slave status \G;#查看从库状态

 白俊遥博客

Slave_IO_StateSlave_IO_RunningSlave_SQL_Running状态如上图则表示配置成功。

7、主从库都配置好后,将主库的进行一个完全备份,然后导入从库,保证当前主从一致,那么以后主库的任何修改都会同步到从库上面,保证主从数据的一致性。

 

8、配置过程常见错误

   a ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master_user='USER'

   执行change 命令时落了逗号。

  b 、若出现Slave_IO_RunningSlave_SQL_Running状态为no,则从stop slave 从新执行一遍change master to master_host='10.6.208.183',master_user='backup',master_password='123',master_log_file='mysql-bin.000019',master_log_pos=746;

然后再start slave就可以了。

 

二、操作步骤

# A B 服务器停止同步

STOP SLAVE;

# A B 服务器清空MASTER日志

RESET MASTER;

# A B 服务器清空SLAVE日志

RESET SLAVE;

# A B服务器启动同步

start slave;

mysql日志文件mysql-bin文件清除方法


默认情况下mysql会一直保留mysql-bin文件,这样到一定时候,磁盘可能会被撑满,这时候是否可以删除这些文件呢,是否可以安全删除,是个问题,不建议使用rm命令删除,这样有可能会不安全,正确的方法是通过mysql的命令去删除。

 

mysql> reset master;

mysql> reset slave;


其实关键的命令就是reset master;这个命令会清空mysql-bin文件。

 

另外如果你的mysql服务器不需要做主从复制的话,建议通过修改my.cnf文件,来设置不生成这些文件,只要删除my.cnf中的下面一行就可以了。

 

log-bin=mysql-bin

如果你需要复制,最好控制一下这些日志文件保留的天数,可以通过下面的配置设定日志文件保留的天数:

 

expire_logs_days = 3

表示保留3天的日志,这样老日志会自动被清理掉

 



 

 

 

 

 


白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论