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

news2024/9/22 17:38:51

上午

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 ~]# ls
 mysql-8.0.33-linux-glibc2.12-x86_64.tar
 mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz
 mysql-router-8.0.33-linux-glibc2.12-x86_64.tar.xz
 mysql-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 ~]# ls
 mysql-8.0.33-linux-glibc2.12-x86_64
 mysql-8.0.33-linux-glibc2.12-x86_64.tar
 mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz
 mysql-router-8.0.33-linux-glibc2.12-x86_64.tar.xz
 mysql-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]# ls
 bin  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/
 总用量 292
 drwxr-xr-x.  2 root  root    4096 8月   5 09:55 bin
 drwxr-xr-x.  2 root  root      38 8月   5 09:55 docs
 drwxr-xr-x.  3 root  root     282 8月   5 09:55 include
 drwxr-xr-x.  6 root  root     201 8月   5 09:55 lib
 -rw-r--r--.  1 root  root  284945 8月   5 09:55 LICENSE
 drwxr-xr-x.  4 root  root      30 8月   5 09:55 man
 drwxr-x---.  2 mysql mysql      6 8月   5 09:56 mysql-files
 -rw-r--r--.  1 root  root     666 8月   5 09:55 README
 drwxr-xr-x. 28 root  root    4096 8月   5 09:55 share
 drwxr-xr-x.  2 root  root      77 8月   5 09:55 support-files
 [root@mysql ~]# cd /usr/local/mysql/bin/     //cd到安装目录
 [root@mysql bin]# ls
 ibd2sdi            mysqlcheck             mysqlpump
 innochecksum       mysql_config           mysql_secure_installation
 lz4_decompress     mysql_config_editor    mysqlshow
 myisamchk          mysqld                 mysqlslap
 myisam_ftdump      mysqld-debug           mysql_ssl_rsa_setup
 myisamlog          mysqld_multi           mysql_tzinfo_to_sql
 myisampack         mysqld_safe            mysql_upgrade
 my_print_defaults  mysqldump              perror
 mysql              mysqldumpslow          zlib_decompress
 mysqladmin         mysqlimport
 mysqlbinlog        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-files
 data  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 firewalld
 Removed 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 9
 Server version: 8.0.33
 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> 

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/bash
 cp $1 /usr/local/mysql/
 mkdir /usr/local/mysql/mysql-files/
 grep /mysql/ /etc/password
 if [ $? -ne 0 ];then
        useradd -r -s /sbin/nologin mysql
 fi
 chown mysql:mysql /usr/local/mysql/mysql-files
 chmod 750 /usr/local/mysql/mysql-files
 # init
 /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/
 # password
 ​
 # service
 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql8
 # start server
 service 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> quit
 Bye
(5)使用lilaosi登录mysql(发现无任何权限)
 [root@mysql ~]# mysql -ulilaosi -pLilaosi@123456
 mysql> show databases;    //只有自己的权限
 +--------------------+
 | Database           |
 +--------------------+
 | information_schema |
 | performance_schema |
 +--------------------+
 2 rows in set (0.04 sec)
 mysql> quit
 Bye
(6)使用root用户为lilaosi用户赋予test数据库中所有表的所有权限
 [root@mysql ~]# mysql -uroot -pRoot@123456
 mysql> grant all on test.* to 'lilaosi';   //使用root账号为lilaosi账号添加test库中所有表的权限
 Query OK, 0 rows affected (0.00 sec)
 mysql> quit
 Bye
 [root@mysql ~]# mysql -ulilaosi -pLilaosi@123456
 mysql> 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> quit
 Bye
 [root@mysql ~]# mysql -uaaa -p123
 mysql> 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> quit
 Bye
