Mongodb数据管理
Mongodb数据管理
1.登录数据库,查看默认的库
[root@db51~]# mongo> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB> use admin
switched to db admin
> show tables
system.version
>
- admin库:
admin
是 MongoDB 的管理数据库,用于存储用户、角色和系统范围的配置。具有admin
数据库权限的用户可以管理整个 MongoDB 实例 - **
config
库:**如果 MongoDB 部署为分片集群(sharded cluster),config
数据库会存储分片信息和路由元数据 - **
local
数据库:**存储的是与本地节点相关的数据,不会被复制到其他节点。例如存储复制集的元数据(如oplog.rs
集合
2.1 命令分类
DB对象相关命令;
db.[TAB][TAB]
db.help()db.zhiyong.[TAB][TAB]
db.zhiyong.help()
RS复制集相关命令(replication set);
rs.[TAB][TAB]
rs.help()
SH分片集群相关命令(sharding cluster);
sh.[TAB][TAB]
sh.help()
> rs.help
function() {print("\trs.status() { replSetGetStatus : 1 } checks repl set status");
.......> db.getname
xiaoQ.getname
2.2 库的管理
> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB# 相当于创建一个库
> use wzyboy;
switched to db wzyboy# 删除库
> db.dropDatabase();
{ "ok" : 1 }# 创建一个叫 a 表
> db.createCollection("a");
{ "ok" : 1 }
> show tables
a# 随意插入数据
switched to db wzy666
> db.test.insert({name:"zhangsan"})
WriteResult({ "nInserted" : 1 })
> db.stu.insert({id:101,name:"zhangsan",age:20,gender:"m"})
WriteResult({ "nInserted" : 1 })
> show tables;
stu# 查询指定数据
> db.log.find({uid:999})
{ "_id" : ObjectId("66b19bbddd8229605d070b7e"), "uid" : 999, "name" : "mongodb", "age" : 6, "date" : ISODate("2024-08-06T03:42:53.818Z") }# 设置显示50条信息
> DBQuery.shellBatchSize=50;
50> db.log.find()
...
# 显示出50条数据~
2.3 文档操作
# 数据录入到log表
> for(i=0;i<10000;i++){db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new Date()})}
WriteResult({ "nInserted" : 1 })# 查询数据行数
> db.log.count()
10000# 全表信息查询
> db.log.find()
{ "_id" : ObjectId("6403169ac7c3cb20a4ebd465"), "uid" : 0, "name" : "mongodb", "age" : 6, "date" : ISODate("2021-06-04T09:59:54.234Z") }
{ "_id" : ObjectId("6403169ac7c3cb20a4ebd466"), "uid" : 1, "name" : "mongodb", "age" : 6, "date" : ISODate("2021-06-04T09:59:54.240Z") }
{ "_id" : ObjectId("6403169ac7c3cb20a4ebd467"), "uid" : 2, "name" : "mongodb", "age" : 6, "date" : ISODate("2021-06-04T09:59:54.241Z") }
-- 默认每页显示20行数据信息# 每页显示50条记录信息
> DBQuery.shellBatchSize=50;
50
> db.log.find()# 按照条件查询数据
> db.log.find({uid:999})
{ "_id" : ObjectId("6403169ac7c3cb20a4ebd84c"), "uid" : 999, "name" : "mongodb", "age" : 6, "date" : ISODate("2021-06-04T09:59:54.548Z") }# 以标准的json格式输出内容
> db.log.find({uid:999}).pretty()
{"_id" : ObjectId("6403169ac7c3cb20a4ebd84c"),"uid" : 999,"name" : "mongodb","age" : 6,"date" : ISODate("2021-06-04T09:59:54.548Z")
}# 删除集合中所有记录,表示清空集合中的所有文档内容
> db.log.remove({})
WriteResult({ "nRemoved" : 10000 })
> db.log.find()# 或者表示将文档内容和集合信息全部删除
> db.log.drop()
true
> show tables# 查看集合存储信息
> for(i=0;i<10000;i++){db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new Date()})}
WriteResult({ "nInserted" : 1 })> db.log.totalSize()
40960# 或者集合中索引+数据库压缩存储之后的大小
> db.log.stats()
2.4 用户管理
用户管理概述
验证库(authenticationDatabase):建立用户时use到的库,就是验证库,在使用用户时,要加上验证库才能登录,主要限制远程
对于管理员用户,必须在admin下创建:
- 建立用户时,use到的库,就是此用户的验证库
- 登录时,必须明确指定验证库才能登录
- 通常,管理员用的验证库是admin,普通用户的验证库一般是所管理的库设置为验证库
- 如果直接登录到数据库,不进行use,默认的验证库是test,不是企业生产建议的
- 从3.6版本开始,不添加bindIp参数,默认不让远程登录,只能本地管理员登录(远程登录需要配置bindIp参数)
创建超级管理员
1.管理所有数据库(必须use admin再去创建)
> use admin
switched to db admin> db.createUser(
{"user": "root","pwd": "root123","roles": [{"role": "root","db": "admin"}]
}
)# 输出内容:
Successfully added user: {"user" : "root","roles" : [{"role" : "root","db" : "admin"}]
}# 验证用户是否创建成功
> db.auth('root','root123')# 查看指定用户
db.getUser("root")# 修改用户的密码,以root为例
// 切换到 admin 数据库
use admin
// 修改 root 用户的密码
db.changeUserPassword("root", "this_is_new_password")# 查看一个库的所有用户
use admin
db.getUsers()[{"_id" : "admin.app02","userId" : UUID("b9945460-b130-4958-8f9d-e7383a412e5d"),"user" : "app02","db" : "admin","roles" : [{"role" : "readWrite","db" : "wzyboy"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]},{"_id" : "admin.root","userId" : UUID("7d31739d-3535-4b76-99d2-e2b3def9d069"),"user" : "root","db" : "admin","roles" : [{"role" : "root","db" : "admin"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]}
]
2.配置文件中,加入以下验证功能配置,然后重启数据库,就可以实现mongodb身份验证功能
cat >> /mongodb/conf/mongodb.yaml <<EOF
security:authorization: enabled
EOF
3.进行用户登录验证,本地登录不需要加验证库信息
# 本地登录用户验证
[root@db51~]# mongo -uroot -proot123 admin> use admin
switched to db admin
> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB
wzy 0.000GB> use admin
switched to db admin
> db.auth('root','root123')
1
4.远程登录用户验证,远程登录必须加验证库信息
# 登录时就直接验证
[root@db51~]# mongo -uroot -proot123 10.0.0.51:27017/admin
> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB
wzy 0.000GB[root@db51~]# mongo 10.0.0.51:27017/admin
# 没有验证通过时不能看到数据库的
> show databases;
> use admin
switched to db admin
> db.auth('root','root123')
1
> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB
wzy 0.000GB
5.使用navicat工具进行连接
创建普通用户
1.创建一个普通用户app01,并授予对 wzyboy 库的管理权限
> use wzyboy
switched to db wzyboy
> db.createUser(
{user: "app01",pwd: "app01",roles: [ { role: "readWrite", db: "wzyboy" } ]
}
)# 输出结果:应用程序用户创建成功
Successfully added user: {"user" : "app01","roles" : [{"role" : "readWrite","db" : "wzyboy"}]
}# 应用程序用户是否创建成功
> db.auth('app01','app01')
1# 插入表测试
> db.student.insert({name:"zhangsan"})
WriteResult({ "nInserted" : 1 })# 验证数据写入成功
> DBQuery.shellBatchSize=2;
> db.student.find()
{ "_id" : ObjectId("6766509af1117827689ed0b2"), "name" : "zhangsan" }
2.进行用户登录验证
# 本地登录用户验证,本地登录应用程序用户登录也需要加验证库信息
[root@db51~]# mongo -uapp01 -papp01 wzyboy> use wzyboy> show tables;
log
stu
test# 远程登录用户验证
[mongod@master ~]$ mongo -uapp01 -papp01 192.168.30.101:27017/wzyboy
> use admin
switched to db admin
> db.auth('app01','app01')
Error: Authentication failed.
0
-- 访问非验证库会出现报错信息
> use wzyboy
switched to db wzyboy
> db.auth('app01','app01')
1
-- 远程登录必须加验证库信息,访问对应验证库信息会顺利完成验证
用户删除
删除指定用户,必须进入到指定的验证库中,才能删除相应的用户信息
[root@db51~]# mongo -uroot -proot123 10.0.0.51:27017/admin
> use wzyboy
> db.createUser ({user:"app02",pwd:"app02",roles:[{role:"readWrite",db:"wzyboy"}]})> use wzyboy;
> db.dropUser("app02")
true
用户总结
创建用户要有验证库信息,管理员对应admin库,普通用户对应要管理的库
用户进行数据库服务远程登录时,要注意登录命令中有验证库信息
2.5 MongoDB的数据备份
2.5.1 数备备份/恢复工具介绍
序号 | 备份工具命令 | 恢复工具命令 |
---|---|---|
逻辑备份-单表迁移 json csv | mongoexport | mongoimport |
物理备份-全库操作 分库分表 | mongodump | mongorestore |
两种类型的备份恢复工具应用场景区别:
类型一:(mongoexport/mongoimport)
- 异构平台迁移,比如:mysql <—> mongodb
- 相同平台迁移,比如:跨版本迁移 mongodb 2 —> mongodb 3
类型二:(mongodump/mongorestore)
- 日常数据信息备份保存使用;
- 日常数据信息恢复修复使用;
2.5.2 数据库导出
1 mongoexport
数据导出工具:mongoexport
获取帮助:mongoexport --help
参数 | 解释说明 |
---|---|
-h | 指明数据库宿主机的IP |
-u | 指明数据库宿主机的用户名 |
-p | 指明数据库的密码 |
-d | 指定数据库的名称 |
-c | 指定数据集合名称 |
-f | 指明要导出哪些列 |
-o | 指明导出后的文件名 |
-q | 指明导出数据的过滤条件 |
–authenticationDatabase | 指明验证库信息 |
1.没有使用密码时的备份方式。
本次备份的是之前分片集群里的zhiyong库中的vast集合
mongoexport --port 38017 -d zhiyong -c vast -o /mongodb/vast.json
2.如果设置了认证,那么备份方式为:
mongoexport \
-uroot -proot123 --port 27017 \
--authenticationDatabase admin -d zhiyong -c vast \
-o /mongodb/vast.json
3.单表 vast 备份为csv格式
mongoexport \
--port 38017 -d zhiyong -c vast --type=csv \
-f id,name,age,date \
-o /mongodb/vast.csv
2 mongodump
1.全量备份数据(也可以-d 指定要备份的库)
mongodump \-h localhost:27017 \-o /tmp/mong_export \-u root \-p='123456789' \--authenticationDatabase=admin# 查看备份成功的数据
[root@db51 ~]# ll /tmp/mong_export/
drwxr-xr-x 2 root root 4096 Feb 12 17:20 admin
drwxr-xr-x 2 root root 4096 Feb 12 17:22 wzyboy
2.创建一个新的实例27018,执行数据恢复操作
mongorestore \-h localhost:27018 \/tmp/mong_export
3.登录27018实例,验证恢复的库wzyboy
mongo --host 127.0.0.1 --port 27018> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB
wzyboy 0.000GB
> use wzyboy;
switched to db wzyboy
> show tables;
a
test
恢复选项
1.注:如果设置了密码可以这样进行数据恢复
mongorestore \-h localhost:27018 \-u root \-p='aa' \--authenticationDatabase=admin \/tmp/mong_export
2.如果只需要恢复某个数据库,可以指定数据库名称
mongorestore \-h localhost:27018 \--db wzyboy \/tmp/mong_export/wzyboy
3.如果只需要恢复某个集合,可以指定集合名称:
mongorestore \-h localhost:27018 \/tmp/mong_export/wzyboy \--collection your_collection_name \/tmp/mong_export/your_database_name/your_collection_name.bson
2.5.3 数据导入mongoimport
参数 | 解释说明 |
---|---|
-h | 指明数据库宿主机的IP |
-u | 指明数据库宿主机的用户名 |
-p | 指明数据库的密码 |
-d | 指定数据库的名称 |
-c | 指定数据集合名称 |
-f | 指明要导入哪些列 |
-j | 指定并行导入的行数信息 |
–authenticationDatabase | 指明验证库信息 |
1 json恢复
1.带密码的备份:
如果导入的表已经存在,可以在导入命令中加入 drop参数,将源表删除在导入
mongoimport \
-uroot -proot123 --port 27017 \
--authenticationDatabase admin \
-d zhiyong -c vast1 /mongodb/log.json
2.还是以分片集群为例测试数据导入:
mongoimport --port 38017 \
-d zhiyong -c vast1 /mongodb/vast.json
3.验证导入成功
[root@db51~]# mongo --port 38017mongos> use zhiyong;mongos> show tables;
vast
vast1
2 csv恢复
如果要带入csv格式文件中的内容,需要通过–type参数指定导入格式
还是用之前导出的csv文件
ls /mongodb/vast.*
/mongodb/vast.csv /mongodb/vast.json
1.csv格式的文件头行,headerline参数表示指定第一行是列名,不需要导入
mongoimport --port 38017 -d zhiyong -c vast2 --type=csv --headerline --file /mongodb/vast.csv
2.验证导入成功
mongos> show tables;
vast
vast1
vast2
2.5.4 异构平台迁移案例
1.以mysql8.0.26导出json为例,需开启安全目录设置
cat >> /data/3306/my.cnf <<EOF
secure-file-priv=/tmp
EOF
2.开始把数据导出为/tmp/json
select * from world.city into outfile '/tmp/city.csv' fields terminated by ',';
3.处理备份后的csv文件,添加表头信息
vim /tmp/city.csv
ID,Name,CountryCode,District,Population
4.迁移数据导入到mongodb数据库
mongoimport --port 38017 -d world -c city --type=csv -f \
ID,Name,CountryCode,District,Population \
--file /tmp/city.csv
5.在navicat查看数据
6.MySQL导出数据为 csv
先创建表,接受要存储的数据
DROP TABLE IF EXISTS wzy1.test_info;CREATE TABLE wzy1.test_info (id INT,city_name VARCHAR(255),country_code VARCHAR(10),region VARCHAR(255),population INT
);
iv=/tmp
EOF
2.开始把数据导出为/tmp/json```sql
select * from world.city into outfile '/tmp/city.csv' fields terminated by ',';
3.处理备份后的csv文件,添加表头信息
vim /tmp/city.csv
ID,Name,CountryCode,District,Population
4.迁移数据导入到mongodb数据库
mongoimport --port 38017 -d world -c city --type=csv -f \
ID,Name,CountryCode,District,Population \
--file /tmp/city.csv
5.在navicat查看数据
[外链图片转存中…(img-axmKWEED-1739555316937)]
6.MySQL导出数据为 csv
先创建表,接受要存储的数据
DROP TABLE IF EXISTS wzy1.test_info;CREATE TABLE wzy1.test_info (id INT,city_name VARCHAR(255),country_code VARCHAR(10),region VARCHAR(255),population INT
);
相关文章:

Mongodb数据管理
Mongodb数据管理 1.登录数据库,查看默认的库 [rootdb51~]# mongo> show databases; admin 0.000GB config 0.000GB local 0.000GB> use admin switched to db admin > show tables system.version > admin库:admin 是 MongoDB 的管理…...

Django 创建表 choices的妙用:get_<field_name>_display()
1.定义choices 我在创建表时,对于性别这个字段,定义了choices 选项,1代表男,2代表女 mysql中表的数据如下,里面存储的是1或2 如果我们在网页上展示的时候,想展示“男”或“女”,而不是数字1或2…...
Spring Boot 集成 Kettle
Kettle 简介 Kettle 最初由 Matt Casters 开发,是 Pentaho 数据集成平台的一部分。它提供了一个用户友好的界面和丰富的功能集,使用户能够轻松地设计、执行和监控 ETL 任务。Kettle 通过其强大的功能和灵活性,帮助企业高效地处理大规模数据集…...

自学Java-面向对象高级(final、单例类、枚举类、抽象类、接口)
自学Java-面向对象高级(final、单例类、枚举类、抽象类、接口) 一、final关键字1、认识final关键字2、final修饰变量的注意3、常量 二、单例类(设计模式)1、设计模式的概念2、单例设计模式3、单例类有很多形式4、懒汉式单例类5、小…...
Hutool - Cache:简单而强大的缓存实现
目录 1. 缓存简介 2. 引入依赖 3. 常见缓存类型及使用示例 3.1 FIFO 缓存(先进先出缓存) 3.2 LRU 缓存(最近最少使用缓存) 3.3 定时缓存 4. 缓存的基本操作 5. 总结 1. 缓存简介 在软件开发中,缓存是一种常用的…...

DeepSeek 通过 API 对接第三方客户端 告别“服务器繁忙”
本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 上一期分享了如何在本地部署 DeepSeek R1 模型,但通过命令行运行的本地模型,问答的交互也要使用命令行,体验并不是很好。这期分享几个第三方客户端,涵盖了桌…...
Python 基础-循环
目录 简介 break continue 小结 简介 要计算123,我们可以直接写表达式: >>> 1 2 3 6要计算123...10,勉强也能写出来。 但是,要计算123...10000,直接写表达式就不可能了。 为了让计算机能计算成千上…...
Java和SQL测试、性能监控中常用工具
下面我会详细列举一些在Java和SQL测试、调试、性能监控中常用的工具,并结合项目中提到的各个技术点说明如何选择合适的工具和方法。 一、Java项目常用的测试、调试与性能监控工具 单元测试与集成测试:JUnit/TestNG: 用于编写单元测试和集成测…...

SQL 注入攻击详解[基础篇]:Web 应用程序安全漏洞与防御策略
目录 SQL注入的简介 现代 Web 应用程序中的数据库交互与 SQL 注入攻击 数据库管理系统(DBMS)架构与 SQL 注入 什么是 SQL 注入? SQL 注入的工作原理 SQL 注入的用例与影响 如何预防 SQL 注入? 数据库分类 数据库类型&am…...
【ArcGIS Pro二次开发】(87):样式_Style的用法
.Stylx类型的文件即为样式库文件,保存了符号样式。 1、根据名字获取当前工程中的style //获取当前工程中的所有style var ProjectStyles Project.Current.GetItems<StyleProjectItem>();//根据名字找出指定的style StyleProjectItem style ProjectStyles.F…...

DEX-EE三指灵巧手:扩展AI与机器人研究的边界
DEX-EE三指灵巧手,由Shadow Robot与Google DeepMind合作开发,以其先进技术和设计,正在引领AI与机器人研究的新趋势。其高精度传感器和灵活的机械手指,能够捕捉复杂的环境数据,为强化学习实验提供了可靠支持。 Shadow R…...
简站主题:简洁、实用、SEO友好、安全性高和后期易于维护的wordpress主题
简站主题以其简洁的设计风格、实用的功能、优化的SEO性能和高安全性而受到广泛好评。 简洁:简站主题采用扁平化设计风格,界面简洁明了,提供多种布局和颜色方案,适合各种类型的网站,如个人博客和企业网站。 实用&…...
23种设计模式 - 责任链
模式定义 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,允许多个对象按链式顺序处理请求,直到其中一个对象处理为止。该模式将请求的发送者和接收者解耦,使多个对象都有机会处理请求。 模式结构…...
Flink SQL与Doris实时数仓Join实战教程(理论+实例保姆级教程)
目录 第一章:Regular Joins 深度解析 1.1 核心原理与适用场景 1.2 电商订单 - 商品实时关联案例 1.2.1 数据流设计 1.2.2 Doris 表设计优化 1.2.3 性能调优要点 第二章:Interval Joins 实战应用 2.1 时间区间关联原理 2.2 优惠券使用有效性验证 2.2.1 业务场景说明 …...

算法——舞蹈链算法
一,基本概念 算法简介 舞蹈链算法(Dancing Links,简称 DLX)是一种高效解决精确覆盖问题的算法,实际上是一种数据结构,可以用来实现 X算法,以解决精确覆盖问题。由高德纳(Donald E.…...
【复现DeepSeek-R1之Open R1实战】系列6:GRPO源码逐行深度解析(上)
目录 4 GRPO源码分析4.1 数据类 GRPOScriptArguments4.2 系统提示字符串 SYSTEM_PROMPT4.3 奖励函数4.3.1 accuracy_reward函数4.3.2 verify函数4.3.3 format_reward函数 4.4 将数据集格式化为对话形式4.5 初始化GRPO Trainer 【复现DeepSeek-R1之Open R1实战】系列3࿱…...

若依Flowable工作流版本监听器使用方法
1.前言 本文详细介绍如何在若依Flowable工作流版本(RuoYi-Vue-Flowable)中配置执行监听器和任务监听器。是以我二次开发的代码为基础,介绍如何配置监听器,已解决源码在新增或删除监听器出现的问题,如果需要二次开发的…...
机器视觉--图像的运算(乘法)
一、引言 在图像处理领域,Halcon 是一款功能强大且广泛应用的机器视觉软件库。它提供了丰富的算子和工具,能够满足各种复杂的图像处理需求。图像的乘法运算作为其中一种基础操作,虽然不像一些边缘检测、形态学处理等操作那样被频繁提及&…...

突破反爬困境:从服务端渲染到客户端SPA,爬虫环境的演变与新挑战(一)
声明 本文所讨论的内容及技术均纯属学术交流与技术研究目的,旨在探讨和总结互联网数据流动、前后端技术架构及安全防御中的技术演进。文中提及的各类技术手段和策略均仅供技术人员在合法与合规的前提下进行研究、学习与防御测试之用。 作者不支持亦不鼓励任何未经授…...

matlab下载安装图文教程
【matlab介绍】 MATLAB是一款由美国MathWorks公司开发的专业计算软件,主要应用于数值计算、可视化程序设计、交互式程序设计等高科技计算环境。以下是关于MATLAB的简要介绍: MATLAB是MATrix LABoratory(矩阵实验室)的缩写&#…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...

五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...