mysql5.5.15配置主从数据库

来源:互联网 发布:特效视频制作软件 编辑:程序博客网 时间:2024/05/22 06:26


mysql5.5.15配置主从数据库

  1. 编辑主库的my.cnf

       [mysqld]下添加如下配置

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

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

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

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

       binlog-ignore-db=performance_schema

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

     

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

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

      例: grant replication slave on *.* to backup@10.6.222.195identified by '123'

     

  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=test

       replicate-ignore-db=mysql

       replicate-ignore-db=information_schema

       replicate-ignore-db=performance_schema

     

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

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

       mysql>change master tomaster_host='10.6.208.183',master_user='backup',master_password='123',master_log_file='mysql-bin.000019',master_log_pos=746;

     

    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 ERROR1064 (42000): You have an error in your SQL syntax; check the manual thatcorresponds 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 tomaster_host='10.6.208.183',master_user='backup',master_password='123',master_log_file='mysql-bin.000019',master_log_pos=746;

    然后再start slave就可以了。

     

0 0