概述
为什么做
因为在MySQL命令行涉及到明文密码会被审计,所以需要使用脚本来执行一些明文密码的sql,例如创建用户等sql。
脚本内容
#!/bin/bash
#防止数据库明文密码展示
#注意查看mysql客户端的环境变量
#base64密码解密
passwd=$(printf "%s" eWphejkxYit3bA== | base64 -d)
mysql -uadmin -pGta@2019 -h 10.12.0.111 -e "grant all on *.* to 'user11'@'%' identified by '$passwd' ;"
报错信息如下:
ERROR 1045 (28000) at line 1: Access denied for user 'admin'@'%' (using password: YES)
grant语句换成其他sql则可以执行
#!/bin/bash
#防止数据库明文密码展示
#注意查看mysql客户端的环境变量
passwd=$(printf "%s" eWphejkxYit3bA== | base64 -d)
mysql -uadmin -p -h 10.12.0.111 -e "select 1 ;show databases; "
Enter password:
+---+
| 1 |
+---+
| 1 |
+---+
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
错误原因初步猜测是shell的转义的问题
原因:
grant all 不等于有Grant_priv权限
image.png
最后
以上就是满意月饼为你收集整理的sh无法运行mysql_shell脚本执行mysql -e报错无法登录的全部内容,希望文章能够帮你解决sh无法运行mysql_shell脚本执行mysql -e报错无法登录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复