国产化数据库_金仓_Linux版Docker版部署过程及简单使用

国产化数据库金仓Linux版部署过程

文档参考:https://help.kingbase.com.cn/v8/install-updata/install-linux/install-linux-3.html#id12

以下安装是在Centos7系统下进行

0.安装包准备

找到你的操作系统对应的平台所支持的软件包下载,我这里下载的是x86(64)的

在这里插入图片描述

得到一个镜像文件: KingbaseES_V008R006C008B0014_Lin64_install.iso

下载license包(专业版90天)

也可以下载开发版,有365天有效期

wget https://kingbase.oss-cn-beijing.aliyuncs.com/KESV8R3/01.%E5%85%A8%E9%87%8F%E5%AE%89%E8%A3%85%E5%8C%85/license_%E4%B8%93%E4%B8%9A%E7%89%88.zip

1.安装语言变量设置

echo $LANG
export LANG=zh_CN.UTF-8

2.准备工作

将ISO文件和Licence上传到系统,同时Licence解压出来

(1).建立好要安装的目录和用户(要求不能安装在root下),这里以testuser用户为例

使用testuser用户执行即可

mkdir /home/testuser/Kingbase/ES/V8 -p

同时将licence文件解压到:/home/testuser/Kingbase/license_29402_0.dat

(2).镜像挂载

需要root用户执行

mkdir /home/testuser/kdb -p
mount KingbaseES_V008R006C008B0014_Lin64_install.iso /home/testuser/kdb#mount结果
[root@localhost testuser]# mount KingbaseES_V008R006C008B0014_Lin64_install.iso /home/testuser/kdb
mount: /dev/loop0 is write-protected, mounting read-only上面提示的read-only正常,不用理它

(3).内核配置

需要root用户执行

##手工操作执行方式
vi /etc/sysctl.conffs.aio-max-nr= 1048576
fs.file-max= 6815744
kernel.shmall= 2097152
kernel.shmmax= 4294967295
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128
net.ipv4.ip_local_port_range= 9000 65500
net.core.rmem_default= 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576sysctl -p##偷懒复制粘贴执行方式
cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr= 1048576
fs.file-max= 6815744
kernel.shmall= 2097152
kernel.shmmax= 4294967295
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128
net.ipv4.ip_local_port_range= 9000 65500
net.core.rmem_default= 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
EOFsysctl -p

(4).修改内存、进程资源限制

需要root用户执行

##手工操作执行方式
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
# unlimited表示无限制
* soft core unlimited
* hard core unlimited##偷懒复制粘贴执行方式
cat >> /etc/security/limits.conf << EOF
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* soft core unlimited
* hard core unlimited
EOF

(5).修改/etc/systemd/logind.conf

需要root用户执行

systemd-logind服务中引入的一个特性,是当一个用户退出系统后,会删除所有有关的IPC对象。该特性由/etc/systemd/logind.conf文件中的RemoveIPC参数控制。某些操作系统会默认打开,会造成程序信号丢失等问题(只有redhat7及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes)。设置RemoveIPC=no。 设置后重启服务sed -i 's/#RemoveIPC=no/RemoveIPC=no/g' /etc/systemd/logind.conf
systemctl daemon-reload
systemctl restart systemd-logind.service

3.进行命令行安装

执行命令行先确认安装目录和Licence已准备好

切换到testuser后执行以下命令进行安装:

echo $LANG
export LANG=zh_CN.UTF-8cd /home/testuser/kdb
sh setup.sh -i console之后根据提示选择参数进行安装即可,中间一般选ENTER或YES就可,
有一个license和安装路径需要复制进去:/home/testuser/Kingbase/license_29402_0.dat
/home/testuser/Kingbase/ES/V8兼容模式就选PG吧(oracle不熟悉,你也可以选oracle,默认也是这个)
另外默认的用户名是system,可以修改成你喜欢的名称安装完成后根据提示执行安装目录下的root.sh脚本
安装完成
----恭喜!KingbaseES V8 已成功地安装到:/home/testuser/Kingbase/ES/V8如果您需要将 KingbaseES V8 注册为系统服务,请运行/home/testuser/Kingbase/ES/V8/install/script/root.sh

