MySQL8.1.0版本正式发布,一起尝鲜新特性

news2024/11/28 12:46:29

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.畅谈新版本
    • 📣 2.8.1.0版本部署
      • ✨ 2.1 环境准备
      • ✨ 2.2 配置yum安装依赖
      • ✨ 2.3 用户及目录创建
      • ✨ 2.4 创建用户及组
      • ✨ 2.5 解压缩包
      • ✨ 2.6 环境变量配置
      • ✨ 2.7 创建参数文件
      • ✨ 2.8 数据库初始化
      • ✨ 2.9 启动Mysql
      • ✨ 2.10 登陆MySQL 8.1
    • 📣 3.新特性
      • ✨ 3.1 密码参数
      • ✨ 3.2 错误日志加强
      • ✨ 3.3 二进制日志
      • ✨ 3.4 审计日志
      • ✨ 3.5 组复制增强
      • ✨ 3.6 废弃特性

前言

2023年7月18日晚,MySQL官方网站正式发布了MySQL8.1.0与8.0.34版本.

📣 1.畅谈新版本

Oracle 每季度发布一次 MySQL 更新,所以自己也一直留意的官网的动态,2023年7月18日晚,MySQL官方网站正式发布了MySQL8.1.0与8.0.34版本,
8.1的应该来说是8.0版本的bug修复,这是 MySQL 变更发版模型后的第一个创新版本 (Innovation Release)。MySQL 8.0.34+ 将成为仅错误修复版本(红色)。MySQL大约每2年发布一个新的长期支持版本(如下图蓝色),一个例外是8.x LTS版本,它将在 8.0 的 EOL 之前发生,按照此规则来说,下一个(创新)版本将增加主版本号,如果 MySQL 8.4.0 是 8.x LTS 版本,那么 MySQL 9.0 将是下一个创新版本。

官方下载文档:https://dev.mysql.com/downloads/mysql/
官方指南:https://dev.mysql.com/doc/refman/8.1/en/

在这里插入图片描述

📣 2.8.1.0版本部署

官方的下载渠道已开放,https://dev.mysql.com/downloads/mysql/,本次是基于RHEL8系统二进制安装方式的安装。
RPM包下载选择Linux - Generic,适配对应的操作系统GCC版本。

在这里插入图片描述

✨ 2.1 环境准备

