首页 > 代码库 > MySQL主从配置总结

MySQL主从配置总结

mysql主从配置总结

1.[root@localhost ~]# cat /etc/redhat-release  //版本centos6.4
CentOS release 6.4 (Final)


2.[root@localhost ~]# virsh
Welcome to virsh, the virtualization interactive terminal.

Type:  ‘help‘ for help with commands
       ‘quit‘ to quit

3.virsh # list
 Id    Name                           State
----------------------------------------------------
 1     windows2003_64                 running
 2     winxp                          running
 4     CactiEZ                        running
 11    SN01                           running //KVM虚拟机SN01为centos6.4操作系统作为主mysql IP:192.168.200.77
 13    SN02                           running //KVM虚拟机SN01为centos6.4操作系统作为从mysql IP: 192.168.200.78

4.virsh # console 11 //进入主mysql服务器

5.[root@SN01 mysql]# rpm -q mysql-server //mysql版本为5.1.73版本
mysql-server-5.1.73-3.el6_5.x86_64


6.[root@SN01 mysql]# cat /etc/my.cnf //添加server-id和log-bin=mysql-bin
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql

server-id=77 //添加server-id不能重复这个为ip最后一位作为id
log-bin=mysql-bin //启动bin日志

7.[root@SN01 mysql]# mysql -uroot -p123456 //进入mysql数据库
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 5.1.73-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

8.mysql>grant replication slave on *.* to ‘replication‘@‘192.168.200.%‘ identified by ‘123456‘;//一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体

客户端IP代替,如192.168.200.78,加强安全。

Query OK, 0 rows affected (0.00 sec)

9.mysql> show master status; //查看主mysql的状态记住file和position
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      187 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

10.按ctrl+]返回kvm

11.virsh # list
 Id    Name                           State
----------------------------------------------------
 1     windows2003_64                 running
 2     winxp                          running
 4     CactiEZ                        running
 11    SN01                           running
 13    SN02                           running

12.virsh # console 13 //进入SN02从mysql服务器
Connected to domain SN02
Escape character is ^]


13.[root@SN02 mysql]# mysql -uroot -p123456 //进入从mysql数据库服务器
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.1.73-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

14.mysql> change master to master_host=‘192.168.200.77‘,master_user=‘replication‘,master_password=‘123456‘,
master_log_file=‘mysql-bin.000001‘,master_log_pos=187;//注意不要断开,“187”无单引号。

15.mysql> start slave; //启动服务器复制功能
Query OK, 0 rows affected, 1 warning (0.00 sec)


16.mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.200.77 //主服务器地址
                  Master_User: replication //授权帐户名,尽量避免使用root
                  Master_Port: 3306 //数据库端口,部分版本没有此行
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 187 //#同步读取二进制日志的位置,大于等于>=Exec_Master_Log_Pos
               Relay_Log_File: mysqld-relay-bin.000022
                Relay_Log_Pos: 251
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes  //此状态必须YES
            Slave_SQL_Running: Yes //此状态必须YES
              Replicate_Do_DB:
          Replicate_Ignore_DB: 
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 187
              Relay_Log_Space: 552
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)

ERROR:
No query specified

注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。

以上操作过程,主从服务器配置完成。

测试

17.mysql> show databases; //查看所有数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
|              |
+--------------------+
3 rows in set (0.00 sec)

18.mysql>create database zhh; //创建数据库zhh

19.mysql> use zhh;//进入zhh数据库
Database changed

20.mysql> create table zhh(id int(3),name char(10));//创建zhh表
Query OK, 0 rows affected (0.06 sec)

21.mysql> insert into zhh value(01,‘zh888.blog‘);//插入01和zh888.blog值
Query OK, 1 row affected, 1 warning (0.00 sec)

22.mysql> select *from zhh;//查询zhh表的内容
+------+------------+
| id   | name       |
+------+------------+
|    1 | zh888.blog |
+------+------------+
1 row in set (0.00 sec)

23.ctrl+]切换到kvm

24.virsh # list
 Id    Name                           State
----------------------------------------------------
 1     windows2003_64                 running
 2     winxp                          running
 4     CactiEZ                        running
 11    SN01                           running
 13    SN02                           running

25.virsh # console 13 //连接sn02从mysql服务器
Connected to domain SN02
Escape character is ^]

26.[root@SN02 mysql]# mysql -uroot -p123456 //进入从mysql数据库

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.1.73-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

27.mysql> show databases;//查看所有mysql数据库

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
| zhh                |
|         |
+--------------------+
4 rows in set (0.01 sec)

28.mysql> use zhh;//进入zhh数据库
Database changed

mysql> select *from zhh;//查询zhh表的内容
+------+------------+
| id   | name       |
+------+------------+
|    1 | zh888.blog |
+------+------------+
1 row in set (0.00 sec)


大功告成!



本文出自 “有志者事竟成!” 博客,请务必保留此出处http://zh888.blog.51cto.com/1684752/1600087

MySQL主从配置总结