安装完成,切换到root用户执行root.sh脚本

su root
/home/testuser/Kingbase/ES/V8/install/script/root.sh#日志:
[root@localhost kdb]# /home/testuser/Kingbase/ES/V8/install/script/root.sh
Starting KingbaseES V8: 
waiting for server to start.... done
server started
KingbaseES V8 started successfully

4.启动停止

使用普通用户进行服务的启动与停止

#切换用户
su testuser#需要先修改环境变量,否则报sys_ctl找不到、
vi /etc/profile
export KDB_HOME=/home/testuser/Kingbase/ES/V8/Server/
export PATH=$KDB_HOME/bin:$PATH#启动服务
sys_ctl -w start -D ${Data文件目录} -l "${Data文件目录}/sys_log/startup.log"sys_ctl -w start -D /home/testuser/Kingbase/ES/V8/data -l /home/testuser/Kingbase/ES/V8/data/sys_log/startup.log#停止服务
sys_ctl stop -m fast -w -D ${Data文件目录}sys_ctl stop -m fast -w -D /home/testuser/Kingbase/ES/V8/data#防火墙管理
firewall-cmd --zone=public --add-port=54321/tcp --permanent
firewall-cmd --reload

国产化数据库(金仓)docker版部署过程

一.下载镜像

下载地址:https://www.kingbase.com.cn/xzzx/index.htm

去官网找到镜像文件,点击下载即可(点下载需要输验证码和手机号)

在这里插入图片描述

二.docker方式安装金仓数据库

参考文档:https://help.kingbase.com.cn/v8/install-updata/install-docker/index.html

1.安装docker

安装docker过程略,自行搜索网上文档

2.导入镜像

使用root用户导入镜像,将tar包到本机docker镜像仓库中

#导入
docker load -i kdb_x86_64_v008r006c008b0014.tar#查看导入
[root@localhost testuser]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
kingbase     v1        084693efda57   2 months ago   718MB

3.运行镜像

##命令如:
docker run -idt --privileged -p ${hostport}:${containerport} –v ${hostpath}:${containerpath} --name ${sub_container} ${image} /usr/sbin/init##具体示例,指定用户名为webuser,密码为123456,以mysql模式启动(实际上还是pg语法)
##如果你想使用oracle模式启动,修改DB_MODE=oracle即可
docker run -idt --privileged -p 4321:54321 -e DB_MODE=mysql -e DB_USER=webuser -e DB_PASSWORD=123456 -v /home/kingbase/userdata:/home/kingbase/userdata --name kingbase kingbase:v1 /bin/bash

查看结果

[root@localhost testuser]# docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED         STATUS         PORTS                                         NAMES
aad5a26b8fcb   kingbase:v1   "/bin/bash /home/kin…"   4 seconds ago   Up 3 seconds   0.0.0.0:4321->54321/tcp, :::4321->54321/tcp   kingbase

进入容器

docker exec -it 8af99fb48f3b /bin/bash

测试是否可成功访问对应数据库

#进入容器
docker exec -it aad5a26b8fcb /bin/bash#
cd /home/kingbase/install/kingbase/bin
./ksql -h 127.0.0.1 -d test -U webuser -p 54321#查看兼容模式
cat /home/kingbase/userdata/data/initdb.conf |grep mode

金仓数据库简单操作使用

1.命令行进入数据库

cd /home/testuser/Kingbase/ES/V8/ClientTools/bin
./ksql -h 127.0.0.1 -d test -U webuser -p 54321其中 -d后面的是数据库名,-U后面的为用户名,-p 指定端口号
输入密码进入
[testuser@localhost bin]$ ./ksql -h 127.0.0.1 -d test -U webuser -p 54321
Password for user webuser: 
Type "help" for help.test=# \lList of databasesName    |  Owner  | Encoding |   Collate   |    Ctype    |  Access privileges  
-----------+---------+----------+-------------+-------------+---------------------kingbase  | webuser | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | security  | webuser | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | template0 | webuser | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/webuser         +|         |          |             |             | webuser=CTc/webusertemplate1 | webuser | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/webuser         +|         |          |             |             | webuser=CTc/webusertest      | webuser | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
(5 rows)test=#

