将从我想要完成的事情开始。我编写了一个菜单脚本来添加新数据库并回显以屏幕结果。但似乎无法让它使用变量登录。
这是我遇到问题的部分:
#!/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/