mysql主从配置

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://369369.blog.51cto.com/319630/790921

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下:
 
1、主从服务器分别作以下操作:
  1.1、版本一致
  1.2、初始化表,并在后台启动mysql
  1.3、修改root的密码
 
2、修改主服务器master:
   #vi /etc/my.cnf
       [mysqld]
       log-bin=mysql-bin   //[必须]启用二进制日志
       server-id=222       //[必须]服务器唯一ID,默认是1,一般取IP最后一段
 
3、修改从服务器slave:
   #vi /etc/my.cnf
       [mysqld]
       log-bin=mysql-bin   //[必须]启用二进制日志
       server-id=226       //[必须]服务器唯一ID,默认是1,一般取IP最后一段
 
4、重启两台服务器的mysql
   /etc/init.d/mysql restart
 
5、在主服务器上建立帐户并授权slave:
   #/usr/local/mysql/bin/mysql -uroot -pmttang 
   mysql>GRANT REPLICATION SLAVE ON *.* to ‘mysync‘@‘%‘ identified by ‘q123456‘; //一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。
 
6、登录主服务器的mysql,查询master的状态
   mysql>show master status;
   +------------------+----------+--------------+------------------+
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   +------------------+----------+--------------+------------------+
   | mysql-bin.000004 |      308 |              |                  |
   +------------------+----------+--------------+------------------+
   1 row in set (0.00 sec)
   注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化
 
7、配置从服务器Slave:
   mysql>change master to aster_host=‘192.168.145.222‘,master_user=‘tb‘,master_password=‘q123456‘,
         master_log_file=‘mysql-bin.,000004‘,master_log_pos=308;   //注意不要断开,“308”无单引号。
 
   Mysql>start slave;    //启动从服务器复制功能
 
8、检查从服务器复制功能状态:
 
   mysql> show slave status\G
 
   *************************** 1. row ***************************
 
                Slave_IO_State: Waiting for master to send event
 
                   Master_Host: 192.168.2.222  //主服务器地址
 
                   Master_User: myrync         //授权帐户名,尽量避免使用root
 
                   Master_Port: 3306           //数据库端口,部分版本没有此行
 
                 Connect_Retry: 60
 
               Master_Log_File: mysql-bin.000004
 
           Read_Master_Log_Pos: 600        //#同步读取二进制日志的位置,大于等于>=Exec_Master_Log_Pos
 
                Relay_Log_File: ddte-relay-bin.000003
 
                 Relay_Log_Pos: 251
 
         Relay_Master_Log_File: mysql-bin.000004
 
              Slave_IO_Running: Yes       //此状态必须YES
 
             Slave_SQL_Running: Yes       //此状态必须YES
                    ......
 
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
 
以上操作过程,主从服务器配置完成。
  
9、主从服务器测试:
 
主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:
 
  mysql> create database hi_db;
  Query OK, 1 row affected (0.00 sec)
 
  mysql> use hi_db;
  Database changed
 
  mysql>  create table hi_tb(id int(3),name char(10));
  Query OK, 0 rows affected (0.00 sec)
  
  mysql> insert into hi_tb values(001,‘bobu‘);
  Query OK, 1 row affected (0.00 sec)
 
  mysql> show databases;
   +--------------------+
   | Database           |
   +--------------------+
   | information_schema |
   | hi_db              |
   | mysql              |
   | test               |
   +--------------------+
   4 rows in set (0.00 sec)
 
从服务器Mysql查询:
 
   mysql> show databases;
 
   +--------------------+
   | Database           |
   +--------------------+
   | information_schema |
   | hi_db              |          //I‘M here,大家看到了吧
   | mysql              |
   | test               |
   +--------------------+
   4 rows in set (0.00 sec)
 
   mysql> use hi_db
   Database changed
   mysql> select * from hi_tb;    //可以看到在主服务器上新增的具体数据
   +------+------+
   | id   | name |
   +------+------+
   |    1 | bobu |
   +------+------+
   1 row in set (0.00 sec)
  
 
10、完成:
    编写一shell脚本,用nagios监控slave的两个“yes”,如发现只有一个或零个“yes”,就表明主从有问题了,发短信警报吧。

mysql主从配置(转载),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。