2.创建数据库

create database liutest;

3.数据库和表等DDL相关

#查看数据库
\l
SELECT * FROM information_schema.db
SELECT datname FROM pg_database;#查看表
\d
\d+
SELECT table_name FROM information_schema.tables where table_catalog = 'liutest' and table_schema = 'liuschematest';#查看表字段
SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_name = 't_test';#切换数据库
\c liutest#修改表描述
COMMENT ON TABLE your_table_name IS 'Your new table description';#查看所有函数,可以修改public为你自己的schema
SELECT proname, proargtypes, prosrc FROM pg_proc WHERE pronamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'public');#查看函数,表、序列,索引命令
\df
\dt
\ds
\di#查看所有的触发器
SELECT * FROM pg_trigger;#删除触发器
DROP TRIGGER trigger_name ON table_name;#查看触发器关联的表名
SELECT tgname, tgrelid::regclass AS table_name  
FROM pg_trigger;#查看postgresql参数##使用show命令
例如,要查看max_connections参数的值,您可以执行以下命令
SHOW max_connections;##使用pg_settings视图
查看所有参数的设置:
SELECT name, setting, unit, short_desc, context FROM pg_settings;
查看特定参数的设置:
SELECT name, setting, unit, context, short_desc FROM pg_settings WHERE name = 'max_connections';##使用current_setting()函数
使用current_setting()函数来获取特定参数的当前值
SELECT current_setting('max_connections');#命令行设置postgresql参数,如修改 max_connections 参数
ALTER SYSTEM SET max_connections = 200;#查看所有的序列
SELECT sequence_name FROM information_schema.sequences WHERE sequence_catalog = 'dbName' and sequence_schema = 'public' ;
或者也能看到
\d+#删除所有的序列
SELECT 'DROP SEQUENCE ' || sequence_name || ';' FROM information_schema.sequences WHERE sequence_catalog = 'liutest' and sequence_schema = 'liuschematest' ;#postgresql修改序列的起始值
ALTER SEQUENCE your_sequence_name RESTART WITH new_start_value;
请注意,修改序列的起始值不会影响已经使用该序列生成的值。它只会影响从新起始值开始生成的值。
#查看 PostgreSQL 中序列的当前值,可以使用以下查询
SELECT last_value FROM your_sequence_name;
#获取序列的下一个值
SELECT nextval('your_sequence_name');

4.模式管理

#模式查看
\dn+#创建一个名为liuschematest的模式
create schema liuschematest;#修改归属(默认是归属在登录的用户下)
ALTER SCHEMA liuschematest OWNER TO webuser;#查看当前的模式
SELECT current_schema(); #切换模式到liuschematest
set search_path to liuschematest;#修改schema的名称
alter schema liuschematest rename to renametest;#设置默认模式,不设置默认连接上是public,按需使用
ALTER ROLE webuser SET search_path="liuschematest";

5.建表测试

#简单建表
create table liutest.test(id bigint ,name varchar(50),age int,password varchar(30));#使用IDENTITY自增方式建表测试
CREATE TABLE t_user (user_id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY ,user_name varchar(50) NOT NULL UNIQUE
)
;#插入数据
INSERT INTO t_user (user_name) values ('tttt');

6.增删改查

insert into test values(1,'test',21,'123');
update test set name = 'testchanged';
select * from test;
delete from test where name = 'testchanged';#删除表
drop table test;
DROP TABLE your_table CASCADE;#截断表
truncate table test;

7.备份与恢复