(9)为aaa用户赋予test数据库user表插入权限
 ​
 [root@mysql ~]# mysql -uroot -pRoot@123456
 mysql> grant insert on test.user to 'aaa';  //赋予插入权限
 Query OK, 0 rows affected (0.01 sec)
 mysql> quit
 Bye
 [root@mysql ~]# mysql -uaaa -p123
 mysql> 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> quit
 Bye
 [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> quit
 Bye
 [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 names
 You can turn off this feature to get a quicker startup with -A
 Database changed
 mysql> 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> quit
 Bye
 [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> quit
 Bye
 [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)

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

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

相关文章

c->c++(四):gtest

本文主要探讨gtest相关内容。 gtest安装 wget -O gtest.zip https://github.com/google/googletest/archive/refs/heads/main.zipunzip gtest.zipcd googletest-mainmkdir bulid && cd buildcmake .. && make && make install gtest API TEST/TEST…

MySQL update set语句中 逗号与and的区别

语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法: UPDATE table_name SET column1 value1, column2 value2, ... WHERE condition; 参数说明: table_name 是你要更新数据的表的名称。column1, column2, ... 是你要更新的列的名称。v…

减速电机的减速比计算原理

今天因为看到减速电机的内部中有通过齿轮来增加扭矩的结构,想找点原理性的文章来看一下,奈何遍寻不得。故提笔于此记录,以备往后回看。 图1 减速电机的竖截面剖视图 减速比为64,我的理解是在初始的齿轮转一圈的时候,最…

单片机配网,继电器开关,广播

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

qt安装图文

1.下载 通过百度网盘分享的文件:qt安装图文 链接:https://pan.baidu.com/s/1lQtYYvuybibDkdrMlpKJOg 提取码:11u7 --来自百度网盘超级会员V3的分享 2.安装

C++ 几何算法 - 向量点乘,叉乘及其应用

一:点乘介绍 1. 向量点乘: 2. 向量点乘的性质: 3. 向量点乘公式: 4. 向量的点乘的属性: (1):向量与自身做点乘,会得到向量长度的平方: (2&#xf…

JVM系列 | 对象的消亡3——垃圾收集器的对比与实现细节

垃圾收集器 文章目录 各收集器简单对比收集器启动参数各收集器详细说明JDK 1.3 之前JDK 1.3 | SerialJDK 1.4 | ParNewJDK 1.4 | Parallel ScavengeJDK 5 | CMS 收集器JDK 7 | G1 各收集器简单对比 收集器名称出现时间淘汰时间目标采用技术线程数STW分代备注无名JDK 1.3之前JD…

Android 自定义View(一):View是什么?如何创建自定义view,自定义属性等

目录 1)View是什么? 2)View分类 3)View的知识点 4)View的工作流程是怎么样的? 5)案例:如何自定义View?比如我们要实现一个输入框带有清除按钮的view 6)疑问&…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 免单统计(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题…

0805作业+梳理

一、作业&#xff1a; 代码&#xff1a; create.c #include<myhead.h> int main(int argc, const char *argv[]) {//创建一个有名管道文件if(mkfifo("./linux",0664)-1){perror("mkfifo linux error");return -1;}getchar();system("rm linux…

8.15 C++作业

输入一组字符&#xff0c;实现各字符的归类统计 #include <iostream> #include <string.h>using namespace std;namespace xiaoli {string str;int len; } using namespace xiaoli;int main() {getline(cin,str);//识别空格len str.size();int a0,b0,c0,d0,e0;fo…

x-cmd mod | x yq - 轻量级的 YAML、JSON、XML 处理器

目录 简介使用语法参数子命令x yq repl 简介 yq (YAML Query) 是一个轻量级的 YAML、JSON、XML 处理器&#xff0c;主要用于查询和提取 YAML 数据。 x yq 是基于 yq 命令、为提升 yq 使用体验而设计的增强模块&#xff0c;具体的增强性改动如下&#xff1a; 简化 yq 命令的安…

【GoodERP更新日志】增加模块 质检管理 处理来料检、发货检功能

开源项目GoodERP更新-2024年8月5日 本次提交合并增加的功能或解决的问题&#xff1a;增加 质量管理模块->增加来料质检、发货质检功能 提交前: 无 提交后: 1、按供应商来料&#xff0c;安排来料质检工作&#xff1b; 2、按销售订单&#xff0c;安排对计划发货商品进行…

比较推荐哪种可视耳勺?5大热门产品专业测评分享!

由于现在人们对健康生活越来越重视&#xff0c;可视耳勺成为了个护健康产品&#xff0c;受到了越来越多消费者的关注和喜爱。这种挖耳勺采用了先进的无线技术和高清摄像头&#xff0c;能够让人们更加清晰地观察自己耳内的状况&#xff0c;从而更加安全、有效地清洁耳朵。但同时…

封装组件之使用vue3封装简易Button按钮

1.新建Button.vue <template><button :class"buttonClass"><!-- 用于输入内容 --><slot></slot></button> </template> <script lang"ts" setup> import { computed } from vue; //定义类型 const props…

OpenGL投影矩阵

OpenGL Projection Matrix OpenGL投影矩阵

大模型检索增强生成RAG

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhlRAG简介 大模型检索增强生成(Retrieval-Augmented Generation,简称RAG)是一种结合了信息检索技术和语言生成模型的人工智能技术,主要用于增强大型语言模型(Large Language Models, LLMs)处理…

能见度监测站在机场中的应用

在繁忙的机场&#xff0c;每一个细节都关乎着飞行安全。其中&#xff0c;能见度作为关键的气象因素&#xff0c;直接影响着飞机的起降安全。为此&#xff0c;能见度监测站在机场中扮演着重要的角色。 能见度监测站利用先进的传感器技术&#xff0c;实时监测机场周边的能见度情况…

【医学图像】医学图像基础

目录 引言 医学成像常识 1. 正交投影面 2 医学图像种类 3 医学图像质量评价标准 3.1 图像对比度成因 3.2 对比度 3.3 空间分辨率 3.4 时间分辨率 3.5 信噪比 signal-to-noise ratio SNR 3.6 数字和模拟图像 4 医疗临床的性能 4.1 图像获取和感知 4.2 灵敏度和特异…

WEB服务器安全加固与检查

01.安全加固定义 什么是安全加固? 安全加固是实现信息系统安全的关键环节。通过安全加固&#xff0c;将在信息系统的网络层、主机层、软件层、应用层等层次建立符合安全需求的安全状态&#xff0c;并以此作为保证网络信息系统安全的起点。 安全加固是配置软件…