【ONE·MySQL || 视图和用户管理】

news2024/12/29 10:40:42

总言

  主要内容:介绍MySQL中视图和用户管理。
  
  
  
  

文章目录

  • 总言
  • 1、视图
    • 1.1、基本介绍
    • 1.2、相关操作
      • 1.2.1、创建及查看视图
      • 1.2.2、修改视图
      • 1.2.3、更新视图
      • 1.2.4、删除视图
  • 2、用户管理
    • 2.1、用户管理
      • 2.1.1、基本介绍
      • 2.1.2、使用用户登录MySQL服务器
      • 2.1.1、查看用户信息
      • 2.1.2、创建用户
      • 2.1.3、删除用户
      • 2.1.4、修改用户密码
    • 2.2、数据库的权限
      • 2.2.1、基本介绍(权限列表)
      • 2.2.2、授予权限
      • 2.2.3、查看权限
      • 2.2.4、收回权限
  • Fin、共勉。

  
  
  
  

1、视图

1.1、基本介绍

  1)、基表与视图
  1、在Mysql中,基本表是最常见的数据存储形式。它是数据库中存储数据的物理结构,由行和列组成。每一行表示一条记录,每一列代表一个属性。基本表是数据库的核心组成部分,用于存储和管理实际的数据。

  主要特点包括:

存储实际数据
使用INSERT、UPDATE、DELETE等语句来操作数据
可以定义索引来提高查询效率

  

  2、视图是基于一个或多个基本表的查询结果的虚拟表。 它是一个逻辑概念,不实际存储数据,但可以像基本表一样使用。同真实的表一样,视图包含一系列带有名称的列和行数据。

  视图的特点包括:

不存储实际数据,只保存查询定义
可以像基本表一样使用,进行CRUD操作
可以简化复杂查询和保护数据安全

  
  
  
  2)、视图优缺点
  视图的主要优点:
  简化复杂的SQL:你可以创建一个视图来隐藏复杂的SQL逻辑,使其看起来像一个简单的表。
  安全性:通过视图,可以限制用户对基础数据的访问,只显示他们需要的列和数据。
  逻辑数据独立性:当基础表的结构发生变化时,可以修改视图来保持相同的外观,从而隐藏这些变化。
  
  
  视图的主要缺点:
  查询效率:视图的查询效率可能会低于直接查询基本表,因为视图需要在查询时动态生成结果。
  更新限制:由于视图是基于基本表的查询结果,对视图的更新操作可能会受到限制。例如,视图中使用了聚合函数或GROUP BY子句,则不能对视图进行更新。
  存储空间:虽然视图不存储实际数据,但是需要占用一定的存储空间来保存查询定义。
  
  
  
  
  3)、视图规则和限制

  • 与基表一样,视图必须唯一命名(不能出现同名视图或表名)
  • 创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响
  • 视图不能添加索引,也不能有关联的触发器或者默认值
  • 视图可以提高安全性,必须具有足够的访问权限
  • order by 可以在视图中使用,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的 order by 将被覆盖
  • 视图可以和表一起使用
      
      
      
      
      
      
      
      
      
      

1.2、相关操作

1.2.1、创建及查看视图

  1)、基本语法
  在Mysql中,可以使用CREATE VIEW语句来创建视图。

create view 视图名 as select语句;

--展开举例即:(select语句展开)
CREATE VIEW view_name AS  
SELECT column1, column2, ...  
FROM table_name  
WHERE condition

  视图一旦创建完毕,就可以像一个普通表那样使用,视图主要用来查询

  
  2)、相关演示
  创建视图:
在这里插入图片描述
  
  查看视图信息:
在这里插入图片描述

  
  
  
  
  

1.2.2、修改视图

  修改视图是指修改数据库中已存在表的定义。 当基本表的某些字段发生改变时,可以通过修改视图来保持视图和基本表之间一致。在MySQL中通过CREATE OR REPLACE VIEW语句和ALTER语句来修改视图。

