培训第二十一天(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性能调优
作者:南墨 1.Source性能调优 1.1 Spooldir Source 使用Spooldir Source采集日志数据时,若每行日志数据<100bp,可以通过将多行合并传输来提升传输性能 建议合并时根据数据长度来确定多少行合并为一个单位进行传输,合并后的长…...
mysql 字符串转数组
在 MySQL 中,可以使用内置的字符串函数 SUBSTRING_INDEX() 和 REPLACE() 来实现将字符串转换为数组。 首先,使用 REPLACE() 函数将字符串中的分隔符替换为空格,然后使用 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 项目(Project)包含游戏的所有内容,…...
kubernets学习笔记——使用kubeadm构建kubernets集群及排错
使用kubeadm构建kubernets集群 一、准备工作1、repo源配置:阿里巴巴开源镜像源2、更新软件包并安装必要的系统工具3、同步时间4、禁用selinux5、禁用交换分区swap6、关闭防火墙 二、安装docker-ce、docker、cri-docker1、安装docker-ce2、开启内核转发,转…...
简述MYSQL聚簇索引、二级索引、索引下推
一丶聚簇索引 InnoDB的索引分为两种: 聚簇索引:一般创建表时的主键就会被mysql作为聚簇索引,如果没有主键则选择非空唯一索引作为聚簇索引,都没有则隐式创建一个索引作为聚簇索引;辅助索引:也就是非聚簇索…...
电脑开机后出现bootmgr is missing原因及解决方法
最近有网友问我为什么我电脑开机后出现bootmgr is missing,这个提示意思是:意思是启动管理器丢失,说明bootmgr损坏或者丢失,系统无法读取到这个必要的启动信息导致无法启动。原因有很多,比如我们采用的是uefi引导,而第…...
2024 年 7 月公链行业研报:市场波动中 Solana 表现抢眼,Layer 2 竞争白热化
作者:Stella L (stellafootprint.network) 数据来源:Footprint Analytics 公链 Research 页面 7 月份,加密货币市场表现活跃,波动幅度较大,这一现象映射了全球金融市场的整体趋势。现货以太坊 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, 小伙伴们,我们今天继续c的学习,我们上期有介绍到c的部分特性,以及一些区别于c语言的地方,今天我们将继续深入了解c的类和对象,探索c的奥秘。 好,废话不多说,开始我们今天的学习。…...
Android .kl按键布局文件
1.介绍 一个硬件按键的处理流程大致为:当用户按下或释放一个键时,键盘硬件会生成一个扫描码scan code,然后操作系统读取这个scan code,并将scan code扫描码映射到虚拟键码key code,最后操作系统根据映射的keycode生成…...
Java每日一练_模拟面试题6(JVM的GC过程)
一、JVM虚拟机组成 JVM五大内存区域:程序计数器,Java虚拟机栈,本地方法栈,java堆,方法区。 堆被划分为两个区域:年轻代(Young)、老年代(Tenured)。年轻代又被划分为三个区域:Eden、From Surviv…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