1.操作系统
[root@jeames ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.1 (Ootpa)
2.关闭防火墙#
查看防火墙是状态
[root@jeames ~]# systemctl status firewalld
关闭防火墙
[root@jeames ~]# systemctl stop firewalld
取消开机自启动
[root@jeames ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
3.selinux关闭
修改参数文件/etc/sysconfig/selinux中SELINUX的值为disabled
[root@jeames ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
修改完成后需要重启服务器才生效

✨ 2.2 配置yum安装依赖

1.创建挂载路径
mkdir -p /mnt/cdrom

2.挂载系统镜像光盘到指定目录
#因为光盘的格式通常是iso9660,意思是/dev/sr0挂载在/mnt/cdrom目录上
mount -t iso9660 /dev/sr0 /mnt/cdrom
mount: /mnt/cdrom: WARNING: device write-protected, mounted read-only.

3.修改yum源配置文件
##编辑rhel8-local.repo文件,加入以下内容
[root@jeames ~]# cd /etc/yum.repos.d
[root@jeames yum.repos.d]# rm -rf *
[root@jeames yum.repos.d]# vi rhel8-local.repo

[localREPO]
name=localhost8
baseurl=file:///mnt/cdrom/BaseOS
enable=1
gpgcheck=0

[localREPO_APP]
name=localhost8_app
baseurl=file:///mnt/cdrom/AppStream
enable=1
gpgcheck=0

4.配置好后重建本地缓存
yum clean all 
yum makecache 
yum repolist

5.安装MySQL 8.1版本二进制所需的依赖包
yum -y install libncurses*
yum -y install libaio
yum -y install perl perl-devel
yum -y install autoconf
yum -y install numactl.x86_64

##通过rpm -qa可以查询是否将依赖包安装成功
[root@jeames yum.repos.d]# rpm -qa libaio perl perl-devel autoconf \ numactl.x86_64 libncurses

✨ 2.3 用户及目录创建

注:可以部署多个实例,通过端口区分root 用户操作:
mkdir -p /mysql/data/mysql3306
mkdir -p /mysql/app/
mkdir -p /mysql/conf/
mkdir -p /mysql/data/mysql3306/pid/
mkdir -p /mysql/data/mysql3306/socket/
mkdir -p /mysql/data/mysql3306/log/
mkdir -p /mysql/data/mysql3306/binlog/
mkdir -p /mysql/data/mysql3306/errlog
mkdir -p /mysql/data/mysql3306/relaylog/
mkdir -p /mysql/data/mysql3306/slowlog/
mkdir -p /mysql/data/mysql3306/tmp/

✨ 2.4 创建用户及组

[root@jeames ~]# groupadd mysql
[root@jeames ~]# useradd -g mysql mysql
[root@jeames ~]# chown -R mysql:mysql /mysql
[root@jeames ~]# passwd mysql
Changing password for user mysql.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@jeames ~]# cat /etc/group | grep mysql
mysql❌1001:
[root@jeames ~]# cat /etc/passwd | grep mysql
mysql❌1001:1001::/home/mysql:/bin/bash

在这里插入图片描述

✨ 2.5 解压缩包

[root@jeames ~]# cd /opt
[root@jeames opt]# cp mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz /mysql/app
[root@jeames opt]# chown -R mysql:mysql /mysql

mysql用户操作
[root@jeames ~]# su - mysql
md5 值验证,保证下载到的软件包无破损无木马
[mysql@jeames ~]$ cd /mysql/app
[mysql@jeames app]$ ll
total 457200
-rw-r--r-- 1 mysql mysql 468170248 Jul 19 15:29 mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz
[mysql@jeames app]$ md5sum mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz
5285185fad2b4352c878380a741e29f0  mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz

解压软件包并重命名
[mysql@jeames app]$ tar xvf mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz
[mysql@jeames app]$ mv mysql-8.1.0-linux-glibc2.28-x86_64 mysql8.1.0

[mysql@jeames app]$ ll
total 457200
drwxrwxr-x 9 mysql mysql       129 Jul 19 15:31 mysql8.1.0
-rw-r--r-- 1 mysql mysql 468170248 Jul 19 15:29 mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz

✨ 2.6 环境变量配置

##mysql用户下操作
cat >> /home/mysql/.bash_profile << “EOF”
MYSQL_HOME=/mysql/app/mysql8.1.0
PATH= P A T H : PATH: PATH:HOME/.local/bin: H O M E / b i n : HOME/bin: HOME/bin:MYSQL_HOME/bin
EOF
环境变量生效
[mysql@jeames app]$ source ~/.bash_profile
[mysql@jeames app]$ which mysql
/mysql/app/mysql8.1.0/bin/mysql

✨ 2.7 创建参数文件

由于是二进制文件安装,数据库参数文件需要自己配置

cat >> /mysql/conf/my3306.cnf << "EOF"
[mysqld]
server_id = 8103306
default-storage-engine= InnoDB
basedir=/mysql/app/mysql8.1.0
datadir=/mysql/data/mysql3306/data/
socket=/mysql/data/mysql3306/socket/mysql.sock
log-error=/mysql/data/mysql3306/log/mysqld.log
pid-file=/mysql/data/mysql3306/pid/mysqld.pid
port=3306
default-time_zone='+8:00'
default_authentication_plugin=mysql_native_password # 加此参数可远程登陆
transaction_isolation=READ-COMMITTED
max_connections=1500
back_log=500
wait_timeout=1800
max_user_connections=800
innodb_buffer_pool_size=1024M
innodb_log_file_size=512M
innodb_log_buffer_size=40M
slow_query_log=ON
long_query_time=5
# log settings #
slow_query_log = ON
slow_query_log_file = /mysql/data/mysql3306/slowlog/slow3306.log
log_error = /mysql/data/mysql3306/errlog/err3306.log
log_error_verbosity = 3
log_bin = /mysql/data/mysql3306/binlog/mysql_bin
log_bin_index = /mysql/data/mysql3306/binlog/mysql_binlog.index
general_log_file = /data/mysql/mysql3306/generallog/general.log
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
expire_logs_days = 90
binlog_expire_logs_seconds = 2592000      #30d
long_query_time = 2
min_examined_row_limit = 100
log_throttle_queries_not_using_indexes = 1000
innodb_flush_log_at_trx_commit=1

EOF

✨ 2.8 数据库初始化

mysql用户操作:
mysqld --defaults-file=/mysql/conf/my3306.cnf --initialize --user=mysql --basedir=/mysql/app/mysql8.1.0 --datadir=/mysql/data/mysql3306/data/
注意:以上同一行执行

✨ 2.9 启动Mysql

[mysql@jeames app]$ mysqld_safe --defaults-file=/mysql/conf/my3306.cnf --user=mysql &

在这里插入图片描述

✨ 2.10 登陆MySQL 8.1

第一次登录 MySQL 时,需要到错误日志下找初始化密码,使用 socket 加密码登录进去后,无法查询任何东西,提示先要修改 root 密码.
[mysql@jeames ~]$ cat /mysql/data/mysql3306/errlog/err3306.log | grep password
[mysql@jeames ~]$ mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

[mysql@jeames ~]$ mysql -uroot -p  -P 3306 -S /mysql/data/mysql3306/socket/mysql.sock
mysql> status
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

##修改密码
mysql> alter user root@'localhost' identified by 'root';

mysql> status
--------------
mysql  Ver 8.1.0 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:          8
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.1.0
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /mysql/data/mysql3306/socket/mysql.sock
Binary data as:         Hexadecimal
Uptime:                 3 min 46 sec

Threads: 2  Questions: 8  Slow queries: 0  Opens: 398  Flush tables: 3  Open tables: 36  Queries per second avg: 0.035

##远程登陆设置
mysql> create user root@'%' identified with mysql_native_password by 'root';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on *.* to root@'%' with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,plugin from mysql.user;  
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| root             | %         | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
5 rows in set (0.01 sec)

📣 3.新特性

✨ 3.1 密码参数

增加了一个新的系统参数,用于限制用户改密码时的最少替换字符数。
validate_password.changed_characters_percentage,该值是百分比。

在这里插入图片描述

✨ 3.2 错误日志加强

随着 MySQL 服务器、插件和组件的启动和关闭消息的增加,关闭过程的日志记录得到了增强。这些消息现在也被记录为关闭连接。
这些附加功能应该有助于故障排除和调试问题,特别是在服务器需要很长时间才能关闭的情况下。

##此版本引入了一系列新的消息,这些消息会在MySQL错误日志中记录,包括以下内容:
MySQLserver的启动和关闭日志消息,包括使用--initialize参数启动时的日志。
插件关闭阶段的启动和结束日志消息。
组件关闭阶段的启动和结束日志消息。
连接关闭阶段的开始和结束日志消息。
在强制断开连接后仍然活动的线程数量和ID的日志消息,这些线程可能会导致等待情况。

mysql> show variables like 'log_error';
+---------------+------------------------------------------+
| Variable_name | Value                                    |
+---------------+------------------------------------------+
| log_error     | /mysql/data/mysql3306/errlog/err3306.log |
+---------------+------------------------------------------+

✨ 3.3 二进制日志

libmysqlclient.so 共享库中添加了几个函数,使开发人员能够访问 MySQL server的二进制日志:
mysql_binlog_open()、mysql_binlog_fetch() 和 mysql_binlog_close()

✨ 3.4 审计日志

审计日志可以指定库database存储JSON过滤表。
新增Audit_log_direct_writes系统变量,用于计算直接写入审计文件的次数。
MySQL企业审计使用临时缓冲区保存写入日志文件的查询事件数据。
然而,由于server可能无法为长查询分配额外内存,审计插件已经进行了优化,在JSON格式记录日志时,不再使用临时缓冲区。
MySQL企业审计现在支持使用调度程序组件来配置和执行定期任务,以刷新内存缓存。
mysql -u root -D database_name -p < audit_log_filter_linux_install.sql

✨ 3.5 组复制增强

添加了一些特定于组复制插件的状态变量,这些变量可以改进对网络不稳定的诊断和故障排除,
为每个组成员 (group member) 提供有关网络使用情况、控制消息和数据消息的统计信息。
作为这项工作的一部分,Performance Schema 的 replication_group_communication_information 表中添加了一个新列 MEMBER_FAILURE_SUSPICIONS_COUNT 。该列的内容被格式化为一个 JSON 数组,其键是组成员 ID,其值是该组成员被认为是可疑的次数。

✨ 3.6 废弃特性

以下功能在 MySQL 8.1 中已弃用,并且可能会在未来的系列中删除。如果显示替代方案,则应更新应用程序以使用它们。
1.mysqlpump
由于 MySQL 提供了具有相同或额外功能的 mysqldump 和 MySQL Shell 等其他方法来执行数据库转储和备份,
mysqlpump 已经变得多余,现在已弃用。现在调用这个程序会产生一个警告。您应该记住,mysqlpump 可能会在 MySQL 的未来版本中被删除。

2.binlog_format
binlog_format 服务器系统变量现已弃用,并且可能会在 MySQL 的未来版本中删除。 与此变量关联的功能(更改二进制日志记录格式)也已被弃用。

此更改的含义是,当删除 binlog_format 时,MySQL 服务器将仅支持基于行的二进制日志记录(MySQL 8.0 中的默认设置)。 因此,新安装应仅使用基于行 (Row) 的二进制日志记录,而使用基于语句或混合日志记录格式的现有安装应迁移到基于行的格式。

系统变量 log_bin_trust_function_creators 和 log_statements_unsafe_for_binlog 仅在基于语句的日志记录上下文中有用,现在也已弃用,因此也将在 MySQL 的未来版本中删除。

现在设置或选择刚才提到的任何变量的值都会引发警告。 (WL#13966,WL#15669)

3.mysql_native_password
mysql_native_password 身份验证插件现已弃用,并可能在 MySQL 的未来版本中删除。
如果帐户尝试使用 mysql_native_password 作为身份验证方法进行身份验证,
CREATE USER、ALTER USER 和 SET PASSWORD 操作现在会在服务器错误日志中插入弃用警告。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/769371.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DT人体骨骼绑定

中心点 joint31.rotateXnurbsCircle4.rotateX*0.4; 选择控制器 控制器打组 骨骼打组 手柄也变小了 没变 打组 放组中心点 没做点约束的 正确了 IK和FK 可以移动 开启IK 关闭IK 创建控制器 在开启IK FK 旋转没反应 打组&#xff0c;设置中心点 隐藏不用的属性

Spring Boot进阶(55):SpringBoot之集成MongoDB及实战使用 | 超级详细,建议收藏

1. 前言&#x1f525; 前几期我们有介绍Mysql、Redis等数据库介绍及实战演示&#xff0c;对基本的数据存放有很好的共性&#xff0c;但是如果说遇到大面积的xml、Json、bson等格式文档数据存放&#xff0c;以上数据库并非是最优选择&#xff0c;最优选择是Mongodb数据库。 那么…

【rk3568】uboot gpio寄存器配置

假设GPIO4_C6 一、查看RM手册GPIO4C6关键字搜索 其中31-16位对应低16位是否可以写&#xff0c;&#xff08;为1就有写的权限&#xff0c;如gpio4C6 中10-8将31-16中对应位写1&#xff09; 二、查看GPIO4的基地址 三、找到GPIO4的基地址 四、GPIO4C6的地址就是sys_CRFoffset(0…

Python 线程调用

简介&#xff1a; Python 线程可以通过主线程&#xff0c;调用线程来执行其他命令&#xff0c; 为Python提供更方便的使用。 并发线程测试 命令调用方式 import threading,time 定义每个线程要运行的函数 def run(n): print(“task”,n) time.sleep(1) 生成一个线程实例ta…

【kafka调试】用命令行查看kafka是否发出了命令

server 10.10.90.210:9092 topic stream_manager_center_capture_file 摄像头id&#xff1a; 17283ed2a1ac685f9fd5ef9f0de04792 cd /usr/loca/kafka bin/kafka-console-consumer.sh --bootstrap-server 10.10.90.210:9092 --topic stream_manager_center_capture_file 然后添…

ArcGIS、ENVI、InVEST、FRAGSTATS等多技术提升数据分析能力

专题一、空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 专题二、ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化&#xff1a;地图符号与…

搭建gitblit

这个就是资源搭建包不是很好找 搭建一台属于自己的Git服务器_51CTO博客_git搭建本地服务器 使用wget下载安装包 wget https://miracle-1306318206.cos.ap-shanghai.myqcloud.com/public/gitblit-1.9.1.tar.gz 如果资源找不到可以使用如下链接下载&#xff1a;链接: https:/…

企业UPS不稳定?不用怕,这个技巧简单且容易!

随着技术的不断发展&#xff0c;食品行业中的UPS监控系统变得更加智能化和便捷&#xff0c;使食品生产过程更加安全可靠。 UPS监控在食品行业中扮演着关键的角色&#xff0c;确保电力供应的稳定性对于食品生产和储存过程至关重要。 客户案例 安徽某食品制造公司是一家大型食品…

shell脚本中一个隐晦的bug

1.逻辑表达式if [ ! EXP PATTERN ]不能判断EXP结果为空的情形&#xff1b; 2.而逻辑表达式if [[ EXP ! PATTERN ]可以判断EXP结果为空的情形&#xff1b;

新版本特性抢先看 | DolphinDB V2.00.10V1.30.22 即将发布

DolphinDB V2.00.10&V1.30.22 新版本即将与大家见面&#xff01; 新版本包含了 VS Code Debug、插件在线下载、TopN 系列函数、SQL标准兼容性改进等各种更新&#xff0c;以及TSDB 引擎、流计算、多种计算函数性能优化。 在此前的新版本中&#xff0c;我们也为大家提供了异…

初探C++ C++入门

目录 经典开头 — C的历史 作用域运算符 using的用法 命名空间 - namespace 命名空间的基本使用 特殊的命名空间 - 无名命名空间 全部展开和部分展开 std — C所有的标准库都在std命名空间内 省缺值 - 默认参数 占位参数 内联函数 - inline 函数重载 函数重载的用…

基于卷积神经网络的人脸笑容识别和性别识别

文章目录 前言数据集准备数据标注数据集格式转换AI Studio平台介绍及使用数据集准备创建工程模型配置模型训练 模型转化及优化模型减支模型转化 验证测试总结分析参考文献 前言 环境&#xff1a; python 3.7.9 本次项目的内容是基于卷积神经网络的人脸笑容识别和性别识别。 笑…

音频功放芯片推荐,功放特点及选型注意事项

音频放大器是用于推动扬声器发声&#xff0c;从而重现声音的功放装置&#xff0c;凡是发声的电子产品中都用到它&#xff1b;有助于增加从输入设备馈送的音频波的幅度&#xff0c;然后传输从毫瓦到千瓦的更高幅度的音频波。 目前市面上使用的电子设备都安装了放大器系统&#…

油画|艺术|三峡,诗情画意《彩云间》

《彩云间》尺寸&#xff1a;150x130cm陈可之.2006年绘清晨&#xff0c;山顶上的云霞流向天际&#xff0c;山峦与流云&#xff0c;融为一体。霞光&#xff0c;给山峰着上了五光十色&#xff0c;迷幻的光影&#xff0c;仿佛给大自然披上了一件五彩的轻纱。时空飘渺&#xff0c;给…

Spring Cloud Alibaba【OpenFeign实现服务降级、Dubbo实现服务生产者、 Dubbo消费者调用接口 】(三)

目录 服务调用_OpenFeign实现服务降级 服务调用_Dubbo实现服务生产者 服务调用_Dubbo消费者调用接口 服务调用_OpenFeign实现服务降级 引入降级依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba…

基于 Nginx 实现一个灰度上线系统

目录 前言 原理 实现 项目版本准备 用 nginx 实现灰度 跑一个 nginx 服务 修改下配置文件 重新跑个 nginx 容器 实现流量控制的功能 流量染色 总结 前言 灰度系统可以将流量分成多份&#xff0c;一部分走新版本代码&#xff0c;一部分走老版本代码&#xff0c;从而降…

Java虚拟机——字节码指令简介

Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字&#xff08;称为操作码&#xff09; 以及 跟随其后的零至多个代表此操作所需的参数&#xff08;称为操作数&#xff09;构成。大多数指令都不包括操作数&#xff0c;只有一个操作码&#xff0c;指令参数都存放…

ACL论文-系列2

文章目录 关系抽取——OD-RTE: A One-Stage Object Detection Framework for Relational Triple Extraction目标函数1——object 四个顶点概率目标函数2——span的概率总目标函数 Revisiting Relation Extraction in the era of Large Language ModelsCan NLI Provide Proper I…

TCP 协议简记 01 - TCP 包格式 连接管理

最近对 TCP 协议做了一次系统性的学习&#xff0c;种巨复杂的知识&#xff0c;只有系统性的总结归纳并且不断的实践才能够真正的掌握。后续会分为几篇文章来对 TCP 协议进行系统性的总结&#xff0c;帮助自己更好的理解 TCP 协议&#xff0c;也希望能够帮助到和我一样被 TCP 弄…

STM32MP157驱动开发——LED驱动(设备树)

文章目录 设备树驱动模型如何使用设备树写驱动程序设备树节点要与 platform_driver 能匹配设备树节点指定资源&#xff0c;platform_driver 获得资源 LED 模板驱动程序的改造&#xff1a;设备树驱动模型修改设备树&#xff0c;添加 led 设备节点修改 platform_driver 的源码编译…