CREATE [ OR REPLACE ] (ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS SELECT_statement
[WITH [CASCADED | LOCAL ] CHECK OPTION ]

  
  ALTER语句是MySOL提供的另外一种修改视图的方法:

ALTER [ ALGORITHM = { UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS SELECT_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]

  
  
  
  
  
  

1.2.3、更新视图

  视图是虚拟表,更新视图中的数据,实际上就是在更新建立视图的基本表中的数据。例如,当我们删除视图中的数据时,基本表中的数据也同样会被删除,因此用户在更新视图时要小心谨慎。
  更新视图可以更新(update)、插入(insert)和删除(delete)对应基本表中的数据。

UPDATE 视图名 SET 字段名1=1 [,字段名2=2, .... [WHERE 条件表达式] ;

INSERT INTO 视图名 VALUES (1,2, ... ;

DELETE FROM表名[WHERE 条件表达式] ;

  
在这里插入图片描述

  
  
  
  
  
  

1.2.4、删除视图

  当视图不再需要时,可以将其删除,删除一个或多个视图(删除多个视图时,名称之间用,分隔):

DROP VIEW[IF EXIsTs] view_name1 [,view_name2]... [RESTRICT | CASCADE];

在这里插入图片描述

  
  
  
  
  
  
  

2、用户管理

2.1、用户管理

2.1.1、基本介绍

  MySQL数据库的安全性需要通过账户管理来保证,用户是用于访问数据库服务器的身份标识。每个用户都与一个或多个主机名相关联,并具有一组权限,这些权限决定了该用户可以在MySQL服务器上执行哪些操作。
   和Linux一样,MySQL用户也可以分为普通用户和root用户

  • root用户:是超级管理员,拥有所有权限,包括创建用户、删除用户和修改用户的密码等管理权限。
  • 普通用户:只拥有被授予的各种权限。

  MySQL提供了很多语句用来管理用户账号,这些语句可以用来管理包括登录和退出MySQL服务器,创建用户,删除用户、密码管理和权限管理等内容。
  
  
  
  

2.1.2、使用用户登录MySQL服务器

  MySQL登录,我们在之前也介绍过(相关链接)。启动MySQL服务后,可以通过mysql命令来登录MySQL服务器:

mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"

  参数介绍:
  -h参数后面接主机名或者主机IP,hostname主机名hostIP主机IP
  -P参数后面接MySQL服务的端口,通过该参数连接到指定的端口。MySQL服务的默认端口是3306,不使用该参数时自动连接到3306端口,port为连接的端口号。
  -u参数后面接用户名,username用户名
  -p参数会提示输入登录密码
  DatabaseName参数指明登录到哪一个数据库中。如果没有该参数,就会直接登录到MySQL数据库中,然后可以使用USE命令来选择数据库。
  -e参数后面可以直接加SQL语句。登录MySQL服务器以后即可执行这个SQL语句,然后退出MySQL服务器。
  
  
  演示如下:
在这里插入图片描述

  
  
  
  
  

2.1.1、查看用户信息

  1)、查看user表
  在MySQL中,用户信息存储在mysql数据库的user表中。这个表包含了MySQL服务器的用户账号、主机名、密码哈希值、权限等信息。
  
在这里插入图片描述

  通常,我们不通过直接修改这个表来管理用户,因为MySQL提供了CREATE USERGRANTREVOKEDROP USER等SQL命令来管理用户及其权限。
  
  
  
  2)、user表中一些字段解释
  以下为user表中的一部分字段。实际上,该表包含了许多其他字段,用于存储与用户和权限相关的各种设置和配置。


  Host

  • 这个字段指定了用户可以从哪些主机连接到MySQL服务器。例如,‘localhost’表示用户只能从本地主机连接,而’%'表示用户可以从任何主机连接。
  • 在组合Host和User字段时,它们唯一地标识了一个MySQL用户。

  
  User

  • 这个字段存储了用户的名称。与Host字段结合使用时,它确定了哪些用户可以连接到MySQL服务器。
      

  authentication_string(或Password,取决于MySQL版本):

  • 这个字段存储了用户的密码哈希值。出于安全原因,MySQL不会以明文形式存储密码。
  • 在MySQL 5.7及更高版本中,密码哈希存储在authentication_string字段中。而在较旧的版本中,密码哈希可能存储在Password字段中。
  • 更改用户密码时,该字段的值会更新。

   Select_priv, Insert_priv, Update_priv, ...

  • 这些字段是布尔类型的,用于控制用户对特定数据库或表的各种操作权限。它们可以针对全局(所有数据库)、特定数据库或特定表进行设置。
  • 例如,Select_priv字段用于控制用户是否有权从表中检索数据。
      

   Grant_priv

  • 这个字段控制用户是否有权授予其他用户权限。
  • 只有具有GRANT OPTION权限的用户才能修改其他用户的权限。
      

   Account_locked(在某些MySQL版本中):

  • 这个字段用于锁定或解锁用户账号。
  • 如果设置为Y(或1),则用户账号被锁定,用户无法登录。
      

   Pluginauthentication_string_length

  • 这些字段与用户的身份验证插件和密码哈希长度相关。
  • MySQL支持多种身份验证插件,这些插件决定了如何验证用户的密码。
      

  
  
  

  3)、如何理解用户管理?
  MySQL中,所有的用户管理工作(如创建用户、删除用户、修改用户权限等),全部都是在这张user表中进行的。所有用户管理工作对应的SQL语句,本质其实都是对这个表进行增删查改操作(CURD)。

在这里插入图片描述

  但通常不推荐直接操作user表(除非对MySQL的内部实现有深入的了解,并且知道如何正确地更新和维护这些表),一般我们倾向于使用专门的SQL语句进行用户管理(更为安全、可靠和易于理解)。
  
  
  
  
  

2.1.2、创建用户

  使用CREATE USER语句来创建一个新用户。

CREATE USER  '用户名'@'登陆主机/ip'  [IDENTIFIED BY '密码'];

  说明:
  1、新建用户的账户,由用户(User)和主机名(Host)构成
  2、“[ ]”表示可选。也就是说,可以指定用户登录时需要密码验证,也可以不指定密码验证,这样用户可以直接登录。不过,不指定密码的方式不安全,不推荐使用。 如果指定密码值,这里需要使用IDENTIFIED BY指定明文密码值
  3、CREATE USER语句可以同时创建多个用户
  
  演示如下:实际这里的创建就相当于往表格中Insert插入一条记录,但我们一般推荐使用MySQL提供的专门语句,而非直接使用增删查改操作(CURD)。
在这里插入图片描述

  登录该用户查看一下:
在这里插入图片描述
  
  
  
  
  
  
  

2.1.3、删除用户

  可以使用DROP USER语句来删除用户。但操作用户需要拥有DROP USER权限。 DROP USER 语句的基本语法如下:

drop user '用户名'@'主机名'

在这里插入图片描述
  
  旧版本的MySQL(5.7.6之前),可以使用delete方式删除(需要具有足够的权限,这种方法不推荐用于现代MySQL版本):

DELETE FROM mysql.user WHERE host='hostname' AND user='username';
FLUSH PRIVILEGES; --执行完DELETE命令后要使用FLUSH命令来使用户生效

  
  
  
  
  
  
  

2.1.4、修改用户密码

  可以使用条件筛选语句,直接对user表中的用户密码进行修改(但非正式,一般不推荐)

--使用ALTER USER语句(MySQL 5.7.6及更高版本)
ALTER USER 'username'@'hostname' IDENTIFIED BY 'new_password';

--使用UPDATE语句修改普通用户的密码(不推荐)
UPDATE user SET authentication_string=PASSWORD("123456") WHERE user = "username" AND host = "hostname";

在这里插入图片描述

   刷新权限说明: 在修改了用户密码后,为了确保更改立即生效,你可能需要执行FLUSH PRIVILEGES;命令来刷新MySQL的权限表。
  
  
  
  一般而言,我们比较推荐使用MySQL为user提供的SQL语句修改用户密码:

--设置当前用户密码
SET PASSWORD = PASSWORD('123456');
SET PASSWORD='new_password';

--root用户修改指定用户的密码
SET PASSWORD FOR 'username'@'hostname'='new_password';

  
  自己修改自己密码的情况演示:

在这里插入图片描述
  
  root用户修改密码的情况演示:

在这里插入图片描述
  
  
  
  
  
  
  
  
  

2.2、数据库的权限

2.2.1、基本介绍(权限列表)

  1)、MySQL权限
  在MySQL中,权限控制是确保数据库安全性的重要部分。通过授予和撤销用户权限,我们可以控制哪些用户可以访问数据库、可以执行哪些操作以及可以访问哪些特定的数据库或表。
  
  

  2)、权限列表
  MySQL到底都有那些权限呢?可通过show privileges;指令查看:

mysql> show privileges;
+-------------------------+---------------------------------------+-------------------------------------------------------+
| Privilege               | Context                               | Comment                                               |
+-------------------------+---------------------------------------+-------------------------------------------------------+
| Alter                   | Tables                                | To alter the table                                    |
| Alter routine           | Functions,Procedures                  | To alter or drop stored functions/procedures          |
| Create                  | Databases,Tables,Indexes              | To create new databases and tables                    |
| Create routine          | Databases                             | To use CREATE FUNCTION/PROCEDURE                      |
| Create temporary tables | Databases                             | To use CREATE TEMPORARY TABLE                         |
| Create view             | Tables                                | To create new views                                   |
| Create user             | Server Admin                          | To create new users                                   |
| Delete                  | Tables                                | To delete existing rows                               |
| Drop                    | Databases,Tables                      | To drop databases, tables, and views                  |
| Event                   | Server Admin                          | To create, alter, drop and execute events             |
| Execute                 | Functions,Procedures                  | To execute stored routines                            |
| File                    | File access on server                 | To read and write files on the server                 |
| Grant option            | Databases,Tables,Functions,Procedures | To give to other users those privileges you possess   |
| Index                   | Tables                                | To create or drop indexes                             |
| Insert                  | Tables                                | To insert data into tables                            |
| Lock tables             | Databases                             | To use LOCK TABLES (together with SELECT privilege)   |
| Process                 | Server Admin                          | To view the plain text of currently executing queries |
| Proxy                   | Server Admin                          | To make proxy user possible                           |
| References              | Databases,Tables                      | To have references on tables                          |
| Reload                  | Server Admin                          | To reload or refresh tables, logs and privileges      |
| Replication client      | Server Admin                          | To ask where the slave or master servers are          |
| Replication slave       | Server Admin                          | To read binary log events from the master             |
| Select                  | Tables                                | To retrieve rows from table                           |
| Show databases          | Server Admin                          | To see all databases with SHOW DATABASES              |
| Show view               | Tables                                | To see views with SHOW CREATE VIEW                    |
| Shutdown                | Server Admin                          | To shut down the server                               |
| Super                   | Server Admin                          | To use KILL thread, SET GLOBAL, CHANGE MASTER, etc.   |
| Trigger                 | Tables                                | To use triggers                                       |
| Create tablespace       | Server Admin                          | To create/alter/drop tablespaces                      |
| Update                  | Tables                                | To update existing rows                               |
| Usage                   | Server Admin                          | No privileges - allow connect only                    |
+-------------------------+---------------------------------------+-------------------------------------------------------+
31 rows in set (0.00 sec)

