Mysql 和MongoDB用户访问权限问题

news/2024/10/22 12:41:43/

Mysql

刚给二线运维排查了一个问题,Mysql安装完可用,且可用navicat连接,项目中通过127.0.0.1去连数据库报错了。错误是access denied for user ‘root’@localhost,排查思路

1. 密码是否正确

(不需要重置。到Mysql的安装目录下找到my.ini,在Mysqld 后添加skip-grant-tables,这样可不用密码登陆。eg: mysql -uroot -p; )

1. 进入mysql安装目录,找到my.ini
2. 在[mysqld] 后面敲入:skip-grant-tables
3. 重启服务, net stop mysqld;net start msyqld
4.  通过命令进行密码修改:alter user root@'localhost' identified by 'testByZl*!1234';
5. 删除掉my.ini中添加的skip-grant-tables; 并完成mysql重启,参考3步即可

2.授权问题

数据库安装好,建完用户后,需要对用户进行权限授予,目的是让用户对数据库有一系列执行操作,包括但不限于DDL语句和SQL语句。授权通常用到下面语句

GRANT ALL PRIVILEGES ON *.* TO 'usrname'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

今天遇到的问题是第二个问题导致的。未授权,解决该问题用到的语句为

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'  IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

接下来说一下%和localhost区别
【本地主机限制】grant all privileges on . to ‘usename’@‘localhost’

【任意主机允许】grant all privileges on . to ‘usename’@‘%’
它两区别在于 第一个连接为本地主机限制,用户仅被 授权从本地主机(即Mysql所在的服务器)访问数据 库。这种限制用于提高数据库的安全性。 第二个连接%是通配符,表示用户可以从八喜何IP地址访问数据库,允许远程客户端访问数据库。

Mongo 连接报 Authentication failed

在这里插入图片描述

Mongo创建好后,也是需要给用户授权的,不然只是单独create user后访问库也会报Authentication failed。下面创建用户及授权用户大致整理如下所示:

Mongo 创建用户

use calamity
db.createUser({user: "calamity",pwd: "Gq40H1%44W%44nHy",roles: [ { role: "readWrite", db: "calamity" }]}
)

mongo 授权用户

需要组当前用户授予admin库的只读权限,这样才能通过admin库进行业务库的授权。因些需要执行以下语句

db.grantRolesToUser("calamity",[{ role: "read", db: "admin" }]
)

Mongo库restore操作

需要测试数据,导了个tar包,打开看都是bson、json 文件,需要把相应的文件copy到mongo 安装路径下的db下面,可以通过mongorestore执行。我先是把tar包解压缩了,然后将其目录下文件转成.gz文件,然后执行了mongoresote命令。分别如下所示:

1.tar 解压缩

tar -xvf calamity.tar

2. 转在gz文件

之所以有这步,是因为这前存的restore命令是针对.gz文件的,懒于重新编辑命令,所以闭着眼睛执行了这步操作

 gzip -r calamity  # calamity是解tar后的文件夹 -r 是说将其下的所有文件打成gz

3. mongorestore执行

mongorestore --uri="mongodb://calamity:Gq40H1%44W%44nHy@ip1:27017,ip2:27017,ip3:27017/?replicaSet=rs0&authSource=calamity"  -d calamity  /home/data/db --gzip

其它 mongorestoe 其它命令参考

//压缩备份
mongodump -u csms -p Sh%2523mkaJaaa11 --authenticationDatabase csms -d csms -o /home/backup --gzip
mongodump -u csms -p csms --authenticationDatabase csms -d csms -c  zl.position_history_202212 -o /home/backup --gzip//恢复还原
mongorestore -u csms -p Sh%2523mkaJaaa11 --authenticationDatabase csms -d csms  /home/backup/csms --gzip
mongorestore --uri="mongodb://admin:Sh%2523mkaJaaa11 @192.168.1.1:27027192.168.1.12:27027,192.168.1.13:27027/?authSource=admin&replicaSet=dev_rs0" -d csms_lgyz  /home/backup/csms --gzip
mongorestore --uri="mongodb://admin:Sh%2523mkaJaaa11 @192.168.1.1:27027192.168.1.12:27027,192.168.1.13:27027/?authSource=admin&replicaSet=dev_rs0" -d csms_lgyz -c cmss.analog_minute_his_202307  /home/backup/csms/cmss.analog_minute_his_202307.bson.gz --gzip

http://www.ppmy.cn/news/1541064.html

相关文章

流批一体计算引擎-17-[Flink]中的Table API常用算子

文章目录 1 概述&示例1.1 data.csv1.2 代码示例2 操作算子2.1 扫描、投影和过滤2.1.1 from_path【流批】2.1.2 from_elements【流批】2.1.3 select【流批】2.1.4 alias【流批】2.1.5 where【流批】2.1.6 filter【流批】2.2 列操作2.2.1 add_columns【流批】2.2.2 add_or_re…

13 django管理系统 - 注册与登录 - 中间件控制访问

去管理员列表中,获取刚才登录的用户session: 用户发来请求,获取cookie随机字符串,拿着随机字符串,看看session中有没有 通过request.session.get("user_info")来获取 def admin_list(request):# 获取当前登…

安装和简单使用Milvus

安装和简单使用Milvus 1 介绍 Milvus是国产的高性能分布式向量数据库。 # Milvus官网 https://milvus.io/# 安装文档 https://milvus.io/docs/install-overview.md# Python的对应关系和接口文档 https://milvus.io/api-reference/pymilvus/v2.4.x/About.md2 安装Milvus 2.1…

解析带有MyBatis语法的SQL字符串,获取最终的可执行SQL

有一个带有mybatis语法的sql语句&#xff0c;如下&#xff1a; select * from cfg_export_template where id #{id} <if testid ! null> AND 1 1 </if>需求是将sql和占位符相关的数据丢给mybatis&#xff0c;获取到最终可执行的SQL。 解决思路&#xff1a; 1、像…

R语言绘制Venn图(文氏图、温氏图、维恩图、范氏图、韦恩图)

Venn图&#xff0c;又称文氏图&#xff0c;标题中其他名字也是它的别称&#xff0c;由封闭圆形组成&#xff0c;代表不同集合。圆形重叠部分表示集合交集&#xff0c;非重叠处为独有元素。在生物学、统计学等领域广泛应用&#xff0c;可展示不同数据集相似性与差异&#xff0c;…

企业电子印章主要通过以下几种方式进行防伪

企业电子印章主要通过以下几种方式进行防伪&#xff1a; 一、数字证书和加密技术 数字证书认证 企业电子印章依托数字证书&#xff0c;数字证书由权威的第三方数字认证机构颁发&#xff0c;确保了印章使用者的身份真实性。 数字证书如同企业在数字世界的身份证&#xff0c;包…

wpf grid 的用法

WPF中的Grid是一种布局控件&#xff0c;可用于将子控件按照行和列的方式排列。 以下是Grid控件的用法&#xff1a; 在XAML文件中&#xff0c;添加一个Grid控件&#xff1a; <Grid> </Grid>在Grid控件中&#xff0c;添加行和列定义&#xff1a; <Grid><…

Uptime Kuma: 全面的开源网站监控解决方案

在当今数字化时代,网站和服务的可用性对于企业和个人来说至关重要。Uptime Kuma作为一款功能强大的开源监控工具,为用户提供了全面的网站和服务监控解决方案。本文将深入介绍Uptime Kuma的特性、安装方法以及更新维护,帮助读者了解这一优秀的监控工具。 主要特性 Uptime Kuma…