Linux下Mysql主从配置


配置主服务器(master)

1、编辑数据库配置文件my.cnf,一般在/etc/目录下。

        #vi /etc/my.cnf

在[mysqld]的下面加入下面代码:

        log-bin=bin.log

        server-id=1

        innodb_flush_log_at_trx_commit=1

        sync_binlog=1

        binlog-do-db=mysql_db_1

        binlog_ignore_db=mysql_db_2


server-id=1中的1可以任定义,只要是唯一的就行。
binlog-do-db=mysql_db_1是表示只备份mysql_db_1
binlog_ignore_db=mysql_db_2表示忽略备份mysql_db_2
不加binlog-do-db和binlog_ignore_db,那就表示备份全部数据库。


2、然后重启MySQL:

        #service mysqld restart

3、登录MySQL服务器

        {特别注意,只能通过命令行登陆linux服务器,执行当前的命令,不能通过数据库客户端来执行}

        #mysql -uroot -p

    在主服务器新建一个用户赋予“REPLICATION SLAVE”的权限,从服务器用这个用户来连接主服务器,实现数据同步。

       mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO slave_visit_user@'X.x.x.x' IDENTIFIED BY 'password';

       其中,slave_visit_user:是我们自定义的从服务器连接时使用的用户名。  X.x.x.x:是从服务器ip。  password   :从服务器访问时的 密码;

4、执行以下命令锁定数据库以防止写入数据。       

        mysql>FLUSH TABLES WITH READ LOCK;

5、退出mysql命令行{exit},导出数据库

           #mysqldump -u root -p123456 --all-databases  --lock-tables=false  -- > /root/all.sql

6、使用scp命令传输数据库文件all.sql到从服务器。

            #scp   /root/all.sql   [email protected]:/root

7、再次连接数据库进入mysql命令行查看master状态。

            mysql>SHOW MASTER STATUS;

          请记下显示的信息,配置从服务器会用到。
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000003 | 1001741 | dbispconfig | mysql |
+——————+———-+————–+——————+


8、解锁数据表。

            mysql>UNLOCK TABLES;



配置从服务器(slave)

登录从服务器。
1、导入主服务器的数据库。

            #mysql -u root -p123456 < /root/all.sql

2、编辑配置文件my.cnf,在[mysqld]下面加入:

            server-id=2

          log-bin=bin.log

        server-id 的值可以自己定义,master和slave不能相同即可。

3、保存文件并重启mysqld。

        #service mysqld restart

4、登录mysql服务器,执行以下命令。

        mysql>CHANGE MASTER TO

                MASTER_HOST='X.X.X.X',

                MASTER_USER='slave_visit_user',

                MASTER_PASSWORD='password',

                MASTER_PORT=3306,

                MASTER_LOG_FILE='mysql-bin.000001',

                MASTER_LOG_POS=98,

                MASTER_CONNECT_RETRY=10;


    MASTER_HOST:主服务器的IP。
    MASTER_USER:配置主服务器时建立的用户名
    MASTER_PASSWORD:用户密码
    MASTER_PORT:主服务器mysql端口,如果未曾修改,默认即可。


5、启动slave进程,并查看是否配置成功。

        mysql>START SLAVE;

        mysql> show slave status\G;

    

        如果出现下面的提示 {上面两个必须都是yes,其中一个NO均属错误},那么说明主从配置成功。

...................
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

...................



你可能感兴趣的:(Linux下Mysql主从配置)