MySQL系列:系列结构和基础管理

文章目录

    • MySQL工作模型及实例
      • MySQL 客户端/服务器工作模型(C/S)
      • 服务端:实例
      • MySQLd的程序结构
      • MySQL的逻辑结构
      • MySQL的物理存储结构
    • MySQL基础管理
      • 用户管理
      • 权限管理
      • 连接管理
      • 初始化配置
      • 启动关闭
      • 多实例

MySQL工作模型及实例

MySQL 客户端/服务器工作模型(C/S)

image

1.本地socket链接方式

socket=/tmp/mysql.sock

mysql -uroot -p -S /tmp/mysql.sock

image

说明:只能在本地使用,不依赖于IP和端口

2.远程TCPIP链接方式

mysql -uroot -p -h 127.0.0.1 -P 3306

image

服务端:实例

实例:mysqld+工作线程+预分配的内存结构

功能:管理数据

image

MySQLd的程序结构

image

查看连接线程

show processlist;

image

MySQL的逻辑结构

表+库

查看mysql中所有的数据库

show databases;

image

切换到某个数据库

use mysql;

image

查看库中所有的表

show tables;

image

查看表结构

desc user;

image

MySQL的物理存储结构

段:一个表就是一个段,可以由1个或者多个区构成

区:一个区(簇)默认1M,由连续的64个page构成

页:一个页,默认16KB,由连续的4个OS block构成

OS 块:一个块,4KB,由连续的8个扇区构成

扇区:一个扇区,512B

image

MySQL基础管理

用户管理

1.用户的定义 mysql@'白名单'

robin@‘localhost’ : robin用户能够通过本地登录MySQL(socket)

robin@‘192.168.0.130’: robin用户能够通过192.168.0.130远程登录MySQL服务器

robin@‘192.168.0.%’: robin用户能够通过192.168.0.xx/24远程登录MySQL服务器

robin@‘192.168.0.5%’: robin用户能够通过192.168.0.50-59远程登录MySQL服务器

robin@‘192.168.0.130/255.255.254.0’: robin用户能够通过192.168.0.130远程登录MySQL服务器 23位子网掩码

robin@‘%’: robin用户能够通过所有IP远程登录MySQL服务器

robin@‘vmcode’: robin用户能够通过主机名为vmcode远程登录MySQL服务器

robin@‘vmcode.cn’: robin用户能够通过域名为vmcode.cn远程登录MySQL服务器

2.用户管理

查询用户信息

select user,host,authentication_string from mysql.user;

image

创建用户

create user robin@'localhost';

image

创建用户并设置密码

create user robin@'192.168.0.%' identified by 'admin123';

image

mysql所有用户存储位置:cd /data/mysql/3306/data/mysql 中的user.MYD文件

image

执行命令:strings user.MYD

image

修改用户密码

alter user robin@'localhost' identified by 'admin123';

image

删除用户

drop user robin@'localhost';

image

注意:8.0版本以前,可以通过grant命令建立用户和授权

权限管理

1.查看权限:

show privileges;

image

+-------------------------+---------------------------------------+---------------+
| 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                    |
+-------------------------+---------------------------------------+---------------------------+

2.授权、回收权限操作

语法:

8.0-: grant 权限1,权限2,... on 对象 to 用户 identified by '密码';

8.0+:create user 用户 identified by '密码'; grant 权限1,权限2,... on 对象 to 用户;

grant 权限1,权限2,.... on 对象 to 用户 identified by '密码' with grant option;

ALL : 管理员(不包括grant option权限)

权限1,权限2,… : 普通用户(业务用户,开发用户)

Grant option : 给别的用户授权

对象:

*.* :- -----> chmod -R 755 /

robin.* -----> chmod -R 755 /robin

robin.t1 -----> chmod -R 755 /robin/t1

(1).创建并授权管理员用户robin,能够通过192.168.0.%网段登录并管理数据库

grant all on *.* to robin@'192.168.0.%' identified by 'admin123' with grant option;

image

(2).查看权限

show grants for robin@'192.168.0.%';

image

(3).查看全部用户权限

select * from mysql.user \G -- \G竖排显示

image

(4).创建并授权一个test@'192.168.0.%'业务用户,能够对test库下所有对象进行create,select,update,delete,insert操作