#导出全部数据和表结构(会导出所有的模式,一般不使用)
sys_dump -h localhost -U webuser -p 54321 -W -d liutest -f /home/testuser/all.sql#导出全部数据和表结构,指定只导出库和模式下的(推荐使用这种)
sys_dump -h localhost -U webuser -p 54321 -W -d liutest -n liuschematest -f /home/testuser/liuschematest.sql#导出表结构(-s说明只导出结构)
sys_dump -h localhost -U webuser -p 54321 -W -d liutest -n liuschematest -s -f /home/testuser/table.sql#导出数据(-a说明只导数据)
sys_dump -h localhost -U webuser -p 54321 -W -d liutest -n liuschematest -a -f /home/testuser/data.sql#导出数据和表结构(使用-t指定表名,多张表使用多个-t)
sys_dump -h localhost -U webuser -p 54321 -W -d liutest -n liuschematest -t liuschematest.biz_income_expenditure -t liuschematest.common_message -f /home/testuser/sometables.sql#参数说明
-W, --password force password prompt (should happen automatically),提示输入密码
-d, --dbname=DBNAME database to dump,指定数据库名
-n, --schema=PATTERN dump the specified schema(s) only,指定模式名
-N, --exclude-schema=PATTERN do NOT dump the specified schema(s),导出时不带模式名
-f, --file=FILENAME output file or directory name
-t, --table=PATTERN dump the specified table(s) only,指定表名,可以使用多个-t来指定多个表名
-T, --exclude-table=PATTERN  do NOT dump the specified table(s),排除表名,指定哪些表不用导出
-a, --data-only dump only the data, not the schema,只导出数据
-s, --schema-only dump only the schema, no data,只导表数据
#更详细的参数可以使用命令帮助
sys_dump --help#还原数据
ksql -h localhost -p 54321 -U webuser -d liutest < /home/testuser/all.sql
#如果直接在数据库命令下
\i /home/testuser/all.sql

8.时间更新(类似mysql的修改时间自动更新)

##先创建函数
CREATE OR REPLACE FUNCTION update_time_fn()  
RETURNS TRIGGER AS 
$$
BEGIN  NEW.update_time := current_timestamp;  RETURN NEW;  
END;
$$LANGUAGE plpgsql;##再创建触发器
CREATE TRIGGER biz_income_expenditure_update_time_trigger  
BEFORE UPDATE ON biz_income_expenditure  
FOR EACH ROW  
EXECUTE FUNCTION update_time_fn();

9.修改密码

#语法:
ALTER USER your_username WITH PASSWORD 'your_new_password';#示例:
ALTER USER webuser WITH PASSWORD 'abcd_1234';

更多的操作可参考PostgreSQL 教程:
https://www.runoob.com/postgresql/postgresql-tutorial.html

10.角色/用户管理

创建新角色/用户

CREATE USER webuser WITH PASSWORD '123456';
CREATE ROLE webuser WITH PASSWORD '123456';

授权登录

ALTER ROLE webuser LOGIN;

赋予角色/用户权限

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO newuser;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO newuser;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO newuser;
ALTER ROLE newuser CREATEDB;  -- 如果需要允许创建新数据库的话

GRANT 命令来赋予角色/用户权限

数据访问权限:
SELECT: 允许用户查询表中的数据。
INSERT: 允许用户向表中插入新行。
UPDATE: 允许用户修改表中的数据。
DELETE: 允许用户从表中删除行。
TRUNCATE: 允许用户清空表中的所有数据。例如,要允许 newuser 对 mydb 数据库中的所有表进行查询和插入操作,你可以执行以下命令:GRANT SELECT, INSERT ON ALL TABLES IN SCHEMA public TO newuser;
序列访问权限
USAGE: 允许用户使用序列。例如,要允许 newuser 使用 mydb 数据库中的所有序列,你可以执行以下命令:GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO newuser;
函数访问权限
EXECUTE: 允许用户调用函数。例如,要允许 newuser 调用 mydb 数据库中的所有函数,你可以执行以下命令:GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO newuser;
其他权限
SET: 允许用户更改会话级别的配置参数。
LOCK TABLES: 允许用户锁定表。
REFERENCES: 允许用户在表上创建外键约束。
...等等。例如,要允许 newuser 更改会话级别的配置参数,你可以执行以下命令GRANT SET ON ALL TABLES IN SCHEMA public TO newuser;

