惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Announcements
Recent Announcements
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
量子位
aimingoo的专栏
aimingoo的专栏
V
V2EX
Vercel News
Vercel News
B
Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
TaoSecurity Blog
TaoSecurity Blog
N
News and Events Feed by Topic
D
DataBreaches.Net
Blog — PlanetScale
Blog — PlanetScale
S
Secure Thoughts
U
Unit 42
博客园 - 叶小钗
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News | PayPal Newsroom
Help Net Security
Help Net Security
S
Security Affairs
Microsoft Security Blog
Microsoft Security Blog
W
WeLiveSecurity
博客园 - Franky
Forbes - Security
Forbes - Security
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Schneier on Security
Schneier on Security
I
InfoQ
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
Webroot Blog
Webroot Blog
AWS News Blog
AWS News Blog
Last Week in AI
Last Week in AI
Security Archives - TechRepublic
Security Archives - TechRepublic
C
CERT Recently Published Vulnerability Notes
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
L
Lohrmann on Cybersecurity
SecWiki News
SecWiki News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
J
Java Code Geeks

博客园 - 皮皮虾的blog

visual studio 2022 安装net旧版本(net framework4.0和4.5) RxJS中高阶映射操作符的全面讲解:switchMap, mergeMap, concatMap (and exhaustMap) 从0到1: Angular + .NET Core 前后端分离项目Compass的开发过程 rxjs学习 - 2 rxjs学习 Asynchronous programming with async and await Angular 表单介绍 TypeScript null undefine判断 TypeScript 常见方法 VMware虚拟机如何设置CentOS 7 磁盘扩容? MySQL 5.7 配置 MySQL 主从复制相关 Mysql 常用命令 MySQL 5.7 Sleep 连接太多的处理方式 MySQL 5.7 CPU高的定位方法 VS2019 设置tab插入空格不好使的解决方法 VMware安装CentOS7后配置静态IP MySQL explain,type分析(转) - 2 MySQL explain,Extra分析(转) - 1
CentOS 7 MySQL 5.7 主从设置
皮皮虾的blog · 2021-10-30 · via 博客园 - 皮皮虾的blog

条件:

1:主:Master  192.168.0.107  在配置文件中设置server-id=107

2:从:Slave    192.168.0.127  在配置文件中设置server-id=127

1:先检查主从MySQL服务器的UUID是否重复。通过下面的方法获取mysql的data文件夹

mysql> show variables like 'datadir';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| datadir | /usr/local/mysql/data/ |
+---------------+------------------------+

退出mysql,nano /usr/local/mysql/data/auto.cnf 查看uuid。

2:设置主库配置文件。

server-id=107 #设置主服务器的ID(不能和别的服务器重复,建议使用ip的最后一段)
#innodb_flush_log_at_trx_commit=2 可以配置的值:0/1/2; 0、效率最高,最不安全;1、最安全,但是效率最低;2、安全和效率平衡的取舍,在服务器系统挂掉的情况下会丢失数据;
#sync_binlog=1 值可设置 1、500、1000;可自己根据测试性能配置
log-bin=mysql-bin #binlog日志文件名
binlog-ignore-db=mysql # 表示不同步mysql库
binlog-ignore-db=information_schema # 表示不同步information_schema库
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#binlog-do-db=xxxx 这个表示只同步某个库 (如果没有此项,表示同步所有的库)

3:在主服务器上创建用于主从同步的账户:

#登录MySQL 
$ mysql -u root -p    
mysql> create user 'sync'@'%' identified by 'Sync@0000'; # 5.7要求密码必须含有大小写英文,符号和数字
mysql> grant replication slave on *.* to 'sync'@'%' identified by 'Sync@0000'; #赋予主从同步权限
mysql> flush privileges;

4:重启MySQL,使my.cnf 配置生效;查看主库状态:

mysql> show master status;
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| mysql-bin.000002 | 154 | | mysql,information_schema,performance_schema,sys | |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
1 row in set (0.00 sec)

二:配置从库

1:打开mysql配置文件,加入如下配置

server-id=127

#log-bin=mysql-bin #从库提高性能可以不开bin-log日志

replicate-ignore-db=mysql #配置不需要复制的库mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
#replicate_do_db=python #标记出需要同步的数据库名,在多从配置时可以按需配置
#innodb_flush_log_at_trx_commit=2 # 可以配置的值:0/1/2; 0、效率最高,最不安全;1、最安全,但是效率最低;2、安全和效率平衡的取舍,在服务器系统挂掉的情况下会丢失数据;
#sync_binlog=1000 # 每进行n次事务提交之后,MySQL将binlog_cache中的数据强制写入磁盘。
#slave_parallel_workers=4 #根据实际情况决定开启多少个线程用于主从复制
#slave_parallel_type=logical_clock #基于组提交的并行复制方式
master_info_repository=TABLE
relay_log_info_repository=TABLE
#relay_log_recovery=ON

2: 重启数据库,进入数据库,设置master信息。

$ service mysqld restart #重启MySQL
$ mysql -u root -p #登录mysql
mysql> stop slave; #关闭从库
mysql> change master to master_host='192.168.0.107', master_user='sync' ,master_password='Sync@0000', master_log_file='mysql-bin.000002' ,master_log_pos=154; #配置主库信息
mysql> start slave; #开启从库
mysql> show slave status \G;

Slave_IO_Running,Slave_SQL_Running 都为Yes的时候表示配置成功

打开Navicat,连接2个数据库,在主库中添加库,添加表,添加数据,看到从库已经同步过来。