grant create,select,update,delete,insert on test.* to test@'192.168.0.%' identified by 'admin123';

image

(5)查看权限

select * from mysql.db \G

image

(6).各权限表说明

mysql.db: 基于库结构的权限 test.*

mysql.tables_priv: 基于表结构的权限 test.t1

mysql.columns_priv: 基于列结构的权限 列

mysql.procs_priv: 基于存储过程结构的权限

(7).回收权限

MySQL不同通过重复授权的方式修改权限,只能通过回收权限方式进行修改

revoke create on test.* to test@'192.168.0.%';

image

扩展:超级管理员密码忘记解决方案

–skip-grant-tables :跳过授权表

–skip-networking :跳过TCP/IP连接

1.关掉数据库

systemctl stop mysqld

2.使用安全模式启动

service mysqld start --skip-grant-tables --skip-networking
#或者
mysqld_safe --skip-grant-tables --skip-networking &

image

3.登录数据库并修改密码

mysql> alter user root@'localhost' identified by 'admin123';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges; #手工加载授权表
Query OK, 0 rows affected (0.00 sec)

mysql> alter user root@'localhost' identified by 'admin123';
Query OK, 0 rows affected (0.00 sec)

4.重启数据库

service mysqld restart

连接管理

1.mysql自带客户端

mysql:

参数列表:

-u 用户名-p 密码-S 本地socket文件位置-h 数据库IP地址

-P 数据库端口号-e 免交互执行数据库命令< 导入sql脚本

image

Socket:

前提:数据中必须实现授权robin@'lcoalhost’用户 也就是哪个localhost授权了就可以登录

mysql -urobin -padmin123 -S /tmp/mysql.sock
mysql -urobin -p -S /tmp/mysql.sock
mysql -padmin123 -S /tmp/mysql.sock  #root用户
mysql  #默认会去找/tmp/mysql.sock
mysql -uroot -padmin123

TCP/IP:

前提:必须提前创建好可以远程连接的用户(例如:robin@‘192.168.0.%’)

mysql -urobin -p -h 192.168.0.130 -P 3306

MySQL区分连接是远程还是本地连接

show processlist;

image

MySQL免交互运行命令

mysql -uroot -padmin123 -e "select @@datadir"

image

MySQL导入SQL脚本

yum install -y lrzsz
rz -e
mysql -uroot -p < /opt/my.sql

image

image

image

初始化配置

1.三种方式:

源码安装------>编译过程中设置初始化参数

配置文件------>数据库启动之前,设定配置文件参数 /etc/my.cnf

启动脚本命令行

2.配置文件读取顺序

/etc/my.cnf ---->/etc/mysql/my.cnf ----> /usr/local/mysql/etc/my.cnf ---->~/.my.cnf

mysqld --help --verbose | grep my.cnf

image

3.配置

[服务器端] :影响数据库服务端运行

[mysqld]

[mysql_safe]

[server] :代表服务端的所有

[客户端]:影响本地客户端连接,不影响远程客户端

[mysql]

[mysqldump]

[client] :代表客户端的所有

启动关闭

启动

systemctl start mysqld ------>mysql.server ------>mysql_safe   ------>mysqld
mysqld_safe和mysqld,可以在启动数据库时,加入自己执行的参数,例如--defaults-file=/usr/lcoal/mysql/etc/my.cnf

关闭

systemctl stop mysqld
service mysqld stop 
/etc/init.d/mysqld stop
mysqladmin -uroot -padmin123 shutdwon
mysql -uroot -padmin123 -e "shutdwon"

多实例

一.同版本多实例

(1).规划

配置文件 3份 :/data/mysql/330{7…9}/my.cnf

数据目录 3份:/data/mysql/330{7…9}/data

日志目录 3份:/data/mysql/330{7…9}/binlog

Socket 3份: /tmp/mysql330{7…9}.sock

端口 3份:prot=3307,3308,3309

server_id 3份:server_id=7,8,9

(2).配置过程

1.创建需要的目录

mkdir -p /data/mysql/330{7..9}/{data,binlog}

2.创建配置文件

cat>/data/mysql/3307/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/3307/data
socket=/tmp/mysql3307.sock
log_error=/data/mysql/3307/mysql.log
port=3307
server_id=7
log_bin=/data/mysql/3307/binlog
EOF