11.回收权限

在 PostgreSQL 中,如果你想回收某个角色或用户的权限,你可以使用 REVOKE 命令。以下是一些常用的权限回收示例:

回收数据访问权限

REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM newuser;  
REVOKE INSERT ON ALL TABLES IN SCHEMA public FROM newuser; 

回收序列访问权限

REVOKE USAGE ON ALL SEQUENCES IN SCHEMA public FROM newuser;

回收函数访问权限

REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM newuser;

回收数据库访问权限

ALTER ROLE newuser NOLOGIN;  -- 回收登录权限

回收其他权限

SET: 允许用户更改会话级别的配置参数。
LOCK TABLES: 允许用户锁定表。
REFERENCES: 允许用户在表上创建外键约束。
…等等。例如,要允许 newuser 更改会话级别的配置参数,你可以执行以下命令:

REVOKE SET ON ALL TABLES IN SCHEMA public FROM newuser;

请注意,在执行 REVOKE 命令之前,请确保你了解这些更改的影响,并确保在生产环境中进行适当的测试。

回收所有表权限

REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM newuser;  
REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public FROM newuser;  
REVOKE ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public FROM newuser;

回收登录权限(如果需要)

ALTER ROLE newuser NOLOGIN;  

12.删除用户

基本语法

DROP ROLE [IF EXISTS] role_name [, ...] [CASCADE | RESTRICT];IF EXISTS: 这个选项可以防止因角色不存在而引发的错误。
CASCADE: 这个选项将删除与该角色相关的所有权限和依赖项。
RESTRICT: 这个选项将阻止删除与该角色相关的任何权限和依赖项。
DROP ROLE IF EXISTS webuser
DROP ROLE IF EXISTS liutest CASCADE

13.mysql转postgresql后自增ID处理

在 MySQL 中,通常使用 AUTO_INCREMENT 属性来自动增加主键的值。而在 PostgreSQL 中,相应的机制是通过序列(SEQUENCE)和一个与之关联的默认值来实现的。

如果你在使用 Navicat 将 MySQL 数据表复制到 PostgreSQL 数据库时发现没有创建相应的序列,你需要手动创建序列并将其与表的主键关联。以下是创建序列并关联到表的步骤:

  1. 创建序列
    打开 PostgreSQL 数据库的查询窗口,创建一个新的序列。例如,如果你的表名为 my_table,主键列名为 id,你可以创建一个序列如下:

    CREATE SEQUENCE my_table_id_seq;
    
  2. 修改表结构
    接下来,你需要修改表结构,将主键列的默认值设置为刚刚创建的序列的下一个值。例如:

    ALTER TABLE my_table ALTER COLUMN id SET DEFAULT nextval('my_table_id_seq');
    
  3. 设置序列的所有权
    为了确保序列与表的主键列正确关联,并且在删除表时序列也会被删除,你可以设置序列的所有权:

    ALTER SEQUENCE my_table_id_seq OWNED BY my_table.id;
    
  4. 同步序列的值
    如果你已经将数据从 MySQL 表复制到了 PostgreSQL 表中,你可能需要同步序列的当前值,以确保新插入的行不会与现有的行产生主键冲突。你可以设置序列的当前值为主键列的最大值加一:

    SELECT setval('my_table_id_seq', COALESCE((SELECT MAX(id)+1 FROM my_table), 1), false);
    
  5. 测试插入
    在完成上述步骤后,尝试插入一行新数据以确保序列正常工作:

    INSERT INTO my_table (column1, column2, ...) VALUES (value1, value2, ...);
    

    如果没有指定 id 列的值,序列应该会自动为新行生成一个唯一的主键值。

请注意,上述 SQL 命令中的 my_tableid 需要替换为你实际的表名和主键列名。如果你的表有多个自增字段,你需要为每个字段创建一个独立的序列并进行相应的设置。

其他

0.相关文档

