我是Bash脚本新手。我想为我创建一个登录MySQL的脚本:
PASSWORD="MyPassword"
sudo service mysql start
mysql -u root -p $PASSWORD
但是,它会告诉我密码($PASSWORD
)不是数据库时会出错。
有什么办法吗?
如果我要问一些RTFM或UTFM,请表示歉意。
答案 0 :(得分:2)
来自man mysql
:
如果使用短选项表单(-p),则选项和密码之间不能有空格。
所以要么
mysql -u root -p"$PASSWORD"
或
mysql -u root --password "$PASSWORD"
答案 1 :(得分:1)
在命令行上使用密码是不安全的。
来自mysql用户指南:
这很方便但不安全。在某些系统上,您的密码对系统状态程序(例如ps)可见,其他用户可以调用它来显示命令行。
我建议您使用mysql_config_editor实用程序来存储数据库凭据。
mysql_config_editor set --login-path=YOUR_LOGIN_PATH --host=YOUR_HOST --user=YOUR_DB_USER --password
然后它将以交互方式请求密码
之后,您可以连接到您的数据库:
mysql --login-path=YOUR_LOGIN_PATH YOUR_DB
示例(设置凭据):
mysql_config_editor set --login-path=root --host=localhost --user=root --password
示例(在脚本中连接到db):
mysql --login-path=root YOUR_DB