MySQL系列—主从复制的配置(传统方式)
来源:互联网 发布:今日赌运测试php 编辑:程序博客网 时间:2024/05/20 13:39
主从复制结构图
主从配置需要注意的地方:
- 主DB server和从DB server数据库的版本一致;
- 主DB server和从DB server数据库数据名称一致;
- 主DB server开启二进制日志,主DB server和从DB server的server_id都必须唯一。
配置过程主要分为两部分:
- 主服务器配置;
- 从服务器配置。
一、主服务器配置
1、修改my.conf文件
在[mysqld]段下添加如下内容
[root@mysql-server-01 /]# vim /etc/my.cnf#需要同步的数据库binlog-do-db=db1#不需要同步的数据库binlog-ignore-db=mysql#启用二进制日志log-bin=mysql-bin#服务器唯一ID,一般取IP最后一段server-id=54
2、启动 mysql 服务
[root@mysql-server-01 /]# service mysqld startStarting MySQL... SUCCESS!
3、建立帐户并授权slave
建立帐户并授权
[root@mysql-server-01 /]# /usr/local/mysql/bin/mysql -uroot -p888888mysql> GRANT FILE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';Query OK, 0 rows affected (0.17 sec)mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'slave'@'%' identified by '123456'; Query OK, 0 rows affected (0.02 sec)
一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确。此处可用具体客户端IP代替,如192.168.145.226,加强安全。
刷新权限
mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.01 sec)
查看mysql现在有哪些用户
mysql> select user,host from mysql.user;+-------+-----------+| user | host |+-------+-----------+| root | % || slave | % || root | 127.0.0.1 || root | ::1 || root | localhost |+-------+-----------+5 rows in set (0.01 sec)
4、查询master的状态
mysql> show master status;+------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000002 | 604 | db1 | mysql | |+------------------+----------+--------------+------------------+-------------------+1 row in set (0.01 sec)
二、从服务器配置
1、修改my.conf文件
在[mysqld]段下添加如下内容
[root@mysql-server-01 /]# vim /etc/my.cnf#服务器唯一ID,一般取IP最后一段server-id=197
2、配置从服务器
[root@mysql-server-02 ~]# service mysqld startStarting MySQL... SUCCESS! [root@mysql-server-02 ~]# /usr/local/mysql//bin/mysql -uroot -p888888mysql> change master to master_host='10.73.150.54',master_port=3306,master_user='slave',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=604;Query OK, 0 rows affected, 2 warnings (0.04 sec)
注意语句中间不要断开,master_port为mysql服务器端口号(无引号),master_user为执行同步操作的数据库账户,“604”无单引号(此处的604就是show master status 中看到的position的值,这里的mysql-bin.000002就是file对应的值)。
3、启动从服务器复制功能
mysql> start slave; Query OK, 0 rows affected (0.05 sec)
4、检查从服务器复制功能状态
mysql> show slave status\G;*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.73.150.54 Master_User: slave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 604 Relay_Log_File: mysql-server-02-relay-bin.000005 Relay_Log_Pos: 283 Relay_Master_Log_File: mysql-bin.000002 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:
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
以上操作过程,从服务器配置完成。
三、测试
1、在主服务器上创建一张表:
CREATE TABLE `test_copy` ( `id` bigint(20) NOT NULL COMMENT '主键', `title` varchar(100) NOT NULL COMMENT '标题', PRIMARY KEY (`id`)) COMMENT='测试主从复制表';
执行后可以看到,从服务器也自动创建了一张表。
2、在主服务器上插入一条数据:
INSERT INTO test_copy(ID,TITLE) VALUES ('536563', '标题');
执行后可以看到,从服务器同样也自动插入了一条数据。
附、配置过程中的问题
1、如果出现以下错误,说说明权限不够
mysql> GRANT FILE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
赋予相应的权限。
2、如果出现此错误:Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
因为是mysql是克隆的系统所以mysql的uuid是一样的,所以需要修改。
[root@mysql-server-02 ~]# rm /data/mysql/data/auto.cnf
此文件在相应的数据库目录下(查看 /etc/my.cnf 中的 datadir)。
解决方法:删除 /data/mysql/data/auto.cnf 文件,重新启动服务。
阅读全文
0 0
- MySQL系列—主从复制的配置(传统方式)
- MySQL系列—主从复制的配置(GTID 方式)
- mysql的主从复制配置
- MySQL的主从复制配置
- 配置mysql的主从复制
- Mysql主从复制两种配置方式
- mysql 主从复制 主从配置
- mysql 主从的配置方式
- MySQL 主从复制的几种方式
- MYSQL主从复制的几种方式
- Mysql 5.7 主从复制的多线程复制配置方式以及读写分离中间件 MaxScale
- Mysql 5.7 主从复制的多线程复制配置方式以及读写分离中间件 MaxScale
- MySQL主从复制配置
- MySQL主从复制配置
- 配置MySQL主从复制
- MySQL主从复制配置
- mysql 主从复制配置
- MySQL主从复制配置
- 软件调试笔记43
- 网络编程预习1
- RecyclerView多条目
- NULL
- [Javascript 高级程序设计]学习心得记录11 js的BOM
- MySQL系列—主从复制的配置(传统方式)
- Scala 与 Java 交互(九)
- springboot自定义http反馈状态码
- cad的font文件夹有字体但是标注显示问号的问题
- Convert ARGB to RGB without losing information
- JQ学习3月没多大长进
- Elasticsearch在UBUNTU下的安装与启动
- 【教程】Excel控件Spire.XLS 教程:在C#,VB.NET中添加Excel边框
- Android WebView与JS交互之客户端监听Web端登录