实现:mysql-5.7.42 到 mysql-8.2.0 的升级(二进制方式)
实现:mysql-5.7.42 到 mysql-8.2.0 的升级(二进制方式)
- 1、操作环境
- 1、查看当前数据库版本
- 2、操作系统版本
- 3、查看 Linux 系统上的 glibc(GNU C 库)版本(**`这里很重要,要下载对应的内核mysql版本`**)
- 2、升级准备
- 1、使用mysql-shell 检查工具检查兼容性
- 3、mysqldump 导出数据文件和备份my.cnf
- 4、备份旧版mysql-5.7.42 安装目录下的文件和my.cnf文件(重要)
- 5、删除旧版安装目录/usr/local/mysql下(bin、docs、includ、lib、share、support-files、LICENSE、README);
- 6、备份mysqld 启动文件
- 7、上传、解压安装包(开始升级)
- 8、复制新版启动文件到/etc/init.d/
- 9、修改mysqld参数
- 10、启动数据库
- 11、升级验证
💖The Begin💖点点关注,收藏不迷路💖 |
注:本文在测试环境升级测试,建议先在测试环境验证。在生产环境下还是先评估下,mysql-5.7.42为二进制方式安装,所以用mysql-8.2.0二进制包升级
1、操作环境
1、查看当前数据库版本
mysql> select@@version;
+-----------+
| @@version |
+-----------+
| 5.7.42 |
+-----------+
1 row in set (0.00 sec)mysql>
2、操作系统版本
[root@zyl-server ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@zyl-server ~]#
[root@zyl-server ~]#
3、查看 Linux 系统上的 glibc(GNU C 库)版本(这里很重要,要下载对应的内核mysql版本
)
ldd --version或者
rpm -q glibc**查看当前系统中的libstdc++版本:**strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
否则后面升级完成后,启动mysql会报错:
报错如下:
错误表明在启动MySQL服务时出现了一些问题。主要的错误信息是关于缺少特定库文件的版本,比如GLIBCXX_3.4.20、CXXABI_1.3.9、CXXABI_1.3.8、GLIBCXX_3.4.21以及GLIBC_2.25
。
这是由于安装的MySQL版本与系统中可用的标准库版本不兼容导致的(所以要对应下载相应的内核版本)。
Mar 20 21:10:55 db-mysql mysqld[7127]: /usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/local/mysql/bin/my_print_defaults)
Mar 20 21:10:55 db-mysql mysqld[7127]: /usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/local/mysql/bin/my_print_defaults)
Mar 20 21:10:55 db-mysql mysqld[7127]: /usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/mysql/bin/my_print_defaults)
Mar 20 21:10:55 db-mysql mysqld[7127]: /usr/local/mysql/bin/my_print_defaults: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /usr/local/mysql/bin/../lib/private/libcrypto.so.3
Mar 20 21:10:55 db-mysql mysqld[7127]: /usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/mysql/bin/my_print_defaults)
Mar 20 21:10:55 db-mysql mysqld[7127]: /usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/local/mysql/bin/my_print_defaults)
Mar 20 21:10:55 db-mysql mysqld[7127]: /usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/local/mysql/bin/my_print_defaults)
Mar 20 21:10:55 db-mysql mysqld[7127]: /usr/local/mysql/bin/my_print_defaults: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/mysql/bin/my_print_defaults)
Mar 20 21:10:55 db-mysql mysqld[7127]: /usr/local/mysql/bin/my_print_defaults: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /usr/local/mysql/bin/../lib/private/libcrypto.so.3
2、升级准备
1、数据备份:在升级之前,务必对当前的 MySQL 5.7 数据库进行完整备份,以防止数据丢失或损坏。确保备份文件的安全存储,并测试其可恢复性。
2、安全性考虑:建议在测试环境中进行升级测试,以模拟真实场景并检测潜在问题。这有助于减少生产环境中的不确定性和风险。
1、使用mysql-shell 检查工具检查兼容性
下载地址:https://downloads.mysql.com/archives/shell/
上传mysql-shell:
安装 mysql-shell rpm 软件包::
rpm -Uvh mysql-shell-8.2.0-1.el7.x86_64.rpm --force --nodeps
查看 mysql-shel安装版本:
mysqlsh --version
检查该版本是否可以升级到MySQL 8.2.0:
mysqlsh -uroot -p -S /tmp/mysqld.sock -e "util.checkForServerUpgrade()"
注意:mysql.sock 地址在/etc/my.cnf 文件中查看。
检查结果报告:
[root@db-mysql ~]# mysqlsh -uroot -p -S /tmp/mysqld.sock -e "util.checkForServerUpgrade()"
Please provide the password for 'root@/tmp%2Fmysqld.sock': ******
Save password for 'root@/tmp%2Fmysqld.sock'? [Y]es/[N]o/Ne[v]er (default No):
The MySQL server at /tmp%2Fmysqld.sock, version 5.7.42 - MySQL Community Server
(GPL), will now be checked for compatibility issues for upgrade to MySQL
8.2.0...1) Usage of old temporal typeNo issues found2) MySQL 8.0 syntax check for routine-like objectsNo issues found3) Usage of db objects with names conflicting with new reserved keywordsNo issues found4) Usage of utf8mb3 charsetWarning: The following objects use the utf8mb3 character set. It isrecommended to convert them to use utf8mb4 instead, for improved Unicodesupport.More information:https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.htmldb_update - schema's default character set: utf8db_update.users.name - column's default character set: utf8db_update.users.email - column's default character set: utf85) Table names in the mysql schema conflicting with new tables in 8.0No issues found6) Partitioned tables using engines with non native partitioningNo issues found7) Foreign key constraint names longer than 64 charactersNo issues found8) Usage of obsolete MAXDB sql_mode flagNo issues found9) Usage of obsolete sql_mode flagsNotice: The following DB objects have obsolete options persisted forsql_mode, which will be cleared during upgrade to 8.0.More information:https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removalsglobal system variable sql_mode - defined using obsolete NO_AUTO_CREATE_USERoption10) ENUM/SET column definitions containing elements longer than 255 charactersNo issues found11) Usage of partitioned tables in shared tablespacesNo issues found12) Circular directory references in tablespace data file pathsNo issues found13) Usage of removed functionsNo issues found14) Usage of removed GROUP BY ASC/DESC syntaxNo issues found15) Removed system variables for error logging to the system log configurationTo run this check requires full path to MySQL server configuration file to be specified at 'configPath' key of options dictionaryMore information:https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-13.html#mysqld-8-0-13-logging16) Removed system variablesTo run this check requires full path to MySQL server configuration file to be specified at 'configPath' key of options dictionaryMore information:https://dev.mysql.com/doc/refman/8.0/en/added-deprecated-removed.html#optvars-removed17) System variables with new default valuesTo run this check requires full path to MySQL server configuration file to be specified at 'configPath' key of options dictionaryMore information:https://mysqlserverteam.com/new-defaults-in-mysql-8-0/18) Zero Date, Datetime, and Timestamp valuesNo issues found19) Schema inconsistencies resulting from file removal or corruptionNo issues found20) Tables recognized by InnoDB that belong to a different engineNo issues found21) Issues reported by 'check table x for upgrade' commandNo issues found22) New default authentication plugin considerationsWarning: The new default authentication plugin 'caching_sha2_password' offersmore secure password hashing than previously used 'mysql_native_password'(and consequent improved client connection authentication). However, it alsohas compatibility implications that may affect existing MySQL installations. If your MySQL installation must serve pre-8.0 clients and you encountercompatibility issues after upgrading, the simplest way to address thoseissues is to reconfigure the server to revert to the previous defaultauthentication plugin (mysql_native_password). For example, use these linesin the server option file:[mysqld]default_authentication_plugin=mysql_native_passwordHowever, the setting should be viewed as temporary, not as a long term orpermanent solution, because it causes new accounts created with the settingin effect to forego the improved authentication security.If you are using replication please take time to understand how theauthentication plugin changes may impact you.More information:https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password-compatibility-issueshttps://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password-replication23) Columns which cannot have default valuesNo issues found24) Check for invalid table names and schema names used in 5.7No issues found25) Check for orphaned routines in 5.7No issues found26) Check for deprecated usage of single dollar signs in object namesNo issues found27) Check for indexes that are too large to work on higher versions of MySQL
Server than 5.7No issues found28) Check for deprecated '.<table>' syntax used in routines.No issues found29) Check for columns that have foreign keys pointing to tables from a diffrent
database engine.No issues foundErrors: 0
Warnings: 4
Notices: 1NOTE: No fatal errors were found that would prevent an upgrade, but some potential issues were detected. Please ensure that the reported issues are not significant before upgrading.
检查结果显示:
没有发现使用旧时态类型的问题
没有发现与MySQL 8.0语法相关的问题
没有发现与数据库对象名称与新保留关键字冲突的问题
发现某些对象使用了utf8mb3字符集,建议转换为utf8mb4以获得更好的Unicode支持
没有发现与mysql模式中的表名冲突的问题
没有发现使用具有非本地分区的引擎的分区表的问题
没有发现外键约束名称超过64个字符的问题
没有发现使用已弃用的MAXDB sql_mode标志的问题
发现一些DB对象已经使用了过时的sql_mode选项
没有发现ENUM/SET列定义中包含超过255个字符的元素的问题
没有发现在共享表空间中使用分区表的问题
没有发现表空间数据文件路径中存在循环目录引用的问题
没有发现使用已删除函数的问题
没有发现已删除的GROUP BY ASC/DESC语法的问题
无法运行需要指定完整MySQL服务器配置文件路径的日志系统变量检查
无法运行需要指定完整MySQL服务器配置文件路径的已删除系统变量检查
无法运行需要指定完整MySQL服务器配置文件路径的新默认值系统变量检查
没有发现零日期、日期时间和时间戳值的问题
没有发现由文件删除或损坏导致的模式不一致的问题
没有发现被InnoDB识别为属于不同引擎的表的问题
没有发现通过'check table x for upgrade'命令报告的问题
发现新的默认身份验证插件引入了兼容性问题,建议在升级后重新配置服务器以恢复到以前的默认身份验证插件
没有发现不能有默认值的列的问题
没有发现在5.7中使用的无效表名和模式名的问题
没有发现在5.7中遗留存储过程的问题
没有发现在对象名称中使用单个美元符号的已弃用用法
没有发现在高于MySQL Server 5.7版本上工作的索引过大的问题
没有发现在例程中使用已弃用'.<table>'语法的问题
没有发现具有外键指向不同数据库引擎的表的列的问题总结:错误:0
警告:4
注意事项:1
总结来说,检查未发现会阻止升级的致命错误,但检测到了一些潜在问题。在升级之前,请确保报告的问题并不重要。
3、mysqldump 导出数据文件和备份my.cnf
[root@db-mysql ~]# mysqldump -hlocalhost -uroot -p --all-databases > /home/db_back_2024.sql
Enter password:
[root@db-mysql ~]# cd /home/
[root@db-mysql home]# ll
total 872
-rw-r--r-- 1 root root 889253 Mar 20 20:25 db_back_2024.sql
drwx------ 2 oracle oinstall 127 Mar 18 05:12 oracle
drwx------. 2 zyl zyl 62 Mar 16 22:24 zyl
[root@db-mysql home]# cp /etc/my.cnf /home/5.7.37_my.cnf[root@zyl-mysql home]#
升级前先停止数据库。
[root@db-mysql home]# systemctl stop mysqld
4、备份旧版mysql-5.7.42 安装目录下的文件和my.cnf文件(重要)
这里的安装目录在/usr/local/mysql
,根据自己实际备份。
cd /usr/local/mkdir mysql-5.7.42_bk##全部备份 mysql目录下的文件
cp -R mysql/* mysql-5.7.42_bk### 或者直接压缩
### tar -zcvf mysql-5.7.42_bk.tar.gz mysql
[root@db-mysql bin]# tar zcf mysql-5.7.42_bk.tar.gz mysql
5、删除旧版安装目录/usr/local/mysql下(bin、docs、includ、lib、share、support-files、LICENSE、README);
cd /usr/local/mysqlrm -rf bin
rm -rf docs
rm -rf include
rm -rf lib
rm -rf README
rm -rf LICENSE
rm -rf share
rm -rf support-files
rm -rf man
6、备份mysqld 启动文件
先备份/etc/init.d/ 下的mysqld 再 删除/etc/init.d/ 下的mysqld
cd /etc/init.d/tar zcf mysqld_5.7.42.tar.gz mysqldrm -rf /etc/init.d/mysqld
7、上传、解压安装包(开始升级)
下载mysql8.2.0:
https://downloads.mysql.com/archives/community/
创建"mysql8.2.0-glibc"的文件夹,用于存放解压文件。
mkdir /root/mysql8.2.0-glibc##解压
tar -xvf mysql-8.2.0-linux-glibc2.28-x86_64.tar -C /root/mysql8.2.0-glibc
##继续解压
cd /root/mysql8.2.0-glibctar -xvf mysql-8.2.0-linux-glibc2.28-x86_64.tar.xz
将新解压的mysql-8.2.0目录复制到原来mysql安装目录下(/usr/local/mysql/),并修改文件权限。
[root@db-mysql mysql8.2.0-glibc]# mv mysql-8.2.0-linux-glibc2.17-x86_64/* /usr/local/mysql
##修改文件权限chown -R mysql:mysql /usr/local/mysql
8、复制新版启动文件到/etc/init.d/
将新解压的mysql-8.2.0 的mysqld复制到/etc/init.d/ 下。
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
9、修改mysqld参数
vi /etc/init.d/mysqld
和旧版保持一致。
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
10、启动数据库
[root@db-mysql ~]# systemctl daemon-reload
[root@db-mysql ~]#
[root@db-mysql ~]# systemctl start mysqld
[root@db-mysql ~]#
[root@db-mysql ~]# systemctl status mysqld
11、升级验证
1、检查登录正常
mysql -u root -p[root@db-mysql mysql]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.2.0 MySQL Community Server - GPLCopyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
2、检查升级版本
已由mysql-5.7.42 升级到 mysql-8.2.0 。
mysql> select@@version;
+-----------+
| @@version |
+-----------+
| 8.2.0 |
+-----------+
1 row in set (0.00 sec)mysql>
3、检查数据
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| db_update |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)mysql> use db_update;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables;
+---------------------+
| Tables_in_db_update |
+---------------------+
| users |
+---------------------+
1 row in set (0.00 sec)mysql> select * from users;
+----+---------+------+---------------------+
| id | name | age | email |
+----+---------+------+---------------------+
| 1 | Alice | 25 | alice@example.com |
| 2 | Bob | 30 | bob@example.com |
| 3 | Charlie | 22 | charlie@example.com |
| 4 | David | 28 | david@example.com |
| 5 | Eve | 35 | eve@example.com |
+----+---------+------+---------------------+
5 rows in set (0.00 sec)mysql>
❤️🔥 写在最后:一定要下载与Linux 系统上的 glibc(GNU C 库)版本对应的mysql版本)
💖The End💖点点关注,收藏不迷路💖 |
相关文章:
实现:mysql-5.7.42 到 mysql-8.2.0 的升级(二进制方式)
实现:mysql-5.7.42 到 mysql-8.2.0 的升级(二进制方式) 1、操作环境1、查看当前数据库版本2、操作系统版本3、查看 Linux 系统上的 glibc(GNU C 库)版本(**这里很重要,要下载对应的内核mysql版本…...
深入探讨医保购药APP的技术架构与设计思路
随着移动互联网的发展,医疗保健行业也迎来了数字化转型的浪潮。医保购药APP作为医保体系数字化的一部分,其技术架构和设计思路至关重要。接下来,小编将为您讲解医保购药APP的技术架构与设计思路,为相关从业者提供参考和启发。 一、…...
react中点击按钮不能获取最新的state时候
在这个问题中,用户希望在点击确认按钮时触发handleChange函数,并且能够正确获取到最新的bzText值。最初的代码中,在handleOpen函数中弹出一个确认框,并在确认框的onOk回调函数中调用handleChange函数。然而,由于组件传…...
2、鸿蒙学习-申请调试证书和调试Profile文件
申请发布证书 发布证书由AGC颁发的、为HarmonyOS应用配置签名信息的数字证书,可保障软件代码完整性和发布者身份真实性。证书格式为.cer,包含公钥、证书指纹等信息。 说明 请确保您的开发者帐号已实名认证。每个帐号最多申请1个发布证书。 1、登录AppGa…...
蓝桥杯算法基础(13):十大排序算法(希尔排序) (快速排序)c语言版
希尔排序 优化版的插入排序,优化的地方就是步长(增量)增大了,原来的插入排序的步长(增量)是1,而希尔排序的步长(增量)可以很大,然后逐渐减小直到1形成插入排…...
web学习笔记(三十二)
目录 1.函数的call、apply、bind方法 1.1call、apply、bind的相同点 1.2call、apply、bind的不同点 1.3call、apply、bind的使用场景 2. 对象的深拷贝 2.1对象的浅拷贝 2.1对象的深拷贝 1.函数的call、apply、bind方法 1.1call、apply、bind的相同点 在没有传参数时&…...
Android 地图SDK 绘制点 删除 指定
问题 Android 地图SDK 删除指定绘制点 详细问题 笔者进行Android 项目开发,对于已标记的绘制点,提供撤回按钮,即删除绘制点,如何实现。 解决方案 新增绘制点 private List<Marker> markerList new ArrayList<>…...
Nodejs 第五十八章(大文件上传)
在现代网站中,越来越多的个性化图片,视频,去展示,因此我们的网站一般都会支持文件上传。 文件上传的方案 大文件上传:将大文件切分成较小的片段(通常称为分片或块),然后逐个上传这…...
Linux编译器--gcc/g++的使用
1. gcc与g gcc与g分别是c语言与c代码的编译器,但同时g也兼容c语言。 我们知道在Linux中,系统并不以文件后缀来区分文件类别。但对于gcc与g等编译器而言却是需要的。Linux中c代码文件的后缀是.c,c代码文件的后缀是.cpp(.cc)(.cxx)。 在Linu…...
苍穹外卖-day13:vue基础回顾+进阶
vue基础回顾进阶 课程内容 VUE 基础回顾路由 Vue-Router状态管理 vuexTypeScript 1. VUE 基础回顾 1.1 基于脚手架创建前端工程 1.1.1 环境要求 要想基于脚手架创建前端工程,需要具备如下环境要求: node.js 前端项目的运行环境 学习web阶段已安…...
蓝桥杯/慈善晚会/c\c++
问题描述 热心公益的G哥哥又来举办慈善晚会了,这次他邀请到了巴菲特、马云等巨富,还邀请到了大V、小C等算法界泰斗。晚会一共邀请了n位尊贵的客人,每位客人都位于不同的城市,也就是说每座城市都有且仅有一位客人。这些城市的编号为…...
2024.3.19
思维导图...
【Python】新手入门学习:详细介绍单一职责原则(SRP)及其作用、代码示例
【Python】新手入门学习:详细介绍单一职责原则(SRP)及其作用、代码示例 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyT…...
【DataWhale学习笔记】使用AgentScope调用qwen大模型
AgentScope AgentScope介绍 AgentScope是一款全新的Multi-Agent框架,专为应用开发者打造,旨在提供高易用、高可靠的编程体验! 高易用:AgentScope支持纯Python编程,提供多种语法工具实现灵活的应用流程编排ÿ…...
【C++】手撕AVL树
> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:能直接手撕AVL树。 > 毒鸡汤:放弃自…...
探索 TorchRe-ID--基于 Python 的人员再识别库
导言 人员再识别(re-ID)是计算机视觉中的一项重要任务,在监控系统、零售分析和人机交互中有着广泛的应用。TorchRe-ID 是一个功能强大、用户友好的 Python 库,它为人员再识别任务提供了一套全面的工具和模型。在本文中࿰…...
鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Flex)
以弹性方式布局子组件的容器组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。Flex组件在渲染时存在二次布局过程,因此在对性能有严格要求的场景下建议使用Column、Row代替。Flex组…...
tmux最基础的一点应用-不用一直挂着ssh,可以干点别的事情
文章目录 使用原因基础命令创建一个窗口退出当前窗口重新进入万一忘记了环境名字想要删除环境 使用原因 跑程序要很久,需要干别的事情,电脑不能一直开,可以使用tmux来管理。 基础命令 创建一个窗口 tmux new -s <你自己起的环境名字&g…...
Java推荐算法——特征加权推荐算法(以申请学校为例)
加权推荐算法 文章目录 加权推荐算法1.推荐算法的简单介绍2.加权推荐算法详细介绍3.代码实现4.总结 1.推荐算法的简单介绍 众所周知,推荐算法有很多种,例如: 1.加权推荐:分为简单的特征加权,以及复杂的混合加权。主要…...
探索什么便签软件好用,可以和手机同步的便签软件
在信息技术日新月异的今天,各类数字工具已经成为我们生活与工作的重要助手。便签软件作为一种简单却高效的辅助工具,悄然改变着人们的记录习惯与时间管理方式。而在诸多便签软件中,能够实现手机与电脑同步功能的产品尤显其独特的价值。那么&a…...
字符函数与字符串函数
前言 本次博客可以说内容最为多的一次博客,讲解同样很细致大家好好看看 1字符函数 在讲解字符函数时,大家得了解什么是字符吧 普通字符a b c 1 转义字符 \n 换行‘ \t’ 水平制表符\r回车 大家了解即可 在C语言中字符也可以有分类 所以我们先来看看…...
Kubernetes 项目整体布局 el-container
整体布局整体布局 你可能会去敲不同的项目,有很多种平台。那么其实都是可以复用的。唯一不同的就是main里面的内容是不同的,边框架子都是相同的。其实框架是不怎么变化的,变化的是main里面。 src/layout/Layout.vue 这里需要新增一个页面Lay…...
AI赋能写作:AI大模型高效写作一本通
❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。2022年度博客之星评选TOP 10🏆,Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作…...
unraid docker.img扩容
unraid 弹Docker image disk utilization of 99%,容器下载/更新失败 我的版本是6.11.5,docker.img满了导致容器不能更新,遇到同样问题的可以先用docker命令清除一下仓库(当然不一定能清理出来,我已经清理过只清理出来1G多点&…...
Python 实现1~100之间的偶数求和
result0 for i in range(101):if i%20:result result i print(result) 或者 result0 for i in range(2,101,2):result result i print(result)...
Leetcode 387. First Unique Character in a String
Problem Given a string s, find the first non-repeating character in it and return its index. If it does not exist, return -1. Algorithm Use two lists: one list is used to count the letters in “s”; the other list is the position where the letter first …...
c++ 自己实现一个迭代器
具体代码 /*自定义迭代器的实现 */ #include <iostream> using namespace std; class num {int val; //具体的数字int length; //数字的位数void calculate_length(){if(val/100){ //这个数字只有1位length1;return;}int x10; //这里就是不断重复除直…...
HarmonyOS NEXT应用开发—图片压缩方案
介绍 图片压缩在应用开发中是一个非常常见的需求,特别是在处理用户上传图片时,需要上传指定大小以内的图片。目前图片压缩支持jpeg、webp、png格式。本例中以jpeg图片为例介绍如何通过packing和scale实现图片压缩到目标大小以内。 效果图预览 使用说明…...
深入理解nginx的请求限速模块[下]
目录 3. 源码分析3.1 配置指令3.1.1 limit_req_zone指令3.1.2 limit_req指令3.1.3 limit_req_dry_run指令3.1.4 limit_req_log_level指令3.1.5 limit_req_status指令3.2 模块初始化3.3 请求处理3.3.1 ngx_http_limit_req_handler3.3.1 ngx_http_limit_req_lookup3.3.2 ngx_http…...
王者归位:Kafka控制器组件解析
欢迎来到我的博客,代码的世界里,每一行都是一个故事 王者归位:Kafka控制器组件解析 前言控制器组件简介控制器组件的定义和作用:为什么控制器是分布式系统的核心? 保存了什么数据控制器的指定和切换故障转移控制器故障…...
十堰网站建设报价/百度推广账户优化
UML里边界类、控制类和实体类三类讲解 2011年系统分析师考点分析之一 一.UML将类分为哪三个类: 1.边界类(Boundry Class); 2.实体类(Entity Class); 3.控制类(Control Class); 二.边界类 1.用来描述什…...
wordpress 魔/推广渠道有哪些
教学反思:三角形的中线与面积法人教版数学八年级上册第11章第1.2节《三角形的高、中线与角平分线》中,我们对三角形的中线描述是“连接三角形顶点和对边中点的线段”,这和前一小节中对边、对角概念的理解提出的要求对应,即学生能识…...
做公众号商城原型的网站/重庆seo网络推广优化
NAudio音频相关开发 一个有用的音频和 MIDI 相关类的库,旨在加速音频相关实用程序的开发,例如 .NET 中的录音机或转换器 NAudio 2.1.0 的新功能: 改进了定位,使其更易于在非 Windows 平台上使用 AudioFileReader 将使用 MediaFoun…...
有口碑的郑州网站建设/黄页污水
SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。但有一种情况例外&…...
网络营销编辑干什么的/九幺seo优化神器
CommonsChunk 插件的作用就是提取代码中的公共代码,然后将公共模块打包到一个独立的文件中,以便在其它的入口和模块中使用,原理就是把多个入口共同的依赖都给定义成一个新入口 多种打包情况: 单一入口,模块单一引用 va…...
手机wap网站建设/优化网络的软件下载
在移动端的开发中经常遇到横向滚动的样式,有时候UI对滚动条的样式有要求,系统自带的滚动条样式就不能满足需求了,下面来分享下手动实现滚动条样式的简单写法。 先看效果图吧 核心就是1、隐藏系统自带样式;2、计算好滚动条长度的…...