开发者社区> 科技小能手> 正文

Mysql Master-Slave配置实验说明文档

简介:
+关注继续查看

一、主机信息

mysql1(master) 192.168.100.11 rhel5.4_x86 mysql-5.6.12.tar.gz

mysql2(slave) 192.168.100.12 rhel5.4_x86 mysql-5.6.12.tar.gz


二、mysql1(master)主机

1.停止mysql服务

2.配置文件

安装mysql软件自动生成配置文件my.cnf

[root@mysql1 ~]# cd /usr/local/mysql/
[root@mysql1 mysql]# vi my.cnf

文件末尾添加

# read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

######### Add Start ########
server-id=1 ## 服务器编号
log_bin=mysql-bin.log ##日志名称
read-only=0  ## 数据库可以读写
binlog-do-db=test  ## 需要复制的数据库
binlog-ignore-db=mysql ## 排除不需要复制的数据库

######### Add End ########

3.启动mysql服务

4.建立复制和启动slave服务用户

mysql> GRANT REPLICATION SLAVE ON *.* TO 'rep'@'%' IDENTIFIED BY '123456'  WITH GRANT OPTION;
Query OK, 0 rows affected (0.06 sec)

5.刷新系统表

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

6.显示master状态

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      414 | test         | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql>

三、mysql2(slave)主机

1.停止mysql服务

2.配置文件
安装mysql软件自动生成配置文件my.cnf
[root@mysql1 ~]# cd /usr/local/mysql/
[root@mysql1 mysql]# vi my.cnf

文件末尾添加

# read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

######### Add Start ########
server-id=2
######### Add End ########


3.启动mysql服务


4.执行同步SQL语句

mysql> change master to master_host='192.168.100.11',master_user='rep',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=414;
Query OK, 0 rows affected, 2 warnings (0.13 sec)

5.启动同步服务

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

6.显示同步服务状态

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.100.11
                  Master_User: rep
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 414
               Relay_Log_File: mysql2-relay-bin.000002
                Relay_Log_Pos: 283
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

1 row in set (0.00 sec)

ERROR: 
No query specified
mysql>

红色字体为需要检查项

三、验证主从线程


1.mysql1(master)主机

slave进程启动后,执行以下命令,查看master主机日志发送线程

mysql> show processlist;
+----+------+----------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+
| Id | User | Host                 | db   | Command     | Time | State                                                                 | Info             |
+----+------+----------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+
|  1 | root | localhost            | test | Query       |    0 | init                                                                  | show processlist |
|  2 | rep  | 192.168.100.12:48981 | NULL | Binlog Dump |  718 | Master has sent all binlog to slave; waiting for binlog to be updated | NULL             |
+----+------+----------------------+------+-------------+------+-----------------------------------------------------------------------+------------------+
2 rows in set (0.00 sec)

mysql>


2.mysql2(slave)主机

检查同步进程,接收master bin-log和应用传递过来的replay-log两个相关线程

mysql> show processlist;
+----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+
| Id | User        | Host      | db   | Command | Time | State                                                                       | Info             |
+----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+
|  1 | root        | localhost | NULL | Query   |    0 | init                                                                        | show processlist |
|  2 | system user |           | NULL | Connect |  549 | Waiting for master to send event                                            | NULL             |
|  3 | system user |           | NULL | Connect |  549 | Slave has read all relay log; waiting for the slave I/O thread to update it | NULL             |
+----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+
3 rows in set (0.00 sec)

mysql>


四、执行master-slave复制验证

1.mysql1(master)主机

mysql> use test
Database changed
mysql> show tables;
Empty set (0.00 sec)


mysql> CREATE TABLE tasks(Id INT primary key AUTO_INCREMENT,
    -> Title VARCHAR(20), 
    -> Done BOOL,
    -> Description VARCHAR(200)
    -> );
Query OK, 0 rows affected (0.29 sec)

mysql> CREATE TABLE users(Id int primary key AUTO_INCREMENT,
    -> UserName VARCHAR(20) not null, 
    -> Password VARCHAR(20) not null, 
    -> Role VARCHAR(20),
    -> Description VARCHAR(200)
    -> );
Query OK, 0 rows affected (0.02 sec)

