8

我是 MySql 的新手。在 postgres 中,我们可以使用 .pgpass 并保存用户密码,以便数据库可以在您访问或执行您的 sql 脚本时自动验证您的密码。我不必输入密码。

那么有没有办法在 linux 上为 mysql 做同样的事情呢?

谢谢

4

2 回答 2

15

是的,您可以将默认凭据和其他选项存储在您的主目录中的一个名为$HOME/.my.cnf的文件中

$ cat > $HOME/.my.cnf
[client]
user = scott
password = tiger
host = mydbserver
^D

在 MySQL 5.6 中,您还可以将此文件的加密版本存储在$HOME/.mylogin.cnf中,请参阅http://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html

$ mysql_config_editor set --user=scott --host=mydbserver --password
Enter password: ********
WARNING : 'client' path already exists and will be overwritten. 
 Continue? (Press y|Y for Yes, any other key for No) : y

$ mysql_config_editor print --all
[client]
user = scott
password = *****
host = mydbserver
于 2013-10-04T00:13:46.487 回答
1

您可以在快速 Bash 脚本中使用 MySQL 可执行文件可用的命令行参数来完成此操作。有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.6/en/mysql.html。基本上,以下行会将您登录到 MySQL

$>mysql --user=root --password=toor my_database

上面的命令将使用密码“toor”以root身份登录mysql数据库“my_database”

现在,但这变成了一个快速的 Bash 脚本(run_mysql.sh):

#!/bin/bash
/usr/bin/mysql --user=root --password=toor my_database

确保脚本是可执行的:

chmod +x ./run_mysql.sh

当然,请确保将此脚本安全地存储在其他用户无法访问的位置,例如您的主文件夹,并相应地设置权限。

于 2013-10-04T00:05:03.683 回答