mysql> 

  相关解释:
在这里插入图片描述
  
  

  3)、常用权限介绍

  • CREATEDROP权限: 可以创建新的数据库和表,或删除(移掉)已有的数据库和表。如果将MySQL数据库中的DROP权限授予某用户,用户就可以删除MySQL访问权限保存的数据库。
  • SELECTINSERTUPDATEDELETE权限:允许在一个数据库现有的表上实施检索、插入、修改、删除操作。
  • INDEX权限:允许创建或删除索引,INDEX适用于已有的表。如果具有某个表的CREATE权限,就可以在CREATE TABLE语句中包括索引定义。
  • ALTER权限 :可以使用ALTER TABLE来更改表的结构和重新命名表。
  • CREATE ROUTINE权限用来创建保存的程序(函数和程序),ALTER ROUTINE权限用来更改和删除保存的程序, EXECUTE权限用来执行保存的程序。
  • GRANT权限: 允许授权给其他用户,可用于数据库、表和保存的程序。
  • FILE权限:使用户可以使用LOAD DATA INFILE和SELECT … INTO OUTFILE语句读或写服务器上的文件,任何被授予FILE权限的用户都能读或写MySQL服务器上的任何文件(说明用户可以读任何数据库目录下的文件,因为服务器可以访问这些文件)。
      
      
      
      
      
      
      

2.2.2、授予权限

  用户是数据库的使用者,我们可以通过给用户授予访问数据库中资源的权限,来控制使用者对数据库的访问,消除安全隐患。

grant 权限列表 on 数据库名称.表名 to '用户名'@'登陆位置' [identified by '密码']

  1、权限列表:如果要一次授予多个权限, 则彼此间使用分开。

