我是靠谱客的博主 满意月饼,最近开发中收集的这篇文章主要介绍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 -e报错无法登录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部