https://help.kingbase.com.cn/v8/development/develop-transfer/KStudio/index.html
https://www.cnblogs.com/yaoyushun/p/17628015.html

1.数据库编码修改

select pg_encoding_to_char(encoding) from pg_database where datname = ‘liutest’;

方法一:直接修改数据库编码
# 修改 datname 为你的数据库名字,两条命令效果相同,选择一个即可
update pg_database set encoding=6 where datname='postgres';
# 命令2
update pg_database set encoding=pg_char_to_encoding('UTF8') 
where datname='postgres';方法二:修改模板库编码,一劳永逸。
# 修改模板库template1编码, 同理可修改 template0
update pg_database 
set (encoding, datctype, datcollate)=(6, 'en_US.UTF8','en_US.UTF8') 
where datname = 'template1';方法三:创建/删除模板库
# 创建模板库,这是一条命令,SQL语法允许命令分行,以分号结束,但回车后,前一行命令不可修改
# 复制前先将第一行的 template1 改成你想要的名字,比如任何简单的名字: td 
create database template1 with 
template template0 
encoding='UTF8' 
lc_ctype='en_US.UTF8' 
lc_collate='en_US.UTF8' 
allow_connections=TRUE 
is_template=True;# 以后创建数据库指定模板创建即可
create database template mytemplate;# 也可以一劳永逸,删除原来的 template1, 重新创建即可
# 先将模板库变成普通数据库,使 datistemplate=True 可以将任何普通数据库变成模板库。
update pg_database set datistemplate=False where datname='template1';
# 删除数据库
drop database template1;

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

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

相关文章

react的多级路由定义

在写实验室项目的时候&#xff0c;有一个需求&#xff0c;在二级路由页面点击按钮&#xff0c;跳转到详情列表页面&#xff0c;同时三级路由不用在导航栏显示&#xff0c;效果图如下&#xff1a; 前期的尝试&#xff1a; 在route,js文件这样定义的&#xff1a; {path: music,…

mysql权限体系

提示&#xff1a;根据课程视频总结知识点------2024.05.15 文章目录 权限处理逻辑1、 能不能连接2、能不能执行操作 权限授予与回收1、创建用户2、授予权限3、查看权限4、回收权限5、 权限级别 账户安全管理1、用户权限设定原则2、历史文件泄密 用户权限设定原则1. 只读用户--数…

哈希表+DFS快速解决力扣129题:求根节点到叶节点数字之和

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…

平均工资数据分析之回归

链接: R语言实战——中国职工平均工资的变化分析——相关与回归分析 1、模型诊断和评估的方法 1. 残差分析 1、残差图 (Residual Plot)&#xff1a;用于检查残差是否存在非随机模式。理想情况下&#xff0c;残差应随机分布在零附近。 2、Q-Q 图 (Quantile-Quantile Plot)&am…

【liunx】yumvim

目录 Linux 软件包管理器 yum 关于 rzsz 注意事项 查看软件包 Linux开发工具 Linux编辑器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 简单vim配置 配置文件的位置 sudo提权 Linux 软件包管理器 yum 1.yum是什么&#xff1…

【前端】CSS基础(4)

文章目录 前言1、CSS常用属性1.1 文本属性1.1.1 文本对齐1.1.2 文本装饰1.1.3 文本缩进1.1.5 行高 前言 这篇博客仅仅是对CSS的基本结构进行了一些说明&#xff0c;关于CSS的更多讲解以及HTML、Javascript部分的讲解可以关注一下下面的专栏&#xff0c;会持续更新的。 链接&…

Day_5

1. Apache ECharts Apache ECharts 是一款基于 Javascript 的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表 官网地址&#xff1a;https://echarts.apache.org/zh/index.html 入门案例 快速入门&#x…

企业计算机服务器中了faust勒索病毒如何处理,faust勒索病毒解密恢复

随着网络技术的不断发展与应用&#xff0c;越来越多的企业利用网络走向了数字化办公模式&#xff0c;网络也极大地方便了企业生产运营&#xff0c;大大提高了企业生产效率&#xff0c;但对于众多企业来说&#xff0c;企业的数据安全一直是大家关心的主要话题&#xff0c;保护好…