grant select on ...
grant select, delete, create on ....
grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限

  2、数据库名称.表名
  *.*,表示本系统中的所有数据库的所有对象(表,视图,存储过程等)
  库.* ,表示某个数据库中的所有数据对象(表,视图,存储过程等)
  
  3、identified by:可选选项。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户。(PS:在MySQL 8.0.11版本之后,不允许使用GRANT命令创建用户了,也就是说在8.0.11之后的版本,必须先创建用户,再赋予权限)
  
  
在这里插入图片描述

  
  
  
  

2.2.3、查看权限

  查看当前用户权限:

show grants;
show grants for current_user;
show grants for current_user();

  查看某个用户的全局权限:

show grants for 'user'@'host';

  演示如下:
在这里插入图片描述

  
  
  
  

2.2.4、收回权限

  收回用户不必要的权限可以在一定程度上保证系统的安全性。(PS:有些权限可能需要被操作的用户重新登录后才生效。)

revoke 权限列表 on 数据库名称.表名 from '用户名'@'登陆位置'

  
  演示如下:(此处紧接授予权限的示例)

在这里插入图片描述

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

Fin、共勉。

在这里插入图片描述

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

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

相关文章

MyBatis中Where标签:揭秘高效SQL构建的秘密

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 理解Where标签的基础概念 在MyBatis中&#xff0c;<where>标签是用于构建SQL查询语句中的一个非常重要的元素。它允许你在一个动态的SQL语句中添加WHERE子句&#xff0c;而不需要担心SQL语法错误或额外的逗号…

【Linux】之【Get√】查看linux CPU 架构 ---- amd64、x86、x86_64、arm64

关于Linux软件下载时&#xff1a;amd64、x86、x86_64、arm64 的说明 archuanme -alscpu

MySQL中视图是什么,有什么作用

目录 一、视图的简介 1.1 什么是视图&#xff1f; 1.2 为什么使用视图&#xff1f; 1.3 视图有哪些规则与限制&#xff1f; 1.4 视图能否更新&#xff1f; 二、视图的创建 三、视图的作用 3.1 用视图简化复杂的联结 3.2 用视图格式化检索出的数据 3.3 用视图过滤数据…

数字人系统OEM源码及赚钱方式详解!

当前&#xff0c;数字人直播的热度持续上涨&#xff0c;应用场景日益丰富。而随着数字人直播所蕴含的前景和潜力被不断挖掘一批又一批的创业者纷纷开始入局分羹。其中&#xff0c;数字人系统OEM源码模式作为最为常见的入局方式之一&#xff0c;更是备受瞩目。 所谓数字人系统O…

机器人开源项目分享,助力一户一机器人

最初&#xff0c;因隋炀帝思念心切&#xff0c;命工匠按照柳抃的形象制作了木偶机器人&#xff0c;被认为是历史上最早的机器人之一。这些木偶机器人通过精巧设计的机关&#xff0c;能够执行坐、起、拜、伏等动作。 如今&#xff0c;随着科技的发展&#xff0c;机器人已经广泛…

2024年安全生产月资料合集,抓紧保存!

今年6月&#xff0c;我们将迎来第23个全国“安全生产月”&#xff0c;主题定为“人人讲安全、个个会应急———畅通生命通道”。 为了方便大家组织“安全生产月”活动&#xff0c;做好安全月宣传和培训。我们特别邀请了 安全工程师 王欣和李勇刚&#xff0c;结合今年的活动要求…

pip(包管理器) for Python

pip是什么 pip是Python的包安装程序&#xff0c;即python包管理器。您可以使用 pip 从Python包索引和其他索引安装包。 1. pip 安装 python 包 pip install 包名 例如&#xff1a;pip install pymssql &#xff1a; 使用pip安装数据库驱动包 pymssql 2.pip 卸载 python 包 pi…

LSPatch免root手机模块应用

软件介绍 LSPatch是一款免root手机模块应用&#xff0c;兼容大部分机型&#xff0c;使用LSPatch&#xff0c;您可以个性化您的Android设备&#xff0c;添加新的功能&#xff0c;修改系统设置&#xff0c;甚至完全改变系统的外观。您可以根据自己的需求选择和安装各种Xposed模块…

神经网络优化算法

神经网络优化算法 文章目录 神经网络优化算法梯度下降算法批量梯度下降法随机梯度下降法小批量随机梯度下降法动量法NAGAdaGradRMSPropADADELTAADAMNADAM 梯度下降算法 以 f ( x ) 1 2 x 2 f(x)\frac12x^2 f(x)21​x2为例展示了梯度下降法中梯度下降的实际情况&#xff0c;图…

