【Mysql数据库从0到1】-入门基础篇--用户与权限管理

news2024/10/6 18:20:42

【Mysql数据库从0到1】-入门基础篇--用户与权限管理

  • 🔻一、Mysql 用户管理
      • 1.1 🍃 Mysql服务器登录
      • 1.2 🍃 用户创建
      • 1.3 🍃 用户修改
      • 1.4 🍃 用户删除
      • 1.5 🍃 用户密码修改
      • 1.6 🍃 用户密码管理
  • 🔻二、Mysql 权限管理
      • 2.1 🍃 mysql数据库权限列表
      • 2.2 🍃 数据库授权原则
      • 2.3 🍃 数据库授权
      • 2.4 🍃 数据库查看权限
      • 2.5 🍃 数据库收回权限
      • 2.6 🍃 数据库权限表
      • 2.7 🍃 数据库访问控制
    • 🔻三、总结—温故知新

🔻一、Mysql 用户管理

Mysql 用户分为root用户和普通用户,其中root用户是数据库超级管理员,拥有所有权限(创建、删除、修改密码、授权等管理权限),普通用户只拥有被授予的权限。

Mysql数据库的安全性通过账户管理来保障。

1.1 🍃 Mysql服务器登录

🍀 简单使用

[root@db-server ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.32 MySQL Community Server - GPL

Copyright (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> use test01;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from tab1;
+------+--------+-------+
| id   | name   | class |
+------+--------+-------+
| 1001 | 曹操   | 1|
| 1002 | 张飞   | 1|
| 1003 | 项羽   | 3|
| 1004 | 刘备   | 2|
+------+--------+-------+
4 rows in set (0.00 sec)

mysql> 

🍀 复杂使用

#### mysql -h hostname|hostIP -P port -u username -p DatabaseName -e "sql语句";

[root@db-server ~]# mysql -h localhost -P 3306 -p test01 -e "select * from tab1";
Enter password: 
+------+--------+-------+
| id   | name   | class |
+------+--------+-------+
| 1001 | 曹操   | 1|
| 1002 | 张飞   | 1|
| 1003 | 项羽   | 3|
| 1004 | 刘备   | 2|
+------+--------+-------+
[root@db-server ~]# 

1.2 🍃 用户创建

推荐使用create user命令创建用户,Mysql 8.0 版本移除了password加密方法,不再推荐使用insertuser表直接添加用户。

创建用户时,必须拥有 create user 权限,新创建的用户只有登录权限。

#####语法#####
create user '用户名'@'用户地址' identified by '密码';

mysql> create user  liubei identified by 'Liubei@123456';   #默认host是 %
Query OK, 0 rows affected (0.01 sec)

####指定host创建用户####
mysql> create user  'liubei'@'localhost' identified by 'Liubei@123456';
Query OK, 0 rows affected (0.00 sec)
mysql> select host ,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | liubei           |
| %         | root             |
| %         | zyl              |
| localhost | liubei           |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
+-----------+------------------+
7 rows in set (0.00 sec)

mysql> 

用户名以username@hostname格式跟在create user子句之后。表user以host 和user为共同主键,可以创建同名用户(如:liubei)。

####新创建的用户只有登录权限####
mysql> show grants;
+--------------------------------------------+
| Grants for liubei@localhost                |
+--------------------------------------------+
| GRANT USAGE ON *.* TO `liubei`@`localhost` |
+--------------------------------------------+
1 row in set (0.00 sec)

mysql> 

1.3 🍃 用户修改

#####语法#####
update 表名 set user='新用户名' where user='旧用户名' and host='用户地址';

mysql> update mysql.user set user='liubei01' where user='liubei' and host='localhost';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;    ###修改之后需要flush privileges 刷新权限。
Query OK, 0 rows affected (0.01 sec)

mysql> 

在这里插入图片描述

1.4 🍃 用户删除

mysql数据库可以使用drop user 语句删除普通用户,也可在mysql.user表中删除用户。

💦 方式一、使用drop删除(推荐)

用户必须具备drop user权限,才能使用drop删除,可以同时删除多个用户,用户之间用逗号隔开:

####语法####
drop user 用户名[,用户名2] [,用户名3]...;
drop user '用户名'@'用户地址'

mysql> drop user liubei;  ###默认删除host 为%用户
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;  ###删除之后需要flush privileges 刷新权限。
Query OK, 0 rows affected (0.00 sec)

mysql> 

💦 方式二、使用delete删除(不推荐)

使用delete删除 ,会有残留信息,而drop user命令会删除用户及其对应权限,mysql.usermysql.db对应记录都会删除。

####语法####
delete from 表名 where user='用户名' and host='用户地址';

mysql> delete from mysql.user where user='liubei01' and host='loaclhost';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;  ###删除之后需要flush privileges 刷新权限。
Query OK, 0 rows affected (0.00 sec)

mysql> 

1.5 🍃 用户密码修改

⛳ 修改当前用户密码

查看当前登录mysql用户:

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

mysql> 

适用于root用户修改自己密码,其他普通用户登录修改自己密码。

root用户具有数据库最高权限,所以必须保证root用户密码安全,推荐使用alter user 修改密码,也可使用set 语句修改,Mysql 8.0 版本移除了PASSWORD加密方法,不再推荐使用update语句直接操作user表修改密码(authentication_string 字段)。

 select host ,user ,authentication_string from user;  

在这里插入图片描述

💦 方式一、使用alter user修改当前用户密码

####语法####
alter user user() identified by '新密码';

mysql> alter user user() identified by 'Zyl@123456'; ###当前root用户登录
Query OK, 0 rows affected (0.01 sec)

mysql> 

💦 方式二、使用set语句修改当前用户密码

####语法####
set password='新密码';

mysql> set password='Zyl@123456';  ###当前root用户登录
Query OK, 0 rows affected (0.01 sec)

mysql> 

⛳修改其他普通用户密码

其他用户密码,可以通过root用户修改,还可自己修改,同样使用alter user 修改密码,或者使用set 语句修改。

💦 方式一、使用alter user修改普通用户密码

####语法####
alter user 用户名@'用户地址' identified by '新密码';

mysql> alter user liubei01@'localhost' identified by 'Liubei@123456'; ###修改用户liubei01密码
Query OK, 0 rows affected (0.00 sec)

mysql> 

💦 方式二、使用set语句修改普通用户密码

####语法####
set password for '用户名'@'用户地址' ='新密码';

mysql> set password for 'liubei01'@'localhost' ='Liubei@123456';  ###修改用户liubei01密码
Query OK, 0 rows affected (0.01 sec)

mysql> 

💦 方式三、使用update语句修改普通用户密码

适用于Mysql 5.7 ,在Mysql 8.0中不再适用(会报错),Mysql 8.0 版本移除了password加密方法。

####语法#### 
update mysql.user set authentication_string =PASSWORD("新密码") where user ='用户名' and host='主机名';

mysql> update mysql.user set authentication_string =PASSWORD("Liubei@123456") where user ='liubei01' and host='localhost';

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 '("Liubei@123456") where user ='liubei01' and host='localhost'' at line 1
mysql> 

1.6 🍃 用户密码管理

mysql密码管理只针对使用mysql授权插件的账号,插件有(mysql_native_password、sha256_password、caching_sha2_password)。

⛳ 密码过期—要求定期修改密码

密码过期策略可以是全局的,也可单独设置账号过期策略。过期策略可手动设置,也可建立自动过期策略。

💦 方式一、手动设置密码过期策略立即过期—某个账户

使用 alter user 用户名 password EXPIRE语句设置,用户可以正常登录,但无法查询,只有设置新密码后才能正常使用。

####语法####
alter user 用户名@'用户地址' password EXPIRE;  
alter user liubei01@'localhost' password EXPIRE;

mysql> alter user liubei01@'localhost' password EXPIRE; ###手动设置liubei01用户密码过期
Query OK, 0 rows affected (0.00 sec)

mysql> 

在这里插入图片描述

💦 方式二、手动设置密码过期策略—全局

如果密码使用时间大于允许使用的时间,服务器会自动设置过期。

mysql 使用default_password_lifetime 系统变量建立全局密码过期策略。默认值为0–表示禁用密码过期,值为N—表示允许的密码生存周期,密码需要每隔N天修改。

🌿 1、使用sql语句更改default_password_lifetime 值,并持久化

 ## 建立全局密码过期策略,每隔180天过期
 
mysql> set persist default_password_lifetime = 180;  
Query OK, 0 rows affected (0.00 sec)

mysql> 

🌿 2、配置my.cnf文件

[mysqld]

## 建立全局密码过期策略,每隔180天过期 
persist default_password_lifetime = 180

💦 方式三、手动设置密码过期策略—指定时间过期

数据库用户账号可以沿用全局密码过期策略,也可单独设置,在create user 或者alter user 语句上加上PASSWORD EXPIRE 选项即可实现单独设置策略。

🍀 1、设置180天过期

#####语法#####
create user '用户名'@'用户地址' identified by '密码' PASSWORD EXPIRE interval 过期时间 day;

mysql> create user 'liubei02'@'localhost' identified by 'Liubei@123456' PASSWORD EXPIRE interval 180 day;
Query OK, 0 rows affected (0.00 sec)

mysql> 

#####语法#####
alter user '用户名'@'用户地址' PASSWORD EXPIRE interval 过期时间 day;

mysql> alter user 'liubei01'@'localhost' PASSWORD EXPIRE interval 180 day;
Query OK, 0 rows affected (0.00 sec)

mysql> 

🍀 2、设置永不过期

#####语法#####
create user '用户名'@'用户地址' identified by '密码' PASSWORD EXPIRE never;

mysql> create user 'liubei03'@'localhost' identified by 'Liubei@123456' PASSWORD EXPIRE never;
Query OK, 0 rows affected (0.00 sec)

mysql> 

#####语法#####
alter user '用户名'@'主机名' PASSWORD EXPIRE never;

mysql> alter user 'liubei03'@'localhost' PASSWORD EXPIRE never;
Query OK, 0 rows affected (0.00 sec)

mysql> 

🍀 3、沿用全局密码过期策略

#####语法#####
create user '用户名'@'用户地址' identified by '密码' PASSWORD EXPIRE default;

mysql> create user 'liubei04'@'localhost' identified by 'Liubei@123456' PASSWORD EXPIRE default;
Query OK, 0 rows affected (0.00 sec)


#####语法#####
alter user '用户名'@'用户地址' PASSWORD EXPIRE default;

mysql> alter user 'liubei04'@'localhost' PASSWORD EXPIRE default;
Query OK, 0 rows affected (0.00 sec)

mysql> 

⛳ 密码重用限制—不允许使用旧密码

重用策略基于密码的更改数量和使用时间,可以是全局的,也可以是单独的,mysql使用password_historypassword_reuse_interval 系统变量设置密码重用策略,可以在my.cnf 中配置维护,也可使用sql语句改变变量的值并持久化。

  • 如果账号密码限制基于密码的更改数量(password_history):新密码则不能从最近使用过的密码中选择。如:密码更改数量值为3,则新密码不能与最近3个相同。
  • 如果账号密码限制基于密码的使用时间(password_reuse_interval):新密码不能从归定时间选择,如:设置密码重用周期为180天,则新密码不能与最近180天内使用过的密码相同。

💦 方式一、手动设置密码重用策略—全局

🌿 1、使用sql语句

#####语法 不能使用最近5个使用过的密码#####
set persist password_history=数量值

mysql> set persist password_history=5;
Query OK, 0 rows affected (0.00 sec)

#####语法 不能使用最近180天使用过的密码#####
set password_reuse_interval=数量值

mysql> set password_reuse_interval=180;
Query OK, 0 rows affected (0.00 sec)

mysql> 

🌿 2、配置my.cnf文件

[mysqld]

## 不能使用最近5个使用过的密码
password_history=5

## 不能使用最近180天使用过的密码
password_reuse_interval=180

💦 方式二、手动设置密码重用策略—单独设置

#####语法 不能使用最近5个使用过的密码#####
create user '用户名'@'用户地址' identified by '密码' PASSWORD history 5;

mysql> create user 'liubei04'@'localhost' identified by 'Liubei@123456' PASSWORD history 5;
Query OK, 0 rows affected (0.00 sec)

#####语法 不能使用最近5个使用过的密码#####
mysql> alter user 'liubei04'@'localhost' PASSWORD history 5;
Query OK, 0 rows affected (0.00 sec)


#####语法 不能使用最近180天使用过的密码#####
create user '用户名'@'用户地址' identified by '密码' PASSWORD reuse inteval 时间值 day;

mysql> create user 'liubei04'@'localhost' identified by 'Liubei@123456' PASSWORD reuse interval 180 day;
Query OK, 0 rows affected (0.00 sec)

#####语法 不能使用最近180天使用过的密码#####
alter user 用户名'@'主机名'  PASSWORD reuse inteval 时间值 day;

mysql> alter user 'liubei04'@'localhost' PASSWORD reuse interval 180 day;
Query OK, 0 rows affected (0.00 sec)

⛳ 密码强度评估—要求使用高强度密码

查看密码强度相关的配置

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> 

validate_password.check_user_name=ON----检查密码与用户名

validate_password.policy----​用于检查密码 的字典文件的路径名

validate_password.length=8— 密码长度

validate_password.mixed_case_count=1----必须包含1个大写和1个小写

validate_password.number_count=1----必须包含1个数字

validate_password.special_char_count=1----必须包含1个特殊字符

🔻二、Mysql 权限管理

权限即是允许你做的事情,不可以越界,如只有本机登录权限,就不能从其他设备登录,只有select 权限,就不能updateinsert

2.1 🍃 mysql数据库权限列表

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 role                  | Server Admin                          | To create new roles                                   |
| 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                  |
| Drop role                    | Server Admin                          | To drop roles                                         |
| 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                             |
...................................................

💦 mysql 权限分布:

权限分布可设置权限
表级权限Select、 Insert、 Update、 Delete、Create 、Drop、Grant、 References、 lndex、 Alter
列级权限Select、 Insert、 Update、References
过程权限Execute、Alter Routine、Grant

2.2 🍃 数据库授权原则

  • 💦 只赋予满足使用的最小权限,如某用户只需select权限,就不授予其他权限。
  • 💦 创建用户时,指定登录主机,一般限制指定ip 或者ip段
  • 💦 为用户设置满足密码复杂度的密码。
  • 💦 定期清理不使用的用户,回收权限或删除用户。

2.3 🍃 数据库授权

用户是数据库的使用者,可以给用户不同权限,控制对数据库的访问,保障数据库安全。

--- with grant option,表示该用户可以将自己的权限授权给别人。

##授权命令1##
grant 权限1,权限2,权限3,权限n on 数据库名称.表名 to '用户名'@'用户地址' with grant option;

##授权命令2 ##
grant all privileges on *.* to '用户名'@'用户地址' with grant option;

mysql> grant select ,update on test01.* to 'liubei'@'%';  ##授权liubei账号select ,update权限

Query OK, 0 rows affected (0.00 sec)

mysql> show grants;   ##查看当前登录用户权限
+----------------------------------------------------+
| Grants for liubei@%                                |
+----------------------------------------------------+
| GRANT USAGE ON *.* TO `liubei`@`%`                 |
| GRANT SELECT, UPDATE ON `test01`.* TO `liubei`@`%` |
+----------------------------------------------------+
2 rows in set (0.00 sec)

mysql> 

可以看到没授权liubei账户delete权限,删除数据报错。

在这里插入图片描述

2.4 🍃 数据库查看权限

  • 查看当前用户权限:
mysql> show grants;
+----------------------------------------------------+
| Grants for liubei@%                                |
+----------------------------------------------------+
| GRANT USAGE ON *.* TO `liubei`@`%`                 |
| GRANT SELECT, UPDATE ON `test01`.* TO `liubei`@`%` |
+----------------------------------------------------+
2 rows in set (0.00 sec)

或
mysql> show grants for current_user;
+----------------------------------------------------+
| Grants for liubei@%                                |
+----------------------------------------------------+
| GRANT USAGE ON *.* TO `liubei`@`%`                 |
| GRANT SELECT, UPDATE ON `test01`.* TO `liubei`@`%` |
+----------------------------------------------------+
2 rows in set (0.00 sec)

或
mysql> show grants for current_user();
+----------------------------------------------------+
| Grants for liubei@%                                |
+----------------------------------------------------+
| GRANT USAGE ON *.* TO `liubei`@`%`                 |
| GRANT SELECT, UPDATE ON `test01`.* TO `liubei`@`%` |
+----------------------------------------------------+
2 rows in set (0.00 sec)
mysql>
  • 查看某用户全局权限:
mysql> show grants for 'liubei'@'%';
+----------------------------------------------------+
| Grants for liubei@%                                |
+----------------------------------------------------+
| GRANT USAGE ON *.* TO `liubei`@`%`                 |
| GRANT SELECT, UPDATE ON `test01`.* TO `liubei`@`%` |
+----------------------------------------------------+
2 rows in set (0.00 sec)

mysql> 

2.5 🍃 数据库收回权限

mysql 使用revoke 语句取消用户的某些权限,收回用户不必要的权限,可在一定程度上保证数据库的安全性。

从user表删除用户之前,应先收回想赢用户的权限。

#####语法1 ####
revoke 权限1,权限2,权限n on 数据库名.表名 from `用户名`@`用户地址`;

#####语法2 ####
revoke all privileges on *.* from '用户名'@'用户地址';

mysql> revoke SELECT, UPDATE ON test01.* from `liubei`@`%`;
Query OK, 0 rows affected (0.00 sec)

mysql> revoke all privileges on *.* from `liubei`@`%`;
Query OK, 0 rows affected (0.01 sec)
mysql> 

2.6 🍃 数据库权限表

mysql 服务器通过权限表来控制用户对数据库的访问,权限表存放于mysql表中,其中最重要的是user表,db表,table_priv表、column_priv 和proc_priv 等,启动mysql服务时,会将这些表中权限信息读入内存。

2.7 🍃 数据库访问控制

当mysql允许一个用户执行各种操作时,它将首先核实该用户向MySQL服务器发送的连接请求,然后确认用户的操作请求是否被允许。这个过程称为mysql中的访问控制过程。

mysql的访问控制分为两个阶段: 连接核实阶段和 请求核实阶段。
在这里插入图片描述

🔻三、总结—温故知新

❓ Mysql 数据库用户创建、修改、删除、密码修改
❓ Mysql数据库权限查看、收回、及授权
❓ Mysql数据库权限表及访问控制

👈【上一篇】
💖The End💖 点点关注,收藏不迷路💖
【下一篇】👉

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

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

相关文章

深入浅出C语言—【函数】上

目录 1.函数的概念 2.C语言函数的分类 2.1 库函数 2.1.1 strcpy库函数举例学习方式 2.1.2 库函数扩展知识 2.2 自定义函数 2.2.1求两个整数中的较大值 3. 函数的参数 3.1 实际参数(实参) 3.2 形式参数(形参) 4. 函数的…

Linux安全之账户安全

账户安全 Linux用户账户概述: 用户账号 超级用户root系统用户普通用户组账号 基本组(私有组----每一个私有组里面只有一个用户)附加组(公共组----每一个用户都可以加入到这个组里面) UID和GID: UID&…

【minio】Ubuntu安装MinIO文件服务器并通过C++上传下载

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍MinIO的使用。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习知识,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路&…

pandas速学-DataFrame

一、理解DataFrame 他是一个表格结构:DataFrame 是一个表格型的数据结构 他是有序的,不同值类型:它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。 他可以被看做一个由series组成的…

chatgpt赋能python:PythonIP匹配

Python IP匹配 随着互联网的不断发展,IP地址已成为人们最常使用的一种网络标识。在网络分析和开发中,经常会用到IP地址的相关操作,如IP地址的匹配。Python作为一种性能比较好的语言,也可以很好地完成IP地址的匹配工作。本文将介绍…

【学习日记2023.6.4】之 Linux入门

1. Linux简介 1.1 主流操作系统 不同领域的主流操作系统,主要分为以下这么几类: 桌面操作系统、服务器操作系统、移动设备操作系统、嵌入式操作系统。接下来,这几个领域中,代表性的操作系统是那些? 1). 桌面操作系统 操作系统特…

数据链路层:虚拟局域网(VLAN)

数据链路层:虚拟局域网(VLAN) 笔记来源: 湖科大教书匠:虚拟局域网(VLAN)概述 湖科大教书匠:虚拟局域网(VLAN)实现机制 声明:该学习笔记来自湖科大…

mybatis源码学习之mybatis执行流程分析

Mybatis执行流程分析 mybatis全局配置文件 mybatis全局配置文件中涉及的标签如下图所示 配置文件解析 public static void main(String[] args) throws IOException {// 读取配置文件InputStream is Resources.getResourceAsStream("org/apache/ibatis/builder/Mappe…

K8S部署Hadoop集群(七)

Hadoop是Apache软件基金会下一个开源分布式计算平台,以HDFS(Hadoop Distributed File System)、MapReduce(Hadoop2.0加入了YARN,Yarn是资源调度框架,能够细粒度的管理和调度任务,还能够支持其他…

UnityVR--EventManager--事件中心3

前期准备 接上一篇,来实现事件中心的管理:使用定义好的事件中心管理器EventManager,实现鼠标拖拽、角色移动、发射子弹等几个功能。 1. InputSystem的准备:需要设置输入设备并关联事件,比如监听键盘输入"WASD&quo…

自制操作系统第三站

修改haribote.nas,界面显示 ; haribote.nas ; TAB4ORG 0xc200MOV AL, 0x13MOV AH, 0x00INT 0x10fin:HLTJMP fin编译运行

MySQL存储引擎概述

前言:MySQL语句执行流程为:SQL语句→查询缓存→解析器→优化器→执行器(执行器会调用执行引擎API);人们把“连接管理、查询缓存、语法解析、查询优化”这些并不涉及真实数据存储的功能划分为MySQL server的功能&#x…

TiDB亿级数据亚秒响应查询整体架构

目录 1 TiDB的优势2 TiDB的组件2.1 TiDB Server2.2 PD (Placement Driver) Server2.3 TiKV Server2.4 TiSpark2.5 TiFlash 3 TiKV整体架构3.1 Region分裂与合并3.2 Region调度3.3 分布式事务 4 高可用架构4.1 TiDB高可用4.2 PD高可用4.3 TiKV高可用 5 应用场景5.1 MySQL分片与合…

在地质区划图上绘制伪震中

import numpy as np import matplotlib.pyplot as plt #matplotlib inline from matplotlib import image from matplotlib import pyplot as plt import cv2 # 解析文件,按空格分割字段,得到一个浮点数字类型的矩阵 def loadDataSet(fileName): dataMa…

chatgpt赋能python:Python办公自动化:优化SEO工作效率的关键

Python办公自动化:优化SEO工作效率的关键 随着互联网的不断发展,SEO已经成为了许多企业在网络中展示自己的必备手段。然而,SEO工作需要大量重复性、繁琐的操作,如关键词排名、竞争对手分析、数据收集等,这些工作占据了…

一文说透ES6中的箭头函数表达式

一 总述 ​箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或new. target。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。 二 详细 1 1个或多个参数 (param1, par…

【数据结构每日一题】队列——用栈实现队列

[数据结构习题]队列——用栈实现队列 👉知识点导航💎:【数据结构】栈和队列 👉[王道数据结构]习题导航💎: p a g e 85.3 page85.3 page85.3 本节为栈和队列的综合练习题 题目描述: &#x1f…

【AI绘图】五、stable diffussion模型的介绍与使用

1. 下载模型 主流模型下载网站: 1)Hugging face 是一个专注于构建、训练和部署先进开源机器学习模型的网站: https://huggingface.co/ 2)Civitai 是一个专为 Stable Diffusion AI 艺术模型设计的网站: https://civi…

Python数据分析script必备知识(四)

Python数据分析script必备知识(四) 1.保留最近N天的日志 1.批量创建多个文件 首先,为演示方便,在指定文件夹目录下用下面代码批量新建多个log文件 """ 批量创建多个文件 """ import os file_path = os.path.join(os.getcwd(),LOG) # 如果不…

「详细教程」使用git将本地项目上传至Github仓库(MacOS为例)

前言:最近需要将自己的代码开源至自己的Github仓库,然而发现并没有一键上传文件夹的选项,于是参考现有教程进行了实践,成功✌️以下是详细步骤。 Tips:在文章录用之后,小伙伴们可以选择将自己的代码开源&am…