mysql - bash用户输入Mysql登录

标签 mysql bash mysql-error-1045

将从我想要完成的事情开始。我编写了一个菜单脚本来添加新数据库并回显以屏幕结果。但似乎无法让它使用变量登录。

这是我遇到问题的部分:

#!/bin/bash
while [[ "$yn" != "Yes" && "$yn" != "Y" && "$yn" != "y" && "$yn" != "yes" ]]; do
    echo "  Please, type password for root user.             #"
read -r  mysqlrp
    echo "  You have entered $mysqlrp as your MySQL password #"
    echo "  Is this correct? (Yes or No)            #"
      read yn
done
mysql -u root -p$mysqlrp

也尝试过:

mysql -u root -p${mysqlrp}

以及mysql -u root -p'${mysqlrp}'

我得到以下信息:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

即使当我尝试不使用脚本时也可以正常工作。

请帮忙, 提前致谢, 乔

最佳答案

要直接在命令行字符串中提供密码,您应该使用mysql --password=[password]See this article .

要提示用户输入密码,您可能应该使用类似的内容。

#!/bin/bash
read -p "Username: " uname
stty -echo
read -p "Password: " passw; echo
stty echo

您绝不能打印密码。并且在输入时也不应该看到它。

<小时/>
#!/bin/bash
read -p "Username: " uname
stty -echo
read -p "Password: " passw; echo
stty echo
mysql --user=$uname --password=$passw

这个脚本对我有用。如果不适合您,请检查您的 mysql 权限是否允许您从 localhost 登录。

关于mysql - bash用户输入Mysql登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5285485/

相关文章:

linux - 一个 Shell 脚本来模拟 wc 命令及其选项?

bash - 有没有等同于 bash 的 '!$' 的 vim?

linux - bash 脚本中的 Awk 读取字段

MySQL:除 root 用户外,用户 'test' @'localhost' 的访问被拒绝(使用密码:YES)

mysql - 不同表上的外键

php - 如何检查mysql中是否使用了限制?

javascript - 为什么我的关联未被识别并导致 SequelizeEagerLoadingError?

mysql - 用户 'root' @'localhost' 的访问被拒绝(使用密码 :YES) joomla install on windows 7 with web platform installer

php - MySQL访问被拒绝错误但一切正确!

php - 修改我的 php-mysql 机制以在结果中包含自定义多个复选框值