fastjson2使用

说明&#xff1a;fastjson2是一个性能极致并且简单易用的Java JSON库&#xff08;官方语&#xff09;&#xff0c;本文介绍在Spring Boot项目中如何使用fastjson2。 创建项目 首先&#xff0c;创建一个Maven项目&#xff0c;引入fastjson2依赖&#xff0c;如下&#xff1a; …

战网国际服注册教程 暴雪战网国际服账号注册一站式教程分享

战网国际版&#xff0c;也即Battle.net环球版&#xff0c;是由暴雪娱乐操刀的全球化游戏交流枢纽&#xff0c;它突破地理限制&#xff0c;拥抱全世界的游戏玩家。与仅限特定地区的版本不同&#xff0c;国际版为玩家开辟了无障碍通道&#xff0c;让他们得以自由探索暴雪庞大游戏…

如何使用JMeter测试导入接口/导出接口?

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 今天上班&#xff0c;被开发问了一个问题&#xff1a;JM…

最小质数对-第12届蓝桥杯国赛Python真题解析

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第63讲。 最小质数对&#…

基于SSM的“羽毛球馆管理系统”的设计与实现(源码+数据库+文档)

基于SSM的“羽毛球馆管理系统”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统结构图 登录界面 后台用户添加 后台用户管理 球场添加 球场…

Linux 第三十三章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

大模型学习笔记九:模型微调

文章目录 一、什么时候需要Fine-Tuning二、用Hugging Face根据电影评论输出来对电影进行情感分类1)安装依赖2)操作流程3)名字解释4)代码导入库和加载模型、加载数据库、加载tokenlizer5)其他相关公共变量赋值(随机种子、标签集评价、标签转token_Id)6)处理数据集:转成…

Altium Designer封装库和元器件符号库下载与导入教程(SnapEDA 、Ultra Librarian、Alldatasheetcn)

1.AD封装库和元器件符号库下载网址 以下是一些全球热门的Altium Designer封装库和元器件符号库下载网址推荐&#xff1a; Altium Content Vault (现称为Altium Manufacturer Part Search)&#xff1a;这是Altium官方提供的元器件库&#xff0c;可以直接在Altium Designer中使用…

免费体验GPT-4o这5大功能,非常好用!

这几天&#xff0c;OpenAI发布了新的GPT版本&#xff0c;GPT-4o&#xff0c;比GPT4更加智能也更快。 据说&#xff0c;GPT-4o在文本、推理和编码智能方面实现了GPT-4 Turbo级别的性能&#xff0c;在多语言、文本、音频和视觉功能方面甚至超过了市面上所有同类产品。 有几个亮点…

数据结构复习指导之图的存储及基本操作

文章目录 图的存储及基本操作 考纲内容 复习提示 1.邻接矩阵法 2.邻接表法 3.十字链表 4.邻接多重表 5.图的基本操作 图的存储及基本操作 图的存储必须要完整、准确地反映顶点集和边集的信息。根据不同图的结构和算法&#xff0c;采用不同的存储方式将对程序的效率产生…

Python进度条工具——tqdm

原文链接&#xff1a;http://www.juzicode.com/python-note-tqdm 在安装Python库文件的时候我们经常可以看到这种进度条&#xff1a; 其实Python库中就自带了现成的工具库——tqdm。 tqdm读起来比较拗口&#xff0c;它是从“进程”的阿拉伯语taqaddum简化而来。 安装tqdm 使用…

C++二叉搜索树搜索二叉树二叉排序树

C二叉搜索树 1. 二叉搜索树的概念 二叉搜索树&#xff08;BST,Binary Search Tree)&#xff0c;也称为二叉排序树或二叉查找树。它与一般二叉树的区别在于&#xff1a;每个结点必须满足“左孩子大于自己&#xff0c;右孩子小于自己”的规则。在这种规则的约束下&#xff0c;二…