cat>/data/mysql/3308/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/3308/data
socket=/tmp/mysql3308.sock
log_error=/data/mysql/3308/mysql.log
port=3308
server_id=8
log_bin=/data/mysql/3308/binlog
EOF

cat>/data/mysql/3309/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/3309/data
socket=/tmp/mysql3309.sock
log_error=/data/mysql/3309/mysql.log
port=3309
server_id=9
log_bin=/data/mysql/3309/binlog
EOF

3.初始化数据

mv /etc/my.cnf /etc/my.cnf.bak
#World-writable config file '/data/mysql/3307/my.cnf' is ignored.
#mysql担心这种文件被其他用户恶意修改,所以忽略掉这个配置文件
chmod 644 /data/mysql/330{7..9}/my.cnf
chown -R mysql.mysql /data/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/3307/data --basedir=/usr/local/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/3308/data --basedir=/usr/local/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/3309/data --basedir=/usr/local/mysql

4.准备启动脚本

cat>/usr/lib/systemd/system/mysqld3307.service<<EOF
[Unit]
Description=MySQL Server 7
Documentation=man:mysqld(7)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/3307/my.cnf
LimitNOFILE = 5000
EOF


cat>/usr/lib/systemd/system/mysqld3308.service<<EOF
[Unit]
Description=MySQL Server 8
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/3308/my.cnf
LimitNOFILE = 5000
EOF


cat>/usr/lib/systemd/system/mysqld3309.service<<EOF
[Unit]
Description=MySQL Server 9
Documentation=man:mysqld(9)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/3309/my.cnf
LimitNOFILE = 5000
EOF

5.启动多实例

systemctl start mysqld3307
systemctl start mysqld3308
systemctl start mysqld3309

6.启动完成

netstat -tulnp | grep mysqld

image

二.不同版本多实例

1.下载

mkdir -p /usr/local/src/{mysql56,mysql80}
wget -P /usr/local/src/mysql56 https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.6/mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz
cd /usr/local/src/mysql56
tar -zxvf mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz
ln -s /usr/local/src/mysql56/mysql-5.6.51-linux-glibc2.12-x86_64 /usr/lcoal/mysql56
wget -P /usr/local/src/mysql80 https://repo.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-8.0.23-linux-glibc2.12-x86_64.tar
cd /usr/local/src/mysql80 
tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar
ln -s /usr/local/src/mysql56/mysql-8.0.23-linux-glibc2.12-x86_64
vim /etc/profile
#注释掉mysql
source /etc/profile
# 打开新窗口 因为source没用
mkdir -p /data/mysql/331{7..9}/{data,binlog}
chown -R mysql.mysql /data/mysql/

2.准备配置文件

cat>/data/mysql/3317/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql56
datadir=/data/mysql/3317/data
socket=/tmp/mysql3317.sock
log_error=/data/mysql/3317/mysql.log
port=3317
server_id=17
log_bin=/data/mysql/3317/binlog
EOF

cat>/data/mysql/3318/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql80
datadir=/data/mysql/3318/data
socket=/tmp/mysql3318.sock
log_error=/data/mysql/3318/mysql.log
port=3318
server_id=18
log_bin=/data/mysql/3318/binlog
EOF

3.初始化数据

#5.6
/usr/local/mysql56/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/3317/data --basedir=/usr/local/mysql56
/usr/local/mysql80/bin/mysqld --initialize-insecure --user=mysql --datadir=/data/mysql/3318/data --basedir=/usr/lcoal/mysql80 
#5.6报错
Installing MySQL system tables.../usr/local/mysql56/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
yum install -y libaio

4.准备启动脚本

cat>/usr/lib/systemd/system/mysqld3317.service<<EOF
[Unit]
Description=MySQL Server 17
Documentation=man:mysqld(17)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql56/bin/mysqld --defaults-file=/data/mysql/3317/my.cnf
LimitNOFILE = 5000
EOF

cat>/usr/lib/systemd/system/mysqld3318.service<<EOF
[Unit]
Description=MySQL Server 18
Documentation=man:mysqld(18)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql80/bin/mysqld --defaults-file=/data/mysql/3318/my.cnf
LimitNOFILE = 5000
EOF

image

