当前位置: 首页 > news >正文

培训第二十一天(mysql用户创建与授权、角色创建)

上午

1、环境准备

 [root@mysql ~]# rm -rf /etc/my.cnf    //清空/etc目录下的my.cnf[root@mysql ~]# yum -y remove mariadb   //移除mariadb[root@mysql ~]# find / -name "*mysql*" -exec rm -rf {} \;    //删除mysql所有遗留文件

2、安装mysql绿包

 [root@mysql ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar [root@mysql ~]# lsmysql-8.0.33-linux-glibc2.12-x86_64.tarmysql-8.0.33-linux-glibc2.12-x86_64.tar.xzmysql-router-8.0.33-linux-glibc2.12-x86_64.tar.xzmysql-test-8.0.33-linux-glibc2.12-x86_64.tar.xz[root@mysql ~]# tar -xf  mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz [root@mysql ~]# lsmysql-8.0.33-linux-glibc2.12-x86_64mysql-8.0.33-linux-glibc2.12-x86_64.tarmysql-8.0.33-linux-glibc2.12-x86_64.tar.xzmysql-router-8.0.33-linux-glibc2.12-x86_64.tar.xzmysql-test-8.0.33-linux-glibc2.12-x86_64.tar.xz[root@mysql ~]# cd mysql-8.0.33-linux-glibc2.12-x86_64/[root@mysql mysql-8.0.33-linux-glibc2.12-x86_64]# lsbin  docs  include  lib  LICENSE  man  README  share  support-files

3、配置mysql工作环境

 [root@mysql ~]# vim support-......     //查看配置文件/basedir[root@mysql ~]# cp -r mysql-8.0.33-linux-glibc2.12-x86_64  /usr/local/mysql/   //将项目文件移动到/usr/local/mysql[root@mysql ~]# tree /usr/local/mysql[root@mysql ~]# yum list installed | grep libaio   //查看libaio是否存在[root@mysql ~]# echo $?   //查看上一命令是否执行成功[root@mysql ~]# id mysql   //查看是否有mysql用户useradd -r -s /sbin/nologin mysql   //如果没有mysql用户,创建用户[root@mysql ~]# mkdir /usr/local/mysql/mysql-files        //在/usr/local/mysql目录下创建mysql-files目录[root@mysql ~]# chown mysql:mysql /usr/local/mysql/mysql-files/     //修改mysql-files所属的组和属主都是mysql[root@mysql ~]# chmod 750 /usr/local/mysql/mysql-files/      //修改mysql-files的权限为750[root@mysql ~]# ll /usr/local/mysql/总用量 292drwxr-xr-x.  2 root  root    4096 8月   5 09:55 bindrwxr-xr-x.  2 root  root      38 8月   5 09:55 docsdrwxr-xr-x.  3 root  root     282 8月   5 09:55 includedrwxr-xr-x.  6 root  root     201 8月   5 09:55 lib-rw-r--r--.  1 root  root  284945 8月   5 09:55 LICENSEdrwxr-xr-x.  4 root  root      30 8月   5 09:55 mandrwxr-x---.  2 mysql mysql      6 8月   5 09:56 mysql-files-rw-r--r--.  1 root  root     666 8月   5 09:55 READMEdrwxr-xr-x. 28 root  root    4096 8月   5 09:55 sharedrwxr-xr-x.  2 root  root      77 8月   5 09:55 support-files[root@mysql ~]# cd /usr/local/mysql/bin/     //cd到安装目录[root@mysql bin]# lsibd2sdi            mysqlcheck             mysqlpumpinnochecksum       mysql_config           mysql_secure_installationlz4_decompress     mysql_config_editor    mysqlshowmyisamchk          mysqld                 mysqlslapmyisam_ftdump      mysqld-debug           mysql_ssl_rsa_setupmyisamlog          mysqld_multi           mysql_tzinfo_to_sqlmyisampack         mysqld_safe            mysql_upgrademy_print_defaults  mysqldump              perrormysql              mysqldumpslow          zlib_decompressmysqladmin         mysqlimportmysqlbinlog        mysql_migrate_keyring[root@mysql bin]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/    //初始化数据库

 [root@mysql ~]# ls /usr/local/mysql/     //查看是否生成了data目录bin   docs     lib      man          README  support-filesdata  include  LICENSE  mysql-files  share[root@mysql ~]# /usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data    //创建安全加密连接[root@mysql ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql8    //将mysql.server文件放到/etc/init.d/目录下,方便启动mysql服务 service mysql start[root@mysql ~]# service mysql8 start    //启动mysql服务Starting MySQL.Logging to '/usr/local/mysql/data/mysql.err'........ SUCCESS![root@mysql ~]# systemctl stop firewalld   [root@mysql ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@mysql ~]# /usr/local/mysql/bin/mysql -uroot -p    //进入mysql中Enter password: Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 9Server version: 8.0.33Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> 

mysql -hip地址 -p3306 -uroot -p(远程连接使用)

4、mysql基础命令

(1)修改密码
 mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root@123456';   
(2)授权远程登录
 mysql> create user 'root'@'%' identified with mysql_native_password by 'Root@123456';    //创建root远程登录
(3)刷新
 mysql> flush privileges;     //刷新操作
(4)查看表结构
 mysql> desc mysql.user;   //查看表结构
(5)查看用户与主机关系
 mysql> select host,user from mysql.user;   //查看用户与主机对应关系

5、mysql操作命令

(1)创建li用户
 mysql> create user 'li'@'%' identified by 'Root@123456';    //创建用户li,并且可以在所有主机连接mysql
(2)为li用户授权
 mysql> grant all on *.* to 'li';     //为li用户授予所有数据库的所有表格的所有权限Query OK, 0 rows affected (0.01 sec)
(3)使用li用户连接mysql
 [root@mysql ~]# /usr/local/mysql/bin/mysql -uli -pRoot@123456    //使用li用户连接mysql
(4)查看数据库
 mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || sys                |+--------------------+4 rows in set (0.00 sec)
(5)创建tset数据库
 mysql> create database if not exists test charset utf8;   //创建一个名为test的数据库Query OK, 1 row affected, 1 warning (0.01 sec)
(6)使用数据库
 mysql> use test;    //使用test数据库Database changed
(7)创建user表
 mysql> create table `user` (            //创建user表`id` int NOT NULL,`username` varchar(45) NOT NULL,`password` varchar(45) NOT NULL,primary key ('id'));
(8)向表中插入数据
 mysql> insert into user values(1,"zhangsan","123"),(2,"lisi","456"),(3,"wangwu","789"),(4,"zhaoliu","aaa");    //为user表插入数据Query OK, 4 rows affected (0.03 sec)Records: 4  Duplicates: 0  Warnings: 0
(9)查看表内容
 mysql> select * from user;     //查看user表内容

 [root@mysql ~]# ln -s  /usr/local/mysql/bin/mysql /usr/bin      //创建软链接

下午

1、脚本安装mysql

 [root@mysql ~]# vim mysql.sh#!/bin/bashcp $1 /usr/local/mysql/mkdir /usr/local/mysql/mysql-files/grep /mysql/ /etc/passwordif [ $? -ne 0 ];thenuseradd -r -s /sbin/nologin mysqlfichown mysql:mysql /usr/local/mysql/mysql-fileschmod 750 /usr/local/mysql/mysql-files# init/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/# password​# servicecp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql8# start serverservice mysql8 start

2、mysql命令回顾

(1)远程登录前提条件是mysql.user表中的host属性为%,如果是localhost就不允许远程登录,

 update mysql.user set host=“%” where user=“root”;    //修改表内容flush privileges;    //刷新

(2)远程管理,可以使用图形化工具,sqlyog,navicat,掌握命令工具,客户端工具mysql

(3)mysql -h10.0.0.3 -P3306 -uli -pRoot@123456

-h主机ip或者是域名如果是localhost或者是127.0.0.1可以省略
-P端口默认的是3306,如果是默认的,可以省略
-u用户名必须输入
-p密码可以不换行直接输入,也可以换行,不回显输入密码

创建用户

 create user 'li'@'%' identified by 'Root@123456';

给权限

 grant all on *.* to 'li';

创建库

 create database if not exists test;

创建表

 use test;create table user('id' int primary key,'username' varchar(45) not null,'password' varchar(45) not null);

添加数据

 inster into test.user values(1,"zhangsan","123"),(2,"lisi","456"),(3,"wangwu","789"),(4,"zhaoliu","aaa");

3、mysql用户权限设置

(1)创建lilaosi用户
 mysql> create user 'lilaosi'@'%' identified by  'Lilaosi@123456';    //添加lilaosi账号
(2)修改密码
 mysql> alter user 'lilaosi'@'%' identified by 'Lilaosi@123456';    //修改密码 
(3)查看用户与主机关系
 mysql> select host,user from mysql.user;  //查看mysql.user信息+-----------+------------------+| host      | user             |+-----------+------------------+| %         | li               || %         | lilaosi          || %         | root             || localhost | mysql.infoschema || localhost | mysql.session    || localhost | mysql.sys        || localhost | root             |+-----------+------------------+7 rows in set (0.00 sec)
(4)退出数据库
 mysql> quitBye
(5)使用lilaosi登录mysql(发现无任何权限)
 [root@mysql ~]# mysql -ulilaosi -pLilaosi@123456mysql> show databases;    //只有自己的权限+--------------------+| Database           |+--------------------+| information_schema || performance_schema |+--------------------+2 rows in set (0.04 sec)mysql> quitBye
(6)使用root用户为lilaosi用户赋予test数据库中所有表的所有权限
 [root@mysql ~]# mysql -uroot -pRoot@123456mysql> grant all on test.* to 'lilaosi';   //使用root账号为lilaosi账号添加test库中所有表的权限Query OK, 0 rows affected (0.00 sec)mysql> quitBye[root@mysql ~]# mysql -ulilaosi -pLilaosi@123456mysql> show databases;    //对test数据库有一定的权限+--------------------+| Database           |+--------------------+| information_schema || performance_schema || test               |+--------------------+3 rows in set (0.00 sec)(root没有给lilaosi mysql库的权限,所有lilaosi账户无法查看mysql库。)
(7)将system_user权限给root
 mysql> grant system_user on *.* to 'root';       //将system_user权限给root
(8)为aaa用户赋予查看test数据库user表的权限
 mysql> show grants for aaa;     //只有自己的权限+---------------------------------+| Grants for aaa@%                |+---------------------------------+| GRANT USAGE ON *.* TO `aaa`@`%` |+---------------------------------+1 row in set (0.00 sec)mysql> grant select on test.user to 'aaa';  //为aaa用户赋予test数据库user表的查看权限Query OK, 0 rows affected (0.00 sec)mysql> quitBye[root@mysql ~]# mysql -uaaa -p123mysql> select * from test.user;   //查看成功+----+----------+----------+| id | username | password |+----+----------+----------+|  1 | zhangsan | 123      ||  2 | lisi     | 456      ||  3 | wangwu   | 789      ||  4 | zhaoliu  | aaa      |+----+----------+----------+4 rows in set (0.00 sec)mysql> insert into user values(5,"ermazi","bbb");  //没有插入权限ERROR 1142 (42000): INSERT command denied to user 'aaa'@'localhost' for table 'user'mysql> update user set password="bbb" where username="zhaoliu";   //没有修改权限ERROR 1142 (42000): UPDATE command denied to user 'aaa'@'localhost' for table 'user'mysql> quitBye
(9)为aaa用户赋予test数据库user表插入权限
 ​[root@mysql ~]# mysql -uroot -pRoot@123456mysql> grant insert on test.user to 'aaa';  //赋予插入权限Query OK, 0 rows affected (0.01 sec)mysql> quitBye[root@mysql ~]# mysql -uaaa -p123mysql> insert into test.user values(5,"ermazi","bbb");    //插入成功Query OK, 1 row affected (0.01 sec)mysql> select * from test.user;+----+----------+----------+| id | username | password |+----+----------+----------+|  1 | zhangsan | 123      ||  2 | lisi     | 456      ||  3 | wangwu   | 789      ||  4 | zhaoliu  | aaa      ||  5 | ermazi   | bbb      |+----+----------+----------+5 rows in set (0.00 sec)mysql> update test.user set password='000' where username='ermazi';    //没有修改权限ERROR 1142 (42000): UPDATE command denied to user 'aaa'@'localhost' for table 'user'

4、命令练习

(1)创建三个账号,abc[abcd],ccc[a1b2c3],ddd[231343]
 mysql> create user 'abc'@'%' identified by 'abcd';Query OK, 0 rows affected (0.00 sec)mysql> create user 'ccc'@'%' identified by 'a1b2c3';Query OK, 0 rows affected (0.01 sec)mysql> create user 'ddd'@'%' identified by '231343';Query OK, 0 rows affected (0.00 sec)mysql> select host,user from mysql.user;+-----------+------------------+| host      | user             |+-----------+------------------+| %         | aaa              || %         | abc              || %         | ccc              || %         | ddd              || %         | li               || %         | lilaosi          || %         | root             || localhost | mysql.infoschema || localhost | mysql.session    || localhost | mysql.sys        || localhost | root             |+-----------+------------------+11 rows in set (0.00 sec)
(2)删除用户lilaosi
 删除lilaosi用户mysql> drop user 'lilaosi';Query OK, 0 rows affected (0.02 sec)mysql> select host,user from mysql.user;+-----------+------------------+| host      | user             |+-----------+------------------+| %         | aaa              || %         | abc              || %         | ccc              || %         | ddd              || %         | li               || %         | root             || localhost | mysql.infoschema || localhost | mysql.session    || localhost | mysql.sys        || localhost | root             |+-----------+------------------+10 rows in set (0.00 sec)
(3)aaa,ccc,ddd三个账户的密码修改为123
 mysql> alter user 'aaa'@'%' identified by '123';Query OK, 0 rows affected (0.00 sec)mysql> alter user 'ccc'@'%' identified by '123';Query OK, 0 rows affected (0.00 sec)mysql> alter user 'ddd'@'%' identified by '123';Query OK, 0 rows affected (0.01 sec)
(4)权限添加练习

(1)添加aaa账户,设置密码aaaa

 mysql> create user 'aaa'@'%' identified by 'aaaa';Query OK, 0 rows affected (0.01 sec)

(2)使用aaa账户访问mysql服务

 [root@mysql ~]# mysql -uaaa -paaaa

(3)查看test数据库发现没有权限

 mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || performance_schema |+--------------------+2 rows in set (0.00 sec)

(4)退出并使用root账户登录

 mysql> quitBye[root@mysql ~]# mysql -uroot -pRoot@123456

(5)为aaa账户添加查看test.user表的权限

 mysql> grant select on test.user to 'aaa';Query OK, 0 rows affected (0.00 sec)

(6)退出root,使用aaa账户登录

 mysql> quitBye[root@mysql ~]# mysql -uaaa -paaaa

(7)查看数据库,查看表,查看表内容,能够正常查看

 mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || performance_schema || test               |+--------------------+3 rows in set (0.00 sec)mysql> use test;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+----------------+| Tables_in_test |+----------------+| user           |+----------------+1 row in set (0.00 sec)mysql> select * from test.user;+----+----------+----------+| id | username | password |+----+----------+----------+|  1 | zhangsan | 123      ||  2 | lisi     | 456      ||  3 | wangwu   | 789      ||  4 | zhaoliu  | aaa      ||  5 | ermazi   | bbb      |+----+----------+----------+5 rows in set (0.00 sec)

(8)输入数据,没有权限

 mysql> inster into user values(6,"aaa","aaaa");ERROR 1142 (42000): INSERT command denied to user 'aaa'@'localhost' for table 'user'

(9)退出aaa使用root登录

 mysql> quitBye[root@mysql ~]# mysql -uroot -pRoot@123456

(10)为aaa添加insert权限

 mysql> grant insert on test.user to 'aaa';Query OK, 0 rows affected (0.00 sec)

(11)退出root使用aaa登录

 mysql> quitBye[root@mysql ~]# mysql -uaaa -paaaa

(12)使用aaa账户,想user表中添加一行新的数据

 mysql> insert into test.user values(6,"aaa","aaaa");Query OK, 1 row affected (0.01 sec)

(13)修改user表中一行的数据的password(密码)为111,没有update权限

 mysql> update test.user set password="111" where username='aaa';ERROR 1142 (42000): UPDATE command denied to user 'aaa'@'localhost' for table 'user'

(14)为aaa用户一次性添加delect,update权限

 mysql> grant delete,update on test.user to 'aaa';Query OK, 0 rows affected (0.00 sec)mysql> show grants for 'aaa';+--------------------------------------------------------------------+| Grants for aaa@%                                                   |+--------------------------------------------------------------------+| GRANT USAGE ON *.* TO `aaa`@`%`                                    || GRANT SELECT, INSERT, UPDATE, DELETE ON `test`.`user` TO `aaa`@`%` |+--------------------------------------------------------------------+2 rows in set (0.00 sec)

6、权限角色

(1)创建角色
 mysql> create role 'jingli';    //创建jingli角色Query OK, 0 rows affected (0.00 sec)mysql> create role 'yuangong';      //创建yonghu角色Query OK, 0 rows affected (0.00 sec)
(2)为角色赋予权限
 mysql> grant insert,delete,update,select on test.user to 'jingli';    //为jingli角色添加select,insert,delete,update权限Query OK, 0 rows affected (0.00 sec)mysql> show grants for 'jingli';      //查看jingli角色权限+-----------------------------------------------------------------------+| Grants for jingli@%                                                   |+-----------------------------------------------------------------------+| GRANT USAGE ON *.* TO `jingli`@`%`                                    || GRANT SELECT, INSERT, UPDATE, DELETE ON `test`.`user` TO `jingli`@`%` |+-----------------------------------------------------------------------+2 rows in set (0.00 sec)mysql> grant select,insert on test.user to 'yuangong';     //为yuangong添加select,insert权限Query OK, 0 rows affected (0.00 sec)mysql> show grants for 'yuangong';     //查看yonghu角色权限+---------------------------------------------------------+| Grants for yuangong@%                                   |+---------------------------------------------------------+| GRANT USAGE ON *.* TO `yuangong`@`%`                    || GRANT SELECT, INSERT ON `test`.`user` TO `yuangong`@`%` |+---------------------------------------------------------+2 rows in set (0.00 sec)mysql> select host,user from mysql.user;    //查看角色保存的表格+-----------+------------------+| host      | user             |+-----------+------------------+| %         | aaa              || %         | abc              || %         | ccc              || %         | ddd              || %         | jingli           || %         | li               || %         | root             || %         | yuangong         || localhost | mysql.infoschema || localhost | mysql.session    || localhost | mysql.sys        || localhost | root             |+-----------+------------------+12 rows in set (0.00 sec)
(3)用户授予角色权限
 mysql> grant jingli to 'ddd';          //将ddd用户授予jingli角色,拥有jingli权限Query OK, 0 rows affected (0.00 sec)mysql> show grants for ddd;           //查看权限授权+---------------------------------+| Grants for ddd@%                |+---------------------------------+| GRANT USAGE ON *.* TO `ddd`@`%` || GRANT `jingli`@`%` TO `ddd`@`%` |+---------------------------------+2 rows in set (0.00 sec)mysql> flush privileges;            //刷新权限Query OK, 0 rows affected (0.00 sec)
(4)删除角色权限
 mysql> revoke all on *.* from "yuangong";    //删除yuangong所有权限Query OK, 0 rows affected (0.00 sec)mysql> show grants for "yuangong";           //查看yuangong权限+---------------------------------------+| Grants for yuangong@%                 |+---------------------------------------+| GRANT USAGE ON *.* TO `yuangong`@`%`  |+---------------------------------------+1 row in set (0.00 sec)Query OK, 0 rows affected (0.00 sec)

7、角色练习

新增bbb和ccc两个用户,bbb需要增删改查权限,ccc需要新增与查看权限

 mysql> create user 'bbb'@'%' identified by 'bbb';    //创建bbb用户Query OK, 0 rows affected (0.01 sec)mysql> create user 'ccc'@'%' identified by 'ccc';    //创建ccc用户Query OK, 0 rows affected (0.01 sec)mysql> grant jingli to 'bbb';          //将bbb用户授予jingli角色,拥有jingli权限Query OK, 0 rows affected (0.00 sec)mysql> grant yuangong to 'ccc';       //将ccc用户授予yuangong角色,拥有yuangong权限Query OK, 0 rows affected (0.00 sec)mysql> show grants for bbb;           //查看权限授权+---------------------------------+| Grants for bbb@%                |+---------------------------------+| GRANT USAGE ON *.* TO `bbb`@`%` || GRANT `jingli`@`%` TO `bbb`@`%` |+---------------------------------+2 rows in set (0.00 sec)mysql> show grants for ccc;           //查看权限授权+-----------------------------------+| Grants for ccc@%                  |+-----------------------------------+| GRANT USAGE ON *.* TO `ccc`@`%`   || GRANT `yuangong`@`%` TO `ccc`@`%` |+-----------------------------------+2 rows in set (0.00 sec)mysql> flush privileges;            //刷新权限Query OK, 0 rows affected (0.00 sec)

相关文章:

培训第二十一天(mysql用户创建与授权、角色创建)

上午 1、环境准备 [rootmysql ~]# rm -rf /etc/my.cnf //清空/etc目录下的my.cnf[rootmysql ~]# yum -y remove mariadb //移除mariadb[rootmysql ~]# find / -name "*mysql*" -exec rm -rf {} \; //删除mysql所有遗留文件 2、安装mysql绿包 [rootmysql ~]…...

makefile基本语法

在编写复杂的程序项目时,Makefile 是一个非常有用的工具,它能自动化构建过程。以下是一些基本的 Makefile 语法介绍: 基本结构: target: dependenciescommandtarget:构建目标,通常是一个文件,如…...

白骑士的PyCharm教学实战项目篇 4.4 大数据处理与分析

系列目录 上一篇:白骑士的PyCharm教学实战项目篇 4.3 自动化测试与持续集成​​​​​​​ 随着数据量的爆炸性增长,大数据处理与分析成为现代数据科学的重要课题。PyCharm提供了强大的功能,可以帮助开发者高效地进行大数据环境的配置与连接…...

无人机之民用无人机用途分类篇

一、航拍无人机 用于航拍摄影和电影制作,提供空中视角的拍摄服务。可用于电影制作、广告拍摄、房地产销售等。 二、物流无人机 用于快递和货物运输,提高物流效率,可以到达传统配送方式难以覆盖的地区,在突发事件如自然灾害、疫…...

Android10 修改设备名称

A10和A12的设备名称修改是不同的,A10设备名称修改分好几个位置 修改wifi默认名称 在framework/base模块下 diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 9041a7c3a14..7a1e63688c4 100644 --- a/core/res/res/values/…...

go testing 包

Go语言的testing包提供了一套丰富的测试工具,用于编写和运行测试用例。以下是testing包中一些常用的函数和类型: func TestMain(m *testing.M): 这是一个特殊的函数,用于执行测试的主函数。如果定义了TestMain,那么在运行go test时…...

基于phpstudy的靶场搭建和github加速

微软商店下载 watt toolkit,然后在侧边栏选择网络加速,勾选 github,就可以快速访问 github 1、下载搭建 sqlilabs github 找到 sqlilabs 靶场,点击 code,下载 zip解压之后,整体移动到 phpstudy_pro 文件夹…...

【数据结构】Map与Set

前言 前两篇文章我们研究了二叉搜索树与哈希表的结构与特点,他们二者是Map与Set这两个接口实现的底层结构,他们利用了搜索树与哈希表查找效率高这一特点,是一种专门用来进行搜索操作的容器或数据结构。本篇文章就让我们一起来梳理这两个接口的…...

Flamingo: a Visual Language Model for Few-Shot Learning

发表时间:NeurIPS 2022 论文链接:https://proceedings.neurips.cc/paper_files/paper/2022/file/960a172bc7fbf0177ccccbb411a7d800-Paper-Conference.pdf 作者单位:DeepMind Motivation:仅使用少量注释示例可以快速适应新任务…...

flume性能调优

作者&#xff1a;南墨 1.Source性能调优 1.1 Spooldir Source 使用Spooldir Source采集日志数据时&#xff0c;若每行日志数据<100bp&#xff0c;可以通过将多行合并传输来提升传输性能 建议合并时根据数据长度来确定多少行合并为一个单位进行传输&#xff0c;合并后的长…...

mysql 字符串转数组

在 MySQL 中&#xff0c;可以使用内置的字符串函数 SUBSTRING_INDEX() 和 REPLACE() 来实现将字符串转换为数组。 首先&#xff0c;使用 REPLACE() 函数将字符串中的分隔符替换为空格&#xff0c;然后使用 SUBSTRING_INDEX() 函数将字符串按空格分割成多个子字符串。最后&…...

UE基础 —— 术语

目录 Project Blueprint Class Object Actor Casting Component Pawn Character Player Controller AI Controller Player State Game Mode Game State Brush Volume Level World Project 项目&#xff08;Project&#xff09;包含游戏的所有内容&#xff0c…...

kubernets学习笔记——使用kubeadm构建kubernets集群及排错

使用kubeadm构建kubernets集群 一、准备工作1、repo源配置&#xff1a;阿里巴巴开源镜像源2、更新软件包并安装必要的系统工具3、同步时间4、禁用selinux5、禁用交换分区swap6、关闭防火墙 二、安装docker-ce、docker、cri-docker1、安装docker-ce2、开启内核转发&#xff0c;转…...

简述MYSQL聚簇索引、二级索引、索引下推

一丶聚簇索引 InnoDB的索引分为两种&#xff1a; 聚簇索引&#xff1a;一般创建表时的主键就会被mysql作为聚簇索引&#xff0c;如果没有主键则选择非空唯一索引作为聚簇索引&#xff0c;都没有则隐式创建一个索引作为聚簇索引&#xff1b;辅助索引&#xff1a;也就是非聚簇索…...

电脑开机后出现bootmgr is missing原因及解决方法

最近有网友问我为什么我电脑开机后出现bootmgr is missing&#xff0c;这个提示意思是:意思是启动管理器丢失&#xff0c;说明bootmgr损坏或者丢失&#xff0c;系统无法读取到这个必要的启动信息导致无法启动。原因有很多&#xff0c;比如我们采用的是uefi引导&#xff0c;而第…...

2024 年 7 月公链行业研报:市场波动中 Solana 表现抢眼,Layer 2 竞争白热化

作者&#xff1a;Stella L (stellafootprint.network) 数据来源&#xff1a;Footprint Analytics 公链 Research 页面 7 月份&#xff0c;加密货币市场表现活跃&#xff0c;波动幅度较大&#xff0c;这一现象映射了全球金融市场的整体趋势。现货以太坊 ETP 在美国的上市&…...

Python查缺補漏

一、 json.load(s)与json.dump(s)区别 json.loads()将str类型的数据转换为dict类型 json.dumps()将dict类型的数据转成str json.load()从json文件中读取数据 json.dump()将数据以json的数据类型写入文件中 二、json内部要使用双引号 data """{ "fruit&qu…...

c++的类和对象(中):默认成员函数与运算符重载(重难点!!)

前言 Hello, 小伙伴们&#xff0c;我们今天继续c的学习&#xff0c;我们上期有介绍到c的部分特性&#xff0c;以及一些区别于c语言的地方&#xff0c;今天我们将继续深入了解c的类和对象&#xff0c;探索c的奥秘。 好&#xff0c;废话不多说&#xff0c;开始我们今天的学习。…...

Android .kl按键布局文件

1.介绍 一个硬件按键的处理流程大致为&#xff1a;当用户按下或释放一个键时&#xff0c;键盘硬件会生成一个扫描码scan code&#xff0c;然后操作系统读取这个scan code&#xff0c;并将scan code扫描码映射到虚拟键码key code&#xff0c;最后操作系统根据映射的keycode生成…...

Java每日一练_模拟面试题6(JVM的GC过程)

一、JVM虚拟机组成 JVM五大内存区域&#xff1a;程序计数器&#xff0c;Java虚拟机栈&#xff0c;本地方法栈&#xff0c;java堆&#xff0c;方法区。 堆被划分为两个区域&#xff1a;年轻代(Young)、老年代(Tenured)。年轻代又被划分为三个区域&#xff1a;Eden、From Surviv…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

在Zenodo下载文件 用到googlecolab googledrive

方法&#xff1a;Figshare/Zenodo上的数据/文件下载不下来&#xff1f;尝试利用Google Colab &#xff1a;https://zhuanlan.zhihu.com/p/1898503078782674027 参考&#xff1a; 通过Colab&谷歌云下载Figshare数据&#xff0c;超级实用&#xff01;&#xff01;&#xff0…...

P10909 [蓝桥杯 2024 国 B] 立定跳远

# P10909 [蓝桥杯 2024 国 B] 立定跳远 ## 题目描述 在运动会上&#xff0c;小明从数轴的原点开始向正方向立定跳远。项目设置了 $n$ 个检查点 $a_1, a_2, \cdots , a_n$ 且 $a_i \ge a_{i−1} > 0$。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时&#xff0…...