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