5**.启动mysql5.7和测试**

vim /etc/profile
#还原mysql配置
source /etc/profile
mv /etc/my.cnf.bak /etc/my.cnf
/etc/init.d/mysqld start 
mysql -S /tmp/mysql3318.sock

image

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python之代码覆盖率框架coverage使用介绍

Python代码覆盖率工具coverage.py其实是一个第三方的包&#xff0c;同时支持Python2和Python3版本。 安装也非常简单&#xff0c;直接运行&#xff1a; pip install coverage 安装完成后&#xff0c;会在Python环境下的\Scripts下看到coverage.exe&#xff1b; 首先我们编写…

测试access和trunk口的区别(华为)

思科设备参考&#xff1a;测试access和trunk口的区别&#xff08;思科&#xff09; 一&#xff0c;实验目的 实现同一 Vlan 内的主机互通&#xff0c;不同 Vlan 间的主机隔离。 二&#xff0c;配置前测试 PC1分别ping PC2、PC3、PC4都能通&#xff0c;因为四台PC默认同处于v…

【CSS】css选择器和css获取第n个元素(:nth-of-type(n)、:nth-child(n)、first-child和last-child)

:nth-of-type、:nth-child的区别 一、css选择器二、:nth-of-type、:nth-child的区别:nth-of-type(n)&#xff1a;选择器匹配属于父元素的特定类型的第N个子元素:nth-child(n)&#xff1a;选择器匹配属于其父元素的第 N 个子元素&#xff0c;不论元素的类型:first-child&#xf…

【蓝桥杯冲冲冲】动态规划学习 [NOIP2003 提高组] 加分二叉树

【蓝桥杯冲冲冲】动态规划学习 [NOIP2003 提高组] 加分二叉树 蓝桥杯备赛 | 洛谷做题打卡day24 文章目录 蓝桥杯备赛 | 洛谷做题打卡day24[NOIP2003 提高组] 加分二叉树题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示数据规模与约定思路 题解代码我的一些话 [NOI…

如何使用内网穿透工具在公网实现实时监测DashDot服务器仪表盘

文章目录 1. 本地环境检查1.1 安装docker1.2 下载Dashdot镜像 2. 部署DashDot应用3. 本地访问DashDot服务4. 安装cpolar内网穿透5. 固定DashDot公网地址 本篇文章我们将使用Docker在本地部署DashDot服务器仪表盘&#xff0c;并且结合cpolar内网穿透工具可以实现公网实时监测服务…

idea docker 镜像生成太慢太大问题

文章目录 前言一、更小的jdk基础镜像二、服务瘦包&#xff08;thin jar&#xff09;2.1 maven2.2 修改dockerfile2.3 container run options 三、 基础jdk镜像入手&#xff1f;总结 前言 idea docker 内网应用实践遗留问题 idea docker插件 build 服务镜像太慢服务镜像太大 …

【蓝桥杯51单片机入门记录】LED

目录 一、基础 &#xff08;1&#xff09;新建工程 &#xff08;2&#xff09;编写前准备 二、LED &#xff08;1&#xff09;点亮LED灯 &#xff08;2&#xff09;LED闪烁 延时函数的生成&#xff08;stc-isp中生成&#xff09; 实现 &#xff08;3&#xff09;流水灯…

flutter GridView控件实践

gridView顶部自带padding问题 如图所示&#xff1a; 顶部有一个比较大的padding。 如何处理&#xff1a;给gridView设置&#xff1a;padding: EdgeInsets.zero,

C#,桌面游戏编程,数独游戏(Sudoku Game)的算法与源代码

本文包括以下内容&#xff1a; &#xff08;1&#xff09;数独游戏的核心算法&#xff1b; &#xff08;2&#xff09;数独游戏核心算法的源代码&#xff1b; &#xff08;3&#xff09;数独游戏的部分题目样本&#xff1b; &#xff08;4&#xff09;适老版《数独》的设计原则…

JAVA操作Rabbitmq-原理讲的很详细

这篇文章来源于稀土掘金&#xff0c;来源&#xff1a;https://juejin.cn/post/7132268340541653005&#xff0c;主要用来收藏学习。 常见的消息队列很多&#xff0c;主要包括 RabbitMQ、Kafka、RocketMQ 和 ActiveMQ&#xff0c;相关的选型可以看我之前的系列&#xff0c;这篇文…

用Python处理TDC激光测距数据并绘制为图片

用Python处理TDC激光测距数据并绘制为图片 说明一、定义全局变量变二、主函数入口三、处理原始文件数据四、将数据叠加统计生成图片五、额外的辅助函数六、将数据进行各种形式统计叠加七、原始数据形式八、 测试结果 说明 1. 主要是将TDC激光测距数据进行统计叠加并绘制为图片…

09. 配置Eth-Trunk

文章目录 一. 初识Eth-Trunk1.1. Eth-Trunk的概述1.2. Eth-Trunk的优势1.3. Eth-Trunk的模式的优势 二. 实验专题2.1. 实验1&#xff1a;手工模式2.1.1. 实验拓扑图2.1.2. 实验步骤&#xff08;1&#xff09;配置PC机的IP地址&#xff08;2&#xff09;在交换机接口划入VLAN&am…

Ubuntu远程连接登录信息解读(ubuntu登录信息、远程登录信息)

文章目录 1. Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-100-generic aarch64)2. 三个链接是官方提供的文档、管理工具和技术支持3. System information as of Thu 01 Feb 2024 03:30:45 PM HKT4. System load: 1.16&#xff1a;系统负载指数5. Processes: 1096系统正在运…

