mysql 主从配置

kevin.Zhu 发布于:2013-1-16 12:56 分类:Mysql  有 10 人浏览,获得评论 0 条  

主: 192.168.0.186
从: 192.168.0.187

1. Master 端设置
    一、 创建一个用来同步的用户,指定只能在 192.168.0.187 登录
    mysql>GRANT REPLICATION SLAVE ON *.* TO backup@192.168.0.187 IDENTIFIED BY '1234';
    
    如果想要在Slave上有权限执行 "LOAD TABLE FROM MASTER"
    或 "LOAD DATA FROM MASTER" 语句的话,必须授予全局的 FILE 和 SELECT 权限:
    mysql>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO backup@192.168.0.187 IDENTIFIED BY '1234';

    
    二、1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下
        在[mysqld]配置段添加如下字段
        server-id=1
        log-bin=log
        binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库
        binlog-ignore-db=mysql //被忽略的数据库

    三、在master机器上登录mysql 用show master status看同步配置情况
    
2. Slave 端的设置
    一、 [mysqld]字段下添加如下内容
        server-id=2
        master-host=192.168.1.222
        master-user=repl
        master-password=123456
        master-port=3306
        master-connect-retry=60
        replicate-do-db=repl //同步的数据库,不写本行 表示 同步所有数据库
        然后重启slave机的mysql 。如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。

    二、 执行show slave status;又提示Empty set (0.00 sec),想不通问题在哪里
        后来发现,原来slave已经默认开启,要先关闭再开启
        执行 slave stop;
        再执行
        change master to master_host='192.168.0.186',master_user='backup',master_password='1234', master_log_file='log.000003' ,master_log_pos=98;
        (master_log_file/master_log_pos 可以在master机上登录mysql 运行 show master status; 看到 )

        然后执行 slave start;
        这时 再执行show slave status\G
        最关键的两条 显示必须如下:
                   Slave_IO_Running: Yes
                   Slave_SQL_Running: Yes
                   
到此, mysql主从配置完成。