文档章节

mysql主从配置

wangjie142
 wangjie142
发布于 2015/04/29 13:09
字数 746
阅读 12
收藏 0

MySQL从库上有一个IO线程负责从主库取binlog到写到本地。另外有一个SQL线程负责执行这些本地日志,实现命令重放;

一、环境

        主机:

                   master操作系统:centos 5.3

                   IP192.168.1.222

                   MySQL版本:5.0.77

         从机:          

     slave操作系统:centos 5.3

                   IP192.168.1.220

                   MySQL版本:5.0.77

 

 

 

 

 

 

二、创建数据库

分别登录master机和slave机的mysqlmysql –u root –p

创建数据库:create database repl;

 

 

 

 

 

 

三、master机和slave机的相关配置

1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下

[mysqld]配置段添加如下字段

server-id=1

log-bin=log

binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库

binlog-ignore-db=mysql //被忽略的数据库

 

master机上为slave机添加一同步帐号
grant replication slave on *.* to 'repl'@'192.1681.220' identified by '123456';

 

重启master机的mysql服务:service mysqld restart

 

show master status 命令看日志情况

mysql>show master status;

+-----------------+------------+-------------------+-----------------------+

| File                | Position     | Binlog_Do_DB   | Binlog_Ignore_DB |

+-----------------+------------+-------------------+-----------------------+

|    log.000003 |           98  | repl                 | mysql                    |

+-----------------+------------+-------------------+-----------------------+

1 row in set (0.00 sec)

 

 

 

 

 

 

 

2、修改slave机中mysql配置文件

同样在[mysqld]字段下添加如下内容

server-id=2

master-host=192.168.1.222

master-user=repl

master-password=123456

master-port=3306

master-connect-retry=60
# replicate-ignore-db=mysql 忽略的数据库
# master-connect-retry=60 如果从服务器发现主服务器断掉,重新连接的时间差(秒)

#replicate-do-db=repl //同步的数据库(需要备份的数据库名),不写本行 表示 同步所有数据库

 

然后重启slave机的mysql

 

slave机中进入mysql

mysql>start slave;

mysql>show slave status\G;
如果Slave_IO_RunningSlave_SQL_Running状态为Yes则表明设置成功。

 

 

 

 

 

 

四、出现的问题

当我在执行start slave这条命令时,系统提示

ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO

执行show slave status;又提示Empty set (0.00 sec),想不通问题在哪里

 

后来发现,原来slave已经默认开启,要先关闭再开启

执行 slave stop;

再执行

change master to master_host='192.168.1.222',master_user='repl',master_password='123456', master_log_file='log.000003' ,master_log_pos=98;

然后执行 slave start;

这时 再执行show slave status\G

显示如下:

*************************** 1. row ***************************

             Slave_IO_State: Waiting for master to send event

                Master_Host: 192.168.1.222

                Master_User: repl

                Master_Port: 3306

              Connect_Retry: 60

            Master_Log_File: log.000003

        Read_Master_Log_Pos: 98

            Relay_Log_File: mysqld-relay-bin.000002

              Relay_Log_Pos: 229

      Relay_Master_Log_File: log.000003

           Slave_IO_Running: Yes

          Slave_SQL_Running: 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: 98

            Relay_Log_Space: 229

            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

1 row in set (0.00 sec)

显示红色那两行,说明配置成功。

 

 

 

 

 

 

五、测试主从服务器是否能同步

在主服务器上面新建一个表,必须在repl数据下

mysql> use repl

Database changed

mysql> create table test(id int,name char(10));

Query OK, 0 rows affected (0.00 sec)

 

mysql> insert into test values(1,'zaq');

Query OK, 1 row affected (0.00 sec)

 

mysql> insert into test values(1,'xsw');

Query OK, 1 row affected (0.00 sec)

 

mysql> select * from test;

+------+------+

| id    | name |

+-------+------+

|    1    | zaq   |

|    1    | xsw |

+-------+------+

2 rows in set (0.00 sec)

 

 

 

在从服务器查看是否同步过来

mysql> use repl;

Database changed

mysql> select * from test;

+------+------+

| id    | name |

+------+------+

|     1 | zaq   |

|     1 | xsw |

+------+------+

2 rows in set (0.00 sec)

 

 

 

说明已经配置成功


本文转载自:http://www.cnblogs.com/lben/archive/2012/11/19/2777632.html

共有 人打赏支持
wangjie142
粉丝 5
博文 12
码字总数 7731
作品 0
无锡
程序员
私信 提问
MySQL5.7.21开启Gtid配置主从复制

mysql5.7.21开启Gtid配置主从复制 一、环境: mysql 主库master:10.0.0.101 172.168.1.101 mysql 从库slave:10.0.0.103 172.168.1.103 mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz 二进制......

wjw555
07/09
0
0
Linux学习总结(五十一)mysql 主从配置

一 mysql 主从介绍 mysql 主从又叫replication ,AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的。 MySQL主从是基于binlog的,主上须开...

jiaoshou0416
05/21
0
0
linux系统如何为mysql设置主从服务器?

如何在linux环境下设置mysql主从服务器呢?设置mysql主从服务器,听上去很高大上的样子,其它实现起来也是不难的。一般设置主从服务器,主要是为了数据安全,即使主服务器出现问题,还可以从...

hero2019
07/06
0
0
Mysql主从复制

Mysql主从复制 背景: Mysql可以实现主从复制,在学习了Mysql主从复制后,将一些如何主从复制过程记录下来,供以后复习使用。 准备: 在做Mysql的主从复制前需要做一些准备工作: 1、同步时间...

657188918
2017/11/13
0
0
MySQL主从介绍&准备工作&配置主&配置从&测试主从同步

17.1 MySQL主从介绍 MySQL主从的概念 • MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 • MySQL主从是...

影夜Linux
07/06
0
1

没有更多内容

加载失败,请刷新页面

加载更多

NEO区块链-DAPP开发直通车-第零篇

什么是DAPP DAPP 是以太坊发明的词汇 Decentralized Application. 目前基于区块链技术开发的应用程序广泛的接受使用了这一名称。 NEL将为开发DAPP提供全面的服务 什么是NEL NEL是 “NewEcon...

NEO-FANS
13分钟前
0
0
可视化软件VisIt在Ubuntu18.04上的安装

可视化软件VisIt在Ubuntu18.04上的安装 参考文档及使用说明 1.下载 在官网下载页面下载合适版本的安装文件,Ubuntu有专用的 https://wci.llnl.gov/simulation/computer-codes/visit/executa...

佚文
18分钟前
0
0
GROUP BY GROUPING SETS

GROUPING SETS 子句是 SELECT 语句的 GROUP BY 子句的扩展。通过 GROUPING SETS 子句,您可采用多种方式对结果分组,而不必使用多个 SELECT 语句来实现这一目的。这就意味着,能够减少响应时...

hblt-j
28分钟前
2
0
selenium之表格的定位

真的勇士, 敢于直面惨淡的warning、 敢于正视淋漓的error 目录 被测试网页的HTML代码 1.遍历表格所有单元格 2.定位表格中的某个元素 3.定位表格中的子元素 总结 浏览器网页常常会包含各类表...

程序猿拿Q
33分钟前
1
0
adb命令启动展讯平台工厂模式

adb命令启动展讯工厂模式: adb shell am start com.sprd.engineermode/com.sprd.engineermode.EngineerModeActivity 其它系统应用启动命令: 其他的一些应用启动命令,如下所示: calendar...

东街小霸王
34分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部