mysql> insert into tasks values(1,"Buy groceries",0,"Milk, Cheese, Pizza, Fruit, Tylenol");
insert into tasks values(2,"Learn Python",0,"Need to find a good Python tutorial on the web");
insert into tasks values(3,"Flask",0,"Login,WTF,Mail");
Query OK, 1 row affected (0.09 sec)

mysql> insert into tasks values(2,"Learn Python",0,"Need to find a good Python tutorial on the web");
Query OK, 1 row affected (0.01 sec)

mysql> insert into tasks values(3,"Flask",0,"Login,WTF,Mail");
Query OK, 1 row affected (0.00 sec)

mysql> insert into tasks values(4,"MySQL",0,"InoDB");
Query OK, 1 row affected (0.00 sec)

mysql> 
mysql> insert into users values(1,"admin","admin","administrator","administrator");
Query OK, 1 row affected (0.00 sec)

mysql> insert into users values(2,"user","123456","User","User");
Query OK, 1 row affected (0.01 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tasks          |
| users          |
+----------------+
2 rows in set (0.00 sec)

mysql> select * from tasks;
+----+---------------+------+------------------------------------------------+
| Id | Title         | Done | Description                                    |
+----+---------------+------+------------------------------------------------+
|  1 | Buy groceries |    0 | Milk, Cheese, Pizza, Fruit, Tylenol            |
|  2 | Learn Python  |    0 | Need to find a good Python tutorial on the web |
|  3 | Flask         |    0 | Login,WTF,Mail                                 |
|  4 | MySQL         |    0 | InoDB                                          |
+----+---------------+------+------------------------------------------------+
4 rows in set (0.03 sec)

mysql> select * from users;
+----+----------+----------+---------------+---------------+
| Id | UserName | Password | Role          | Description   |
+----+----------+----------+---------------+---------------+
|  1 | admin    | admin    | administrator | administrator |
|  2 | user     | 123456   | User          | User          |
+----+----------+----------+---------------+---------------+
2 rows in set (0.00 sec)

mysql> 

2.mysql2(slave)主机

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tasks          |
| users          |
+----------------+
2 rows in set (0.00 sec)

mysql> select * from tasks;
+----+---------------+------+------------------------------------------------+
| Id | Title         | Done | Description                                    |
+----+---------------+------+------------------------------------------------+
|  1 | Buy groceries |    0 | Milk, Cheese, Pizza, Fruit, Tylenol            |
|  2 | Learn Python  |    0 | Need to find a good Python tutorial on the web |
|  3 | Flask         |    0 | Login,WTF,Mail                                 |
|  4 | MySQL         |    0 | InoDB                                          |
+----+---------------+------+------------------------------------------------+
4 rows in set (0.06 sec)

mysql> select * from users;
+----+----------+----------+---------------+---------------+
| Id | UserName | Password | Role          | Description   |
+----+----------+----------+---------------+---------------+
|  1 | admin    | admin    | administrator | administrator |
|  2 | user     | 123456   | User          | User          |
+----+----------+----------+---------------+---------------+
2 rows in set (0.00 sec)

mysql>

 

五.附加信息

1.增加mysql root的远程访问

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root'  WITH GRANT OPTION;

flush privileges; (刷新系统表)

2.远程访问

mysql -h 远程主机IP(名称) -u root -P 3306(端口) -p

 



本文转自 pgmia 51CTO博客,原文链接:http://blog.51cto.com/heyiyi/1231678

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
来写一个 Python 说明文档生成器吧
本文讲的是来写一个 Python 说明文档生成器吧,我一开始学习 Python 的时候,我最喜欢的一件事就是坐在编译器前,使用内置的 help 函数检查类和方法,然后决定我接下来要怎么写。这个函数会引入一个对象并检查其内部成员,生成说明并且输出类似帮助文档的内容,帮助你了解该对象的使用方法。
1509 0
如何选择阿里云服务器操作系统?阿里云操作系统说明文档(Linux+Window)
阿里云云服务器ECS的操作系统有什么区别,阿里云linux服务器和windows服务器有何不同呢?
273 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
16701 0
关于ovirt主机即做存储又兼虚拟机主机的官方文档说明
"集群可以运行虚拟机或 Red Hat Gluster Storage 服务器,但只能是二者之一。一个集群不能同时作为虚拟机和存储主机使用。"
825 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
30396 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23639 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14328 0
23704
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载