Postman快捷功能-快速填写请求头

大家好&#xff0c;之前给大家分享关于 Postman 工具的基础使用&#xff0c;今天给大家介绍一个快捷功能&#xff0c;可以一定程度提高我们使用 Postman 工具的效率&#xff0c;在我们进行接口测试时&#xff0c;几乎每个接口都需要填写 Headers&#xff0c;且 Headers 中的参数…

代理模式的种类和它们之间区别?

静态代理 这种代理方式需要代理对象和目标对象实现一样的接口。 优点&#xff1a;可以在不修改目标对象的前提下扩展目标对象的功能。 缺点&#xff1a; 1.冗余。由于代理对象要实现与目标对象一致的接口,会产生过多的代理类。 2. 不易维护。一旦接口增加方法&#xff0c;目标…

桂林电子科技大学计算机工程学院、广西北部湾大学计信学院莅临泰迪智能科技参观交流

5月18日&#xff0c;桂林电子科技大学计算机工程学院副院长刘利民、副书记杨美娜、毕业班辅导员黄秀娟、广西北部湾大学计信学院院长助理刘秀平莅临广东泰迪智能科技股份有限公司产教融合实训基地参观交流。泰迪智能科技副总经理施兴、广西分公司郑廷和、梁霜、培训业务部孙学镂…

Mysql8.0离线安装 centos

Mysql8.0离线安装 centos 上传mysql安装包并解压 tar xvf mysql-8.0.37-1.el7.x86_64.rpm-bundle.tar运行安装对应的rpm包&#xff0c;按照一下顺序 rpm -ivh mysql-community-common-8.0.37-1.el7.x86_64.rpm rpm -ivh mysql-community-client-plugins-8.0.37-1.el7.x86_64.rp…

班组管理新篇章:打造高效沟通机制,助推团队协同发展

班组作为组织的基本单位&#xff0c;其沟通的顺畅与否直接关系到整个组织的运行效率和团队的凝聚力。建立健全的班组管理沟通机制&#xff0c;不仅是提升工作效率的关键&#xff0c;更是推动团队持续发展的核心动力。那么&#xff0c;如何建立健全的班组管理沟通机制呢&#xf…

LeetCode题练习与总结:从前序与中序遍历序列构造二叉树--105

一、题目描述 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,nul…

一图看懂 | 蓝卓医化行业解决方案

随着“创新药”首次出现在政府工作报告中&#xff0c;医药工业各个细分赛道都迎来了关键突破期&#xff0c;其中化学药品制剂作为所有药品中数量、品种最多的类别&#xff0c;也是居民日常生活中使用最广泛的类别&#xff0c;推动医药化工行业数字化能力&#xff0c;对于发展新…

解决docker中container运行闪退终止的问题

在运行bindmount-test时&#xff0c;点击完运行按钮后闪退结束运行。 第一步查看log日志&#xff1a; 2024-05-18 23:46:18 Error: Cannot find module /app/nodemon 2024-05-18 23:46:18 at Function.Module._resolveFilename (internal/modules/cjs/loader.js:668:15) …

pip如何快速install packet

1、在后面加-i https://mirrors.aliyun.com//pypi//simple或https://pypi.tuna.tsinghua.edu.cn/simple pip install numpy -i https://mirrors.aliyun.com//pypi//simplepip install numpy1.21.0 -i https://pypi.tuna.tsinghua.edu.cn/simple2、需要注意的是&#xff0c;如果…

k8s 声明式资源管理

一、资源配置清单的管理 1.1 查看资源配置清单 声明式管理方法&#xff1a; 1.适合于对资源的修改操作 2.声明式资源管理方法依赖于资源配置清单文件对资源进行管理 资源配置清单文件有两种格式&#xff1a;yaml&#xff08;人性化&#xff0c;易读&#xff09;&#xff0c;j…

实例展示vue单元测试及难题解惑

通过生动详实的例子带你排遍vue单元测试过程中的所有疑惑与难题。 技术栈&#xff1a;jest、vue-test-utils。 共四个部分&#xff1a;运行时、Mock、Stub、Configuring和CLI。 运行时 在跑测试用例时&#xff0c;大家的第一个绊脚石肯定是各种undifned报错。 解决这些报错…