RedHat7.9安装mysql8.0.32 ↝ 二进制方式
RedHat7.9安装mysql8.0.32 ↝ 二进制方式
- 一、rpm方式安装
- 1、检查是否安装了mariadb
- 2、下载mysqlmysql8.0.32
- 3、上传解压
- 4、创建安装目录,拷贝解压后的文件至安装目录/usr/local/mysql8.0/
- 5、创建相关目录,开始安装
- 6、创建mysql组和用户
- 7、更改安装目录归属
- 8、初始化MySQL
- 9、配置MySQL
- 10、启动MySQL
- 11、配置环境变量
- 12、修改root密码
- 13、安装、开启密码校验插件
- 14、修改密码规则(根据情况设置)
- 15、创建一个用户用于远程登录
- 16、设置mysql服务开机自启
- 二、总结—温故知新
一、rpm方式安装
1、检查是否安装了mariadb
检查linux中是否安装了mariadb,先卸载mariadb, 避免与安装mysql发生冲突。
[root-server ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root-server ~]#
卸载清除: rpm -e 文件名 或者 yum -y remove 文件名
[root-server ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
[root-server ~]#
[root-server ~]# rpm -qa|grep mariadb
或者使用:
yum -y remove mariadb-libs-5.5.68-1.el7.x86_64
2、下载mysqlmysql8.0.32
官网地址:https://downloads.mysql.com/archives/community/

3、上传解压
[root-server ~]# ll
total 982092
-rw-r--r--. 1 root root 1005660160 Jul 29 14:05 mysql-8.0.32-linux-glibc2.12-x86_64.tar
[root-server ~]# tar -zxvf mysql-8.0.32-linux-glibc2.12-x86_64.tar
[root-server ~]# ll
total 1964176
-rw-r--r--. 1 root root 1005660160 Jul 29 14:05 mysql-8.0.32-linux-glibc2.12-x86_64.tar
-rw-r--r--. 1 7155 31415 610315332 Dec 17 2022 mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
-rw-r--r--. 1 7155 31415 17127660 Dec 17 2022 mysql-router-8.0.32-linux-glibc2.12-x86_64.tar.xz
-rw-r--r--. 1 7155 31415 378207988 Dec 17 2022 mysql-test-8.0.32-linux-glibc2.12-x86_64.tar.xz###继续解压tar.xz文件
[root-server ~]# tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

4、创建安装目录,拷贝解压后的文件至安装目录/usr/local/mysql8.0/
[root-server ~]# mkdir /usr/local/mysql8.0
[root-server ~]# mv mysql-8.0.32-linux-glibc2.12-x86_64/* /usr/local/mysql8.0/[root@db-server ~]# cd /usr/local/mysql8.0/
[root@db-server mysql8.0]# ll
total 296
drwxr-xr-x. 2 7161 31415 4096 Dec 17 2022 bin
drwxr-xr-x. 2 7161 31415 56 Dec 17 2022 docs
drwxr-xr-x. 3 7161 31415 4096 Dec 17 2022 include
drwxr-xr-x. 6 7161 31415 201 Dec 17 2022 lib
-rw-r--r--. 1 7161 31415 283374 Dec 16 2022 LICENSE
drwxr-xr-x. 4 7161 31415 30 Dec 17 2022 man
-rw-r--r--. 1 7161 31415 666 Dec 16 2022 README
drwxr-xr-x. 28 7161 31415 4096 Dec 17 2022 share
drwxr-xr-x. 2 7161 31415 77 Dec 17 2022 support-files
[root@db-server mysql8.0]#
5、创建相关目录,开始安装
可以根据自己安装规划进行创建,初始化MySQL时指定你创建的有关目录即可。
[root-server mysql8.0]# mkdir /usr/local/mysql8.0/data
[root-server mysql8.0]#
[root-server mysql8.0]# mkdir /usr/local/mysql8.0/log
[root-server mysql8.0]#
[root-server mysql8.0]# touch /usr/local/mysql8.0/log/mysqld.log
[root-server mysql8.0]#
[root-server mysql8.0]#

6、创建mysql组和用户
[root-server mysql8.0]# groupadd mysql
[root-server mysql8.0]#
[root-server mysql8.0]# useradd -r -g mysql mysql
[root-server mysql8.0]#
7、更改安装目录归属
chown -R mysql /usr/local/mysql8.0/
chgrp -R mysql /usr/local/mysql8.0/或者使用:
chown -R mysql:mysql /usr/local/mysql8.0
[root-server mysql8.0]# chown -R mysql:mysql /usr/local/mysql8.0
[root-server mysql8.0]# ll
total 296
drwxr-xr-x. 2 mysql mysql 4096 Dec 17 2022 bin
drwxr-xr-x. 2 mysql mysql 6 Jul 29 14:18 data
drwxr-xr-x. 2 mysql mysql 56 Dec 17 2022 docs
drwxr-xr-x. 3 mysql mysql 4096 Dec 17 2022 include
drwxr-xr-x. 6 mysql mysql 201 Dec 17 2022 lib
-rw-r--r--. 1 mysql mysql 283374 Dec 16 2022 LICENSE
drwxr-xr-x. 2 mysql mysql 24 Jul 29 14:18 log
drwxr-xr-x. 4 mysql mysql 30 Dec 17 2022 man
-rw-r--r--. 1 mysql mysql 666 Dec 16 2022 README
drwxr-xr-x. 28 mysql mysql 4096 Dec 17 2022 share
drwxr-xr-x. 2 mysql mysql 77 Dec 17 2022 support-files
[root-server mysql8.0]#

8、初始化MySQL
[root-server mysql8.0]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql8.0/ --datadir=/usr/local/mysql8.0/data --initialize2023-07-29T06:26:23.438791Z 0 [System] [MY-013169] [Server] /usr/local/mysql8.0/bin/mysqld (mysqld 8.0.32) initializing of server in progress as process 1858
2023-07-29T06:26:23.446856Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-07-29T06:26:23.935723Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-07-29T06:26:24.856531Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root: Rr8mh_%ysuqZ
[root-server mysql8.0]#

9、配置MySQL
解决---mysql初始化后未找到配置文件:
使用指令./mysql --help | grep my.cnf 查看配置文件的读取顺序,一般默认优先读取/etc/my.cnf,若/etc/my.cnf文件不存在则需要新建该文件。
#查询相关配置文件读取顺序
[root-server mysql8.0]# ./bin/mysql --help | grep my.cnf order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
[root-server mysql8.0]# #直接在/etc下新建my.cnf文件,写入配置内容[mysqld]
datadir=/usr/local/mysql8.0/data
basedir=/usr/local/mysql8.0
socket=/tmp/mysqld.sock
user=mysql
port=3306
character-set-server=utf8[mysqld_safe]
log-error=/usr/local/mysql8.0/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid[client]
socket=/tmp/mysqld.sock

10、启动MySQL
[root-server ~]# cd /usr/local/mysql8.0/
[root-server mysql8.0]# ll
total 300
drwxr-xr-x. 2 mysql mysql 4096 Dec 17 2022 bin
drwxr-xr-x. 7 mysql mysql 4096 Jul 29 14:26 data
drwxr-xr-x. 2 mysql mysql 56 Dec 17 2022 docs
drwxr-xr-x. 3 mysql mysql 4096 Dec 17 2022 include
drwxr-xr-x. 6 mysql mysql 201 Dec 17 2022 lib
-rw-r--r--. 1 mysql mysql 283374 Dec 16 2022 LICENSE
drwxr-xr-x. 2 mysql mysql 24 Jul 29 14:18 log
drwxr-xr-x. 4 mysql mysql 30 Dec 17 2022 man
-rw-r--r--. 1 mysql mysql 666 Dec 16 2022 README
drwxr-xr-x. 28 mysql mysql 4096 Dec 17 2022 share
drwxr-xr-x. 2 mysql mysql 77 Dec 17 2022 support-files
[root-server mysql8.0]# cd support-files/
[root-server support-files]# ll
total 20
-rwxr-xr-x. 1 mysql mysql 1061 Dec 16 2022 mysqld_multi.server
-rw-r--r--. 1 mysql mysql 2027 Dec 17 2022 mysql-log-rotate
-rwxr-xr-x. 1 mysql mysql 10576 Dec 17 2022 mysql.server
[root-server support-files]# sh mysql.server start
Starting MySQL. SUCCESS!
[root-server support-files]#
查看MySQL服务是否启动成功:
[root-server support-files]# sh mysql.server statusSUCCESS! MySQL running (2604)
[root-server support-files]#
11、配置环境变量
[root-server support-files]# vi /etc/profile添加内容:export PATH=$PATH:/usr/local/mysql/bin

使配置生效:
[root-server support-files]# source /etc/profile
12、修改root密码
使用步骤8、初始化MySQL时产生的临时密码登录:Rr8mh_%ysuqZ
[root-server ~]# mysql -u root -p

修改mysql数据库密码报错:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement.
解决:先刷新权限表
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)mysql>alter user 'root'@'localhost' identified with mysql_native_password by 'Zyl##123456';
Query OK, 0 rows affected (0.01 sec)
授权root远程登录会报错:原因:因为 MySQL8.0 以上将创建账户和赋予权限分开了,需要用两个语句创建账号,赋予远程权限;root用户禁止远程登录了。
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'Zyl##123456' WITH GRANT OPTION' at line 1
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'Zyl##123456' WITH GRANT OPTION;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'Zyl##123456' WITH GRANT OPTION' at line 1
mysql>
13、安装、开启密码校验插件
未安装前、返回空集合:
mysql> SHOW VARIABLES LIKE 'validate_password%';
Empty set (0.00 sec)mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';
Empty set (0.00 sec)
mysql> install plugin validate_password soname 'validate_password.so';
Query OK, 0 rows affected, 1 warning (0.01 sec)mysql>
安装密码校验插件之后:
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | ON |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.00 sec)mysql>
14、修改密码规则(根据情况设置)
###有关参数详解
1、validate_password_policy 这个参数用于控制validate_password的验证策略 0-->low 1-->MEDIUM 2-->strong。2、validate_password_length密码长度的最小值(这个值最小要是4)。3、validate_password_number_count 密码中数字的最小个数。4、validate_password_mixed_case_count大小写的最小个数。5、validate_password_special_char_count 特殊字符的最小个数。6、validate_password_dictionary_file 字典文件
本次环境设置:
mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.32 |
+-----------+
1 row in set (0.00 sec)mysql> ##验证策略强
mysql> set global validate_password_policy=strong;
Query OK, 0 rows affected (0.00 sec)##密码长度的最小值8
mysql> set global validate_password_length=8;
Query OK, 0 rows affected (0.00 sec)##大小写的最小个数1
mysql> set global validate_password_mixed_case_count=1;
Query OK, 0 rows affected (0.00 sec)##密码中数字的最小个数1
mysql> set global validate_password_number_count=1;
Query OK, 0 rows affected (0.00 sec)##特殊字符的最小个数1
mysql> set global validate_password_special_char_count=1;
Query OK, 0 rows affected (0.00 sec)mysql>
密码规则检查:
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | ON |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | STRONG |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.00 sec)mysql>
15、创建一个用户用于远程登录
MySQL8.0 以上将创建账户和赋予权限分开了,需要用两个语句创建账号,赋予远程权限;
###1、创建zyl用户用于远程登录
create user 'zyl'@'%' identified by 'Zyl##2023';##2、授权远程登录
#仅授权某一个ip访问
grant all privileges on *.* to 'zyl'@'191.168.181.10' with grant option;
# 允许所有 ip 远程访问(不建议设置),这里测试环境,允许所有ip访问
grant all privileges on *.* to 'zyl'@'%' with grant option;###3、刷新(刷新后才生效)
FLUSH PRIVILEGES;

