mysql笔记:25,微信小程序的事件处理


运行MySQL容器并从中拷贝MySQL配置文件到本地备用,配置文件目录:`/etc/my.cnf`。



语法:

docker cp :/path/to/file /path/on/host

示例:temp_mysql8是本次启动的MySQL容器名称

docker cp temp_mysql8:/etc/my.cnf .


拷贝配置文件到已创建的配置文件目录:



cp my.cnf mysqlconf/master/my.cnf
cp my.cnf mysqlconf/slave1/my.cnf
cp my.cnf mysqlconf/slave2/my.cnf

tree -L 3
.
├── README.md
├── mysqlconf
│ ├── master
│ │ └── my.cnf
│ ├── slave1
│ │ └── my.cnf
│ └── slave2
│ └── my.cnf
└── mysqldata
├── master
├── slave1
└── slave2


## 二、基于日志点的主从复制


### 1. 配置Master服务器


#### 1.1 修改配置文件


编辑主服务器的MySQL配置文件`mysqlconf/master/my.cnf`,添加下列配置项:



[mysqld]
server-id=1
log-bin=mysql-binlog
binlog-do-db=your-database-name
default_authentication_plugin=mysql_native_password


#### 1.2. 在docker中启动Master节点



docker run -P --name mysqlmaster
-v $PWD/mysqldata/master:/var/lib/mysql
-v $PWD/mysqlconf/master/my.cnf:/etc/my.cnf
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:8


参数含义说明:


* `-P`:本机与容器的端口映射
* `--name`:为容器指定一个名称`mysqlmaster`
* `MYSQL_ROOT_PASSWORD`:指定MySQL中root用户的密码为123456
* `-d`:指定容器运行方式为后台运行  
 容器启动后登录MySQL并检查配置是否生效:



$> docker exec -it mysqlmaster bash

mysql -uroot -p123456

mysql> show variables like ‘server_id’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| server_id | 1 |
±--------------±------+



> 
> 如果登录MySQL提示错误:`Access denied for user 'root'@'localhost' (using password: YES)`,可能是你密码输入错误,也可能是加密插件导致的。MySQL8使用的默认加密插件是 caching\_sha2\_password,而MySQL5.6使用的是mysql\_native\_password,当你在控制台使用明文密码登录的时候走的是mysql\_native\_password加密,而数据库记录的是caching\_sha2\_password加密后的密码。两个密文不一致导致登录失败。解决办法是在配置文件中指定加密插件:`default_authentication_plugin=mysql_native_password`
> 
> 
> 


#### 1.3. 创建用户并授权


在Master上创建一个复制用户并授权



mysql> CREATE USER ‘repl’@‘%’ identified by ‘password’;
mysql> GRANT REPLICATION SLAVE ON . TO ‘repl’@‘%’;

刷新用户权限信息

mysql> FLUSH PRIVILEGES;

查看Master状态

mysql> SHOW MASTER STATUS;
±-----------------±---------±-------------±-----------------±------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
±-----------------±---------±-------------±-----------------±------------------+
| mysql-bin.000003 | 1531 | | | |
±-----------------±---------±-------------±-----------------±------------------+


执行结果中显示二进制日志文件为mysql-bin.000003,日志位置为1531。Slave就是从这个日志点开始进行复制的。


### 2. 配置Slave1服务器


#### 2.1. 修改配置


编辑从服务器slave1的MySQL配置文件`mysqlconf/slave1/my.cnf`,添加下列配置项:



[mysqld]
server-id=2
relay-log=mysql-relay-bin
replicate-do-db=your_database_name


#### 2.2. 启动服务



docker run -P --name mysqlslave1
-v $PWD/mysqldata/slave1:/var/lib/mysql
-v $PWD/mysqlconf/slave1/my.cnf:/etc/my.cnf
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:8


容器启动后登录MySQL并检查配置是否生效:



$> docker exec -it mysqlslave1 bash

mysql -uroot -p123456

mysql> show variables like ‘server_id’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| server_id | 2 |
±--------------±------+


#### 2.3. 指定Master


指定Master的信息,包括IP、用户、密码、日志文件和位置。



mysql> change master to master_host=‘172.17.0.2’, master_user=‘repl’, master_password=‘123456’, master_log_file=‘mysql-bin.000003’, master_log_pos=828



> 
> 可以使用`docker inspect mysqlmaster | grep IPAddress`查看Master节点的IP信息
> 
> 
> 


#### 2.4. 开始复制



mysql> start slave;

mysql> show slave status \G;

Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes


最关键的是这两项信息:


* Slave\_IO\_Running:
* Slave\_SQL\_Running:


### 3. 配置Slave2服务器


#### 3.1. 修改配置


编辑从服务器slave2的MySQL配置文件`mysqlconf/slave2/my.cnf`,添加下列配置项:



[mysqld]
server-id=3
relay-log=mysql-relay-bin
replicate-do-db=your_database_name


#### 3.2. 启动服务



docker run -P --name mysqlslave2
-v $PWD/mysqldata/slave2:/var/lib/mysql
-v $PWD/mysqlconf/slave2/my.cnf:/etc/my.cnf
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:8


容器启动后登录MySQL并检查配置是否生效:



$> docker exec -it mysqlslave2 bash

mysql -uroot -p123456

mysql> show variables like ‘server_id’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| server_id | 3 |
±--------------±------+


#### 3.3. 指定Master


指定Master的信息,包括IP、用户、密码、日志文件和位置。



mysql> change master to master_host=‘172.17.0.2’, master_user=‘repl’, master_password=‘123456’, master_log_file=‘mysql-bin.000003’, master_log_pos=828


#### 3.4. 开始复制



mysql> start slave;

mysql> show slave status \G;

Slave_IO_Running: Yes
Slave_SQL_Running: Yes


最关键的是这两项信息:


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/4dbc05129502b87db05917fc85ca8cc4.png)
![img](https://img-blog.csdnimg.cn/img_convert/decf6f853f4f89289a7d6074f15f4044.png)
![img](https://img-blog.csdnimg.cn/img_convert/52ad4e2f3143b837da536d91ad32f836.png)
![img](https://img-blog.csdnimg.cn/img_convert/9b5a0894663c2c02db40974de3d17b30.png)
![img](https://img-blog.csdnimg.cn/img_convert/f80f260669cd947417c47912adb59e00.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
![img](https://img-blog.csdnimg.cn/img_convert/0536a8614bde5f3abc21ef147ee7144d.jpeg)

![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)



最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
![img](https://img-blog.csdnimg.cn/img_convert/7756febaeec5603993b6a5b68c28ce28.jpeg)

n/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中...(img-ne3rlQIK-1712535159145)]

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值