【MySQL】:Linux 环境下 MySQL 使用全攻略
📃个人主页:island1314
🔥个人专栏:MySQL学习
⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞
1. 背景 🚀
世界上主流数据库种类很多,有如下情况:
- SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
- Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
- MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
- PostgreSQL : 加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
- SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
- H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中
而我们这里主要用的就是 MySQL
2. MySQL 安装、卸载
2.1 MySQL 安装 -- 基于 Ubuntu
我这里是使用 Ubuntu 系统对 MySQL 进行的使用,大家需要在自己 Linux 上进行安装的可以下面内容
① 更新软件包列表
sudo apt update
② 安装 MySQL 服务器
# 查看可使用的安装包
sudo apt search mysql-server
接下来可以使用以下命令安装MySQL服务器:
# 安装最新版本
sudo apt install -y mysql-server
# 安装指定 8.0 版本
sudo apt install -y mysql-server-8.0
🔥 如果不加 -y
会在安装过程中,系统将提示你设置MySQL的root密码。我们需要确保密码容易记住,因为你将在以后需要用到它。 我们这里加了 -y 所以默认没有设置密码
③ 启动 MySQL 服务
安装完成后,MySQL服务会自动启动,未启动则使用以下命令启动MySQL服务:
sudo systemctl start mysql
然后我们这里是把 MySQL 设置为 开机自启动,就不用我们自己每次来调了
sudo systemctl enable mysql
④ 检查 MySQL 状态
sudo systemctl status mysql
至此,我们已经成功在线安装了MySQL服务器。
当前我们也可以用查看进程的方式来查看 当前 MySQL 是否成功安装
ps ajx | grep mysql
⑤ 登录 MySQL
首先,使用 root
用户登录到 MySQL。打开终端并输入以下命令:
sudo mysql -u root -p
- 登录mysql,在默认安装时如果没有让我们设置密码,则直接回车就能登录成功
⑥ 更改 root 密码
# 设置密码 mysql8.0
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';# 刷新缓存
flush privileges;
⑦ 修改 MySQL 配置允许远程连接
编辑 MySQL 配置文件,通常在 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/mysql/my.cnf
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
🔥 找到 bind-address 和mysqlx-bind-address项,把127.0.0.1更改为 0.0.0.0 或注释掉这两行,以允许从任何 IP 地址连接。
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
- mysqlx-bind-address与 bind-address 的用途相似,均用于设定MySQL服务器的监听地址。
- 不同之处在于,mysqlx-bind-address用于处理基于X Protocol的连接,而 bind-address 则关注于传统MySQL协议连接。
修改之后,保存后并退出编辑器后,重启 MySQL 服务以应用更改。
sudo systemctl restart mysql
⑧ 测试远程连接(自选)
从另一台计算机上,尝试使用新设置的 root
用户和密码远程连接到 MySQL 服务器。
mysql -h [服务器IP地址] -u root -p
🔥 完成这些步骤后,root 用户应该能够从远程位置登录到 MySQL 服务器,并且密码也已设置完成 。请确保网络和防火墙设置允许远程连接到 MySQL 服务器(默认端口为 3306)。
2.2 MySQL 卸载 --- 不大建议
🔥 要在 Ubuntu 系统上彻底卸载 MySQL,您可以按照以下步骤操作。请注意,这将完全移除 MySQL,包括所有数据和配置文件。在进行这些操作之前,一定要备份之前的所有重要数据。
① 停止 MySQL 服务
sudo systemctl stop mysql
② 卸载 MySQL 安装包
使用 apt-get 命令卸载 MySQL 服务器及其相关软件包。
sudo apt-get remove --purge mysql-server mysql-client mysql-common
③ 删除配置和数据文件
🔥 删除 MySQL 的配置文件和数据目录。这一步是必要的,因为 apt-get remove --purge 可能不会删除所有文件。
sudo rm -rf /etc/mysql /var/lib/mysql
sudo rm -rf /var/log/mysql
④ 删除 MySQL 用户 和 组
如果我们想要删除 MySQL 用户和组,可以执行以下命令:
sudo deluser mysql
sudo delgroup mysql
完成以上步骤后,MySQL 应该已经从您的系统中彻底卸载。在重新安装 MySQL 或安装不同版本的 MySQL 之前,确保系统已经清理干净。
- 但是我这里还是不大建议删除重装,比如我今天就重装了一次,我先删干净了,但是再进行安装的时候,就会安装失败,如下:
- 然后当我找了网上一系列教程之后,然后终于安装成功了,但是 MySQL 启动服务就报错了,真的会谢,错误如下:
Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.
🔥 然后这个问题在网上那个时候又没找到一个靠谱的方案,然后就去找了一个大佬帮忙看看,大佬帮我看了好一会之后,还是操作不了,可能是我之前的一系列操作出现了啥问题,真的强烈建议不要看到网上教什么就直接输入什么了,至少先了解一下那个指令是啥起码,最后的最后还是老老实实的选择了重装系统,血的教训 !!!
3. MySQL 介绍
3.1 连接服务器
mysql -h 127.0.0.1 -P 3306 -u root -p
注意:
- 如果没有写 -h 127.0.0.1 默认是连接本地
- 如果没有写 -P 3306 默认是连接3306端口号
补充一个指令 -- 清屏
mysql> system clear
3.2 什么是数据库 ?
站在 服务器 角度 来理解 MySQL
- mysql它是数据库服务的客户端
- mysqld它是数据库服务的服务器端
- mysql本质:基于C(mysql) S(mysqld)模式的一种网络服务
mysql 其实就是一套给我提供数据存取的服务的网络程序
- 数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据 - 将来在磁盘上存储的一套
- 数据库方案数据库服务 -- mysqld
🚀 存储数据用文件就可以了,为什么还要弄个数据库? 主要是因为 文件保存数据 有以下几个缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
🔥 一般的文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据管理能力(用户角度) (理解:按照内容进行字段性提取,都需要程序员自己去做,不大方便)
- 为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。
而数据库的存储,用到了如下的存储介质:
- 磁盘
- 内存
数据库的水平是衡量一个程序员水平的重要指标。
数据库本质:对数据内容存储的一套解决方案你给我字段或者要求,我直接给你结果就行
3.3 服务器,数据库,表关系
- 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
- 数据库服务器、数据库和表的关系如下:
3.4 MySQL 架构
💧 MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris 。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。
3.5 SQL 分类
其实主要的 SQL 指令操作,在这篇博客已经讲过了,大家可以看看 【MySQL学习】:关系数据库标准语言SQLhttps://island.blog.csdn.net/article/details/141996493
- DDL【data definition language】 数据定义语言,用来维护存储数据的结构
- 代表指令: create, drop, alter
- DML【data manipulation language】 数据操纵语言,用来对数据进行操作
- 代表指令: insert,delete,update
- DML 中又单独分了一个DQL,数据查询语言
- 代表指令: select
- DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务
- 代表指令: grant,revoke,commit
3.6 存储引擎
之前在这篇博客里面我们也谈过一些内容,感兴趣的朋友们可以看看
从 InnoDB 到 Memory:MySQL 存储引擎的多样性https://island.blog.csdn.net/article/details/142349947
🥝 存储引擎
💢 存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL的核心就是插件式存储引擎,支持多种存储引擎。
🥝 查看存储引擎
- 强烈注意:在 MySQL 下,输入的一系列命令都需要打 分号,千万千万不要忘记
🥝 存储引擎对比
4. 数据库的操作
数据库的基本指令操作,在这篇文章基本都有讲过,我这里都是一些补充
【MySQL学习】:关系数据库标准语言SQLhttps://island.blog.csdn.net/article/details/141996493
4.1 查看数据库
show databases;-- 输出如下+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
那我们查看的这些数据库在哪呢,还记得我们 MySQL 的一系列配置文件嘛,它里面有个 datadir,如下:
创建的数据库会保存在 /var/lib/mysql 下
4.2 创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name
说明:
- 大写的表示关键字
- [] 是可选项
- CHARACTER SET : 指定数据库采用的字符集
- COLLATE : 指定数据库字符集的校验规则
🔥 说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci,一般来说我们直接 create database 数据库名 就行了
补充一条指令 -- 显示创建语句
mysql> show create database learn1;
+----------+----------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------------------------------------------------------------------------+
| learn1 | CREATE DATABASE `learn1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
📚 说明:
- MySQL 建议我们关键字使用大写,但是不是必须的。
- 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
- /*!40100 default… */ 这个不是注释,表示当前使用mysql版本大于4.01版本,就执行这句话
言归正传,回到我们之前的话题 创建的数据库会保存在 /var/lib/mysql 下
- 建立数据库,本质就是Linux下的一个目录
- 在数据库内建立表,本质就是在Linux下创建对应的文件即可!
理解 数据库 和 文件系统 的关联
- 创建数据库:本质就是在Linux环境下MySQL特定的路径(数据路径)var/lib/mysql 创建一个目录。
所以什么叫 数据库 ?
🔥 那么就是上面看到的,在当前对应的数据路径 /var/lib/mysql 下,ls 所看到的这些文件和目录,然后这些数据库里面可以存取很多表,这就叫作数据库的表,我们的这套数据库文件并不是直接由程序员去手动修改这些文件,而是通过 MySQL 客户端然后直接去访问我们的 MySQL 服务(mysqld)
因此结论是:数据库本质其实也是文件!!!只不过这些文件并不是由程序员自己直接操作,而是由数据库服务帮我们进行操作,这个工作是谁做的? --> mysqld服务帮我们做的
4.3 字符集和校验规则
字符集是什么?
创建数据库的时候,有两个编码集
- 数据库编码集 – 数据库未来存储数据--写入规则
- 数据库校验集 – 支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式--读取原则
数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的
存数据的时候用什么编码,取的时候就得用什么编码去取
查看系统默认字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database'
查看数据库支持的字符集
show charset;
字符集主要是控制用什么语言。比如utf8就可以使用中文。
查看数据库支持的字符集校验规则
show collation;
- 校验规则使用 utf8_ general_ ci[不区分大小写]
- 校验规则使用 utf8_ bin[区分大小写]
现在也知道创建数据库了,也知道编码和校验规则了。两个合并下面就可以创建出指定编码和校验规则的数据库了。
- 就近原则:下面可以看到创建数据库没有指定,系统就用默认的。
如下就使用 gbk,不适用 utf8 了
create database d3 charset=gbk collate gbk_chinese_ci;
数据库配置文件中配置这个编码有什么意义呢?
- 因为曾经在配置文件中设置过,所以会影响创建数据库时默认编码和校验规则,编码和校验规则是匹配的。
那问题又来了,今天为什么又要设置数据库编码呢?
- 因为数据库里是需要存表的,在数据库里可能要建各种各样的表,有存各种各样数据的需求,这些表采用编码和校验规则是继承至它所在的数据库。
- 数据库默认依赖于mysqld,表依赖于数据库。这样就可以理解为什么要做这样的配置。
4.4 修改数据库
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
- 对数据库的修改主要是修改数据库的字符集,校验规则
4.5 数据库删除
DROP DATABASE [IF EXISTS] db_ name;
- 数据库内部看不到对应的数据库
- 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
- 注意:不要随意删除数据库
备份和恢复
① 备份
# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
🔥 把test1.sql打开后,可以看到里面是大部分内容我们就见过的,如craete database test1、use test1还有后面插入数据等等。
其实它备份的时候,是把在这个数据库里做的有效操作全备份起来了。
所以说备份的不是只有数据,还把历史上所有有效操作全部备份起来了。
② 还原
mysql> source D:/mysql-5.7.22/mytest.sql
两个注意点:
- 不用/home/root ,直接/root
- root 下的文件只有 root 下连接 mysql 才有权限恢复
注意事项
如果备份的不是整个数据库,而是其中的一张表,怎么做?
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
- 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原
- 备份时带了 -B 这个备份文件其实是带了create databdase test1,use test1
- 如果没有带 -B 备份的时候只会把这个数据库里面所有表信息数据信息全部备份出来,如果需要还原需要自己先把数据库建好。
查看连接情况
show processlist;-- 示例
mysql> show processlist;
+-----+-----------------+-----------+------+---------+--------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+-----------------+-----------+------+---------+--------+------------------------+------------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 366405 | Waiting on empty queue | NULL |
| 163 | root | localhost | NULL | Query | 0 | init | show processlist |
+-----+-----------------+-----------+------+---------+--------+------------------------+------------------+
2 rows in set, 1 warning (0.00 sec)
- 可以告诉我们当前有哪些用户连接到我们的MySQL
- 如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了
- 以后发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况
5. 共勉
【*★,°*:.☆( ̄▽ ̄)/$:*.°★* 】那么本篇到此就结束啦,如果有不懂 和 发现问题的小伙伴可以在评论区说出来哦,同时我还会继续更新关于【MySQL】的内容,请持续关注我 !!
相关文章:

【MySQL】:Linux 环境下 MySQL 使用全攻略
📃个人主页:island1314 🔥个人专栏:MySQL学习 ⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 1. 背景 🚀 世界上主…...

Linux驱动开发 gpio_get_value读取输出io的电平返回值一直为0的问题
当时gpio子系统进行读取时返回必定是0 因此,首先必须使用platform驱动来管理gpio和pinctrl子系统,然后如果按照正点原子所教的设备树引脚设置为0x10B0则会导致读取到的电平值为0。 解决方法: 将设备树中的引脚设置为 pinctrl_gpioled: gpio…...

【数据结构】栈与队列(FIFO)
在阅读该篇文章之前,可以先了解一下堆栈寄存器和栈帧的运作原理:<【操作系统】堆栈寄存器sp详解以及栈帧>。 栈(FILO) 特性: 栈区的存储遵循着先进后出的原则。 例子: 枪的弹夹,最先装进去的子弹最后射出来,最后装入的子弹…...
vue.js -ref和$refs获取dom和组件
在Vue.js中,ref和$refs是两个常用的属性,用于访问DOM元素和组件实例。下面分别详细解析这两个属性,并提供代码实例。 ref属性 ref属性用于给DOM元素或组件指定一个唯一的引用标识,在Vue实例中可以通过这个标识来访问对应的DOM元素…...

unity学习5:创建一个自己的3D项目
目录 1 在unity里创建1个3D项目 1.1 关于选择universal 3d,built-in render pipeline的区别 1.2 创建1个universal 3d项目 2 打开3D项目 2.1 准备操作面板:操作界面 layout,可以随意更换 2.2 先收集资源:打开 window的 AssetStore 下载…...

IEEE PDF eXpress遇到Font TimesNewRomanPSMT is not embedded的解决方案
IEEE PDF eXpress遇到Font TimesNewRomanPSMT is not embedded的解决方案 问题描述 在IEEE PDF eXpress上上传论文后,出现Font XXX is not embedded的问题。 该问题是指你所插入的图片等,没有将对应的字体嵌入进去。 解决方案 以下以Origin Lab图片…...

计算机网络 (21)网络层的几个重要概念
前言 计算机网络中的网络层是OSI(开放系统互连)模型中的第三层,也是TCP/IP模型中的第二层,它位于数据链路层和传输层之间,负责数据包从源主机到目的主机的路径选择和数据转发。 一、网络层的主要功能 路由选择…...

企业网络性能监控
什么是网络性能监控 网络性能监控(NPM)是指对计算机网络的性能进行持续测量、分析和管理的过程,通过监控流量、延迟、数据包丢失、带宽利用率和正常运行时间等关键指标,确保网络高效、安全地运行,并将停机时间降至最低…...
halcon三维点云数据处理(五)创建代表工具和机器人底座的3D模型
目录 一、gen_robot_tool_and_base_object_model_3d 函数调用二、gen_arrow_object_model_3d 函数调用 首先说明一下这部分代码在find_box_3d这个例程中,非常好用的一个坐标系生成函数。 一、gen_robot_tool_and_base_object_model_3d 函数调用 RobotToolSize : 0.…...

容器技术思想 Docker K8S
容器技术介绍 以Docker为代表的容器技术解决了程序部署运行方面的问题。在容器技术出现前,程序直接部署在物理服务器上,依赖管理复杂,包括各类运行依赖,且易变,多程序混合部署时还可能产生依赖冲突,给程序…...

25年1月更新。Windows 上搭建 Python 开发环境:PyCharm 安装全攻略(文中有安装包不用官网下载)
python环境没有安装的可以点击这里先安装好python环境,python环境安装教程 安装 PyCharm IDE 获取 PyCharm PyCharm 提供两种主要版本——社区版(免费)和专业版(付费)。对于初学者和个人开发者而言,社区…...
Oracle job(定时任务)
1、job的作用 可以定时执行任务(分/次、时/次、天/次等) 2、创建job --创建job --注意点: --①job_no 为系统自动获取; --②存储过程名需要加‘;’ --③定时器开始执行时间可以填‘sysdate,表示立即执行 --④执行频…...
[python3]Excel解析库-xlwt
xlwt 是一个用于创建 Excel .xls 文件(即旧版的 Excel 97-2003 格式)的 Python 库。它允许你用 Python 编写程序来生成 Excel 文件,而不需要实际运行 Microsoft Excel 应用程序。请注意,xlwt 只支持写入 .xls 文件,并不…...

【Rust自学】10.3. trait Pt.1:trait的定义、约束与实现
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 题外话:trait的概念非常非常非常重要!!!整个第10章全都是Rust的重难点!&#x…...

大数据高级ACP学习笔记(2)
钻取:变换维度的层次,改变粒度的大小 星型模型 雪花模型 MaxCompute DataHub...

K8s高可用集群之Kubernetes集群管理平台、命令补全工具、资源监控工具部署及常用命令
K8s高可用集群之Kubernetes管理平台、补全命令工具、资源监控工具部署及常用命令 1.Kuboard可视化管理平台2.kubectl命令tab补全工具3.MetricsServer资源监控工具4.Kubernetes常用命令 1.Kuboard可视化管理平台 可以选择安装k8s官网的管理平台;我这里是安装的其他开…...

【ArcGIS Pro二次开发实例教程】(2):BSM字段赋值
一、简介 一般的数据库要素或表格都有一个BSM字段,用来标识唯一值。 此工具要实现的功能是:按一定的规律(前缀中间的填充数字OBJECT码)来给BSM赋值。 主要技术要点包括: 1、ProWindow的创建,Label,Comb…...
OpenCV轮廓相关操作API (C++)
在OpenCV中,轮廓(contours)是图像处理中的一个重要概念,通常用于形状分析、物体检测等任务。OpenCV提供了多种与轮廓相关的API,可以在C中使用。 一.常用的与轮廓相关的操作及其对应的API函数 1.查找轮廓 findContou…...

[开源]自动化定位建图系统
系统状态机: 效果展示: 1、 机器人建图定位系统-基础重定位,定位功能演示 2、 机器人建图定位系统-增量地图构建,手动回环检测演示 3、敬请期待… 开源链接: 1、多传感器融合里程计 https://gitee.com/li-wenhao-lw…...

linux ansible部署
ansible部署完后,执行报错 # ansible one -i hosts -m ping dataos193 | FAILED! > {"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add …...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...