我是靠谱客的博主 满意月饼,这篇文章主要介绍sh无法运行mysql_shell脚本执行mysql -e报错无法登录,现在分享给大家,希望可以做个参考。

为什么做

因为在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权限

149c16706733

image.png

最后

以上就是满意月饼最近收集整理的关于sh无法运行mysql_shell脚本执行mysql -e报错无法登录的全部内容,更多相关sh无法运行mysql_shell脚本执行mysql内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(79)

评论列表共有 0 条评论

立即
投稿
返回
顶部