查看监听端口:
mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
1 row in set (0.00 sec)mysql>
远程访问测试:

16、设置mysql服务开机自启
将/usr/local/mysql8.0/support-files/mysql.server 拷贝到/etc/init.d/mysqld目录。
[root-server ~]# cp /usr/local/mysql8.0/support-files/mysql.server /etc/init.d/mysqld
[root-server ~]# systemctl enable mysqld

##启动
[root-server ~]# systemctl start mysqld
##状态查看
[root-server ~]# systemctl status mysqld
##停止
[root-server ~]# systemctl stop mysqld
##设置开机自启
[root-server ~]# systemctl enable mysqld
##取消开机自启
[root-server ~]# systemctl disable mysqld

二、总结—温故知新
1、mysql8.0 详细安装步骤
2、环境变量配置
3、root用户密码修改
4、远程登录账户创建、授权
5、服务开机自启等设置
相关文章:
RedHat7.9安装mysql8.0.32 ↝ 二进制方式
RedHat7.9安装mysql8.0.32 ↝ 二进制方式 一、rpm方式安装1、检查是否安装了mariadb2、下载mysqlmysql8.0.323、上传解压4、创建安装目录,拷贝解压后的文件至安装目录/usr/local/mysql8.0/5、创建相关目录,开始安装6、创建mysql组和用户7、更改安装目录归…...
数据库面试题题
题干: -- 子查询 CREATE TABLE emp( empno INT, ename VARCHAR(50), job VARCHAR(50), mgr INT, hiredate DATE, sal DECIMAL(7,2), comm DECIMAL(7,2), deptno INT ) ; INSE…...
瑞吉外卖项目 基于spring Boot+mybatis-plus开发 超详细笔记,有源码链接
源码地址:https://gitee.com/programmer-xiao-kai/reggie_tack_out 前置知识: Java基础知识Java Web vueSpring BootSSMMaven 软件开发流程 角色分工 项目经理:对整个项目负责,任务分配、把控进度产品经理:进行需求调研,输出需…...
Redis Cluster 在Spring中遇到的问题
Redis集群配置可能会在运行时更改。可以添加新节点,可以更改特定插槽的主节点。还有可能因为master宕机或网络抖动等原因,引起了主从切换。 无法感知集群槽位变化 SpringBoot2.x 开始默认使用的 Redis 客户端由 Jedis 变成了 Lettuce,但是当…...
linux远程桌面管理工具 xrdp
Xrdp 是一个微软远程桌面协议(RDP)的开源实现,它允许你通过图形界面控制远程系统。通过 RDP,你可以登录远程机器,并且创建一个真实的桌面会话,就像你登录本地机器一样。 如何在Ubuntu 20.04 上安装 Xrdp 服…...
硬件-8-操作系统的历史
操作系统的最强入门科普(Unix/Linux篇) 操作系统的发展史(DOS/Windows篇) Mac操作系统进化史 手机操作系统的沉浮往事(上) 手机操作系统的沉浮往事(下) 1 操作系统种类 我们天天都…...
self.register_buffer()中的值发生变化
PyTorch中定义模型时,有时候会遇到self.register_buffer(name, Tensor)的操作,该方法的作用是定义一组参数,该组参数的特别之处在于:模型训练时不会更新(即调用 optimizer.step() 后该组参数不会变化,只可人…...
[Tools: Pycharm] Bug合集
1. Debug mode:Pycharm不显示变量值(Unable to display frame variables);在python console中交互不输出值 选择Gevent compatible:File > Settings > Build, Execution, Deployment > Python Debugger >…...
【JAVASE】循环结构
⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈Java 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 循环 1. 循环结构1.1 while 循环1.2 bre…...
NoSQL之Redis配置使用
目录 一、关系数据库与非关系型数据库 1.1.关系型数据库的概述 1.2关系型数据库的优缺点 1.2.1优点 1.2.2缺点 1.3.非关系型数据库的概述 二.关系数据库与非关系型数据库的区别 2.1数据存储方式不同 2.2扩展方式不同 2.3对事务性的支持不同 2.4非关系型数据库产生背景 2…...
Ansible最佳实践之Playbook使用过滤器处理网络地址
写在前面 使用过滤器检查、验证和操作包含网络信息的变量理解不足小伙伴帮忙指正 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去…...
测试常见前端bug
目录 协作 测试方法 标签:标签 内容/ref/ 判断 arr&&arr.length 交互 样式不生效:devtools查找,编译前的标签,运行时不一定存在 可交互的需要提示 hover样式 没有交互逻辑,就不要设置交互 无法交互…...
【Python数据分析】Python常用内置函数(一)
🎉欢迎来到Python专栏~Python常用内置函数(一) ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:Python学习专栏 文章作者技术和水平有限,如果文…...
OpenCV图像处理-图像分割-MeanShift
MeanShift 1. 基本概念2.代码示例 1. 基本概念 MeanShift严格说来并不是用来对图像进行分割的,而是在色彩层面的平滑滤波。它会中和色彩分布相近的颜色,平滑色彩细节,侵蚀掉面积较小的的颜色区域,它以图像上任意一点P为圆心&…...
【Rust 基础篇】Rust Trait 实现:灵活的接口抽象
导言 Rust是一种以安全性和高效性著称的系统级编程语言,其设计哲学是在不损失性能的前提下,保障代码的内存安全和线程安全。为了实现这一目标,Rust引入了"所有权系统"、"借用检查器"等特性,有效地避免了常见…...
【嵌入式Linux项目】基于Linux的全志H616开发板智能家居项目(语音控制、人脸识别、安卓APP和PC端QT客户端远程操控)有视频功能展示
目录 一、功能需求 二、开发环境 1、硬件: 2、软件: 3、引脚分配: 三、关键点 1、设计模式之工厂模式 2、wiringPi库下的相关硬件操作函数调用 3、语音模块的串口通信 4、线程 5、摄像头的实时监控和拍照功能 6、人脸识别 四、编…...
ElasticSearch基础篇-条件查询与映射
ElasticSearch基础篇二 条件查询 GET http://10.192.193.98:9200/shopping/_search?qtitle:小米手机q:代表查询条件 响应结果 {"took": 772,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped…...
大模型部署框架 FastLLM 实现细节解析
0x0. 前言 接着 大模型部署框架 FastLLM 简要解析 这篇文章首先梳理了一下FastLLM的调用链和关键的数据结构,然后解析了 FastLLM 的一些实现细节和CPU/GPU后端实现采用的优化技巧。 0x1. 调用链和数据结构解析 以chatglm-6b的支持为例,函数入口在 htt…...
Flutter ios真机调试连接断开后应用闪退
使用ios真机调试的时候,能正常打开应用,但是当数据线断开连接的时候,应用就会关闭,重新打开就会闪退。 原因是flutter默认在开发过程中使用debug模式编译 只需要将debug选择为release 重新编译就行。...
序列化,反序列化之实例
别怕,我一直陪着你 一.知识1.魔术方法 二.实例1.绕过__wakeup, private2.php://filter, data://, __tostring3. 一.知识 1.魔术方法 __construct() 当一个对象创建时自动调用 __destruct() 当对象被销毁时自动调用 (php绝大多数情况下会自动调用销毁对象) __sleep…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