防火墙 双机热备直路部署--上下三层配置

双机热备直路部署 -- 上下三层 双机热备直路部署的特点是防火墙接口都是三层工作模式&#xff0c;相当于防火墙在进行路由部 署。 1. 根据网段划分配置IP地址和安全区域 AR1配置: [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 1.1.1.2 24 [Huawei-GigabitEthernet…

Codeforces Round 893 (Div. 2)补题

Buttons(Problem - A - Codeforces) 题目大意&#xff1a;有三排按钮数量分别为a,b,c&#xff0c;第一排只能由A按下&#xff0c;第二排只能由B按下&#xff0c;第三排可以被任意一个人按下&#xff0c;问两人轮流游戏&#xff0c;谁没有可以按的谁输&#xff0c;问如果都发挥…

易语言系列学习1

通过本文章你会学习到 如果 如果真 获取编辑框内容 关闭本程序 监听按键让它等价于点击某个按钮 运算&#xff1a;或 且 非&#xff08;注意中间要有一个空格&#xff0c;否则会报错&#xff09; 效果 .版本 2.程序集 窗口程序集_启动窗口.子程序 _按钮2_被单击. 如果真 (编…

C#,斯特林数(Stirling Number)的算法与源代码

1 斯特林数 在组合数学&#xff0c;斯特林数可指两类数&#xff0c;第一类斯特林数和第二类斯特林数&#xff0c;都是由18世纪数学家James Stirling提出的。它们自18世纪以来一直吸引许多数学家的兴趣&#xff0c;如欧拉、柯西、西尔沃斯特和凯莱等。后来哥本哈根&#xff08;…

使用 postcss-cva 来生成 cva 方法吧

使用 postcss-cva 来生成 cva 方法吧 使用 postcss-cva 来生成 cva 方法吧 什么是 cva 封装示例组成参数 postcss-cva 的功能 Css 示例原子化设计注释参考生成cva函数 Refers 什么是 cva cva 全称为 class-variance-authority, 它是一个非常适合制作那种&#xff0c;创建控…

Ps:自动混合图层

Ps菜单&#xff1a;编辑/自动混合图层 Edit/Auto-Blend Layers 自动混合图层 Auto-Blend Layers命令可以自动地混合多个图层&#xff0c;特别适合于制作全景图、焦点堆叠、曝光合成或任何需要平滑融合多个图像的场景。 自动混合图层命令仅适用于 RGB 或灰度图像&#xff0c;不适…

2024年美国大学生数学建模B题思路分析 - 搜索潜水器

# 1 赛题 问题B&#xff1a;搜索潜水器 总部位于希腊的小型海上巡航潜艇&#xff08;MCMS&#xff09;公司&#xff0c;制造能够将人类运送到海洋最深处的潜水器。潜水器被移动到该位置&#xff0c;并不受主船的束缚。MCMS现在希望用他们的潜水器带游客在爱奥尼亚海底探险&…