500字范文,内容丰富有趣,生活中的好帮手!
500字范文 > MySQL 复制简要描述及示例

MySQL 复制简要描述及示例

时间:2021-03-07 19:33:20

相关推荐

MySQL 复制简要描述及示例

数据库|mysql教程

MySQL复制,MySQL 复制简要描述及示例,数据库,Or

数据库-mysql教程

华为源码系统,vscode gvim,ubuntu 打印机驱动,tomcat msm,怎么打开.sqlite,网站服务器可以更换吗,下拉时间插件,前端隐藏元素框架,爬虫 淘宝评论,株洲php招聘,seo数据优化,应用市场网站系统 开源版,编网页的免费软件下载,destoon模板 后台页面,登录成功提示页面模板,设备维修管理系统源码,smo算法matlab程序lzw

主从复制技术在MySQL中被广泛使用,主要用于同步一台服务器上的数据至多台从服务器,可以用于实现负载均衡,高可用和故障切换,以

v电影app程序源码,ubuntu 开启a卡,tomcat启用但网页无法访问,导购平台爬虫软件,php自动贩卖机功能要求,南京seo厂家lzw

php万能采集网站源码,Ubuntu安装苹果驱动,链家爬虫node,php liunx,权威的seolzw

主从复制技术在MySQL中被广泛使用,,主要用于同步一台服务器上的数据至多台从服务器,可以用于实现负载均衡,高可用和故障切换,以及提供备份等等。MySQL支持多种不同的复制技术,诸如单向,半同步异步复制等以及不同级别的复制,诸如数据库级别,表级,跨库同步等等。本文简要描述了一个基本的主从复制并给出示例。

1、复制的基本原理(步骤)

a、在主库上把数据更改记录的二进制日志(binary log)

b、从库上的I/O线程连接到主库并请求发送其二进制日志文件(主库上的binlog dump线程将二进制日志内容发送到从库)

c、从库上的I/O线程读取主服务发送的二进制内容并将其拷贝到中继日志

d、从库上的SQL线程读取中继日志并执行日志中包含的更新

2、为配置文件添加复制项

# 本文的演示基于同一服务器上的多实例环境,其中3406端口用作主库,而3506用作从库。

# 关于多实例的部署可参考:

# MySQL多实例配置

# 3406与3506为都为新装且含缺省库等,所以本文演示中未涉及先迁移主库数据到备库步骤

a、主库上的配置文件

# more f

[mysqld]

socket = /tmp/mysql3406.sock

port = 3406

pid-file = /data/inst3406/data3406/my3406.pid

user = mysql

log-error=/data/inst3406/data3406/inst3406.err

datadir=/data/inst3406/data3406

basedir=/app/soft/mysql5

#### for master items ####

server-id=3406

log_bin=/data/inst3406/log/bin/inst3406bin

innodb_flush_log_at_trx_commit=1

sync_binlog=1

b、从库上的配置文件

# more f

[mysqld]

socket = /tmp/mysql3506.sock# Author : Leshami

port = 3506 # Blog :

pid-file = /data/inst3506/data3506/my3506.pid

user = mysql

log-error=/data/inst3506/data3506/inst3506.err

datadir=/data/inst3506/data3506

basedir=/app/soft/mysql5

#### for slave items ####

server-id=3506

relay_log=/data/inst3506/log/relay/relay-bin

read_only=1

3、创建复制账号

#启动端口为3406的实例并添加账户

[mysql@app ~]$ mysqld_safe –defaults-file=/data/inst3406/data3406/f &

[mysql@app ~]$ mysql -P3406 #登陆到3406

master@localhost[(none)]> show variables like ‘server_id’;

+—————+——-+

| Variable_name | Value |

+—————+——-+

| server_id| 3406 |

+—————+——-+

#创建用于复制的账户

master@localhost[(none)]> grant replication slave,replication client on *.*

-> to repl@’192.168.1.177′ identified by ‘repl’;

#初始化主库日志文件,生成环境慎用reset

master@localhost[(none)]> reset master;

Query OK, 0 rows affected (0.01 sec)

#查看主库的状态,日志初始化至000001,

master@localhost[(none)]> show master status,Position为120

+——————–+———-+————–+——————+——————-+

| File| Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+——————–+———-+————–+——————+——————-+

| inst3406bin.000001 |120 | | | |

+——————–+———-+————–+——————+——————-+

4、配置主从同步

#启动端口为3506的实例

[mysql@app ~]$ mysqld_safe –defaults-file=/data/inst3506/data3506/f &

[mysql@app ~]$ msyql -P3506

slave@localhost[(none)]> show variables like ‘server_id’;

+—————+——-+

| Variable_name | Value |

+—————+——-+

| server_id| 3506 |

+—————+——-+

1 row in set (0.00 sec)

#为从库添加指向主库的相关配置信息,该命令会生成及修改备库上的master.info及relay-log.info文件

slave@localhost[(none)]> CHANGE MASTER TO MASTER_HOST=’192.168.1.177′,

-> MASTER_USER=’repl’,

-> MASTER_PASSWORD=’repl’,

-> MASTER_PORT=3406,

-> MASTER_LOG_FILE=’inst3406bin.000001′,

-> MASTER_LOG_POS=0;

Query OK, 0 rows affected, 2 warnings (0.04 sec)

#出现了2个warnings,查看一下

slave@localhost[(none)]> show warnings \G

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

Level: Note

Code: 1759

Message: Sending passwords in plain text without SSL/TLS is extremely insecure.

*************************** 2. row ***************************

Level: Note

Code: 1760

Message: Storing MySQL user name or password information in the master.info repository is not secure and is therefore not recommended.

Please see the MySQL Manual for more about this issue and possible alternatives.

2 rows in set (0.00 sec)

#此时查看从库的状态信息

slave@localhost[(none)]> show slave status \G

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

Slave_IO_State:

Master_Host: 192.168.1.177

Master_User: repl

Master_Port: 3406

Connect_Retry: 60

Master_Log_File: inst3406bin.000001

Read_Master_Log_Pos: 4

Relay_Log_File: relay-bin.000001

Relay_Log_Pos: 4

Relay_Master_Log_File: inst3406bin.000001

Slave_IO_Running: No#IO线程没有运行

Slave_SQL_Running: No#SQL线程没有运行

………………….

Master_Info_File: /data/inst3506/data3506/master.info

slave@localhost[(none)]> start slave; #启动slave

Query OK, 0 rows affected (0.01 sec)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。