2013-10-03 62 views
4

我是MySql的新手。在postgres中,我們可以使用.pgpass並保存用戶密碼,以便數據庫在您訪問或執行您的sql腳本時可以自動驗證您的密碼。我不必輸入密碼。在mysql中自動驗證密碼

那麼有什麼辦法可以在linux上爲mysql做同樣的事情嗎?

感謝

+0

這是否幫助? http://www.linuxjournal.com/node/1001956 –

+0

試了10次,並有這個錯誤'錯誤1045(28000):訪問拒絕用戶'用戶'@'localhost'(使用密碼:否)',但它的工作原理當我使用以下命令'mysql -u username -p database'。之後我必須輸入密碼。 – novo

回答

11

是的,你可以存儲默認憑據,並在你的home目錄中的其他選項,在一個叫$ 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 
+0

非常感謝。你的第一種方法只能找到。不過,我更喜歡第二個。但是,運行該命令後會出現'mysql_config_editor:command not found'。不知道有什麼問題。這是我的mysql版本'mysql Ver 14.14 Distrib 5.5.32,對於使用readline 6.2'的debian-linux-gnu(x86_64),運行'mysql --version'。 – novo

+1

mysql_config_editor是MySQL 5.6的一項新功能。我將編輯上述內容以使其更清楚。 –

+0

在MySQL 5.5中,您無法獲得加密的.mylogin.cnf功能。您應該小心限制$ HOME/.my.cnf上的文件權限。 –

1

你可以使用一個快速的bash腳本中使用MySQL的可執行程序的命令行參數來實現這一點。詳情請參閱http://dev.mysql.com/doc/refman/5.6/en/mysql.html查詢 。基本上,下面一行將讓您登錄到MySQL

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

上面的命令將使用密碼「托爾」

現在您登錄到MySQL數據庫「MY_DATABASE」爲根,但是到這個快速bash腳本(run_mysql.sh):

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

確保腳本是可執行的:

chmod +x ./run_mysql.sh 

當然,請確保將此腳本安全地存儲在其他用戶無法訪問的地方,例如您的主文件夾並相應地設置權限。

+0

謝謝,但這不是通用技術。如果我想與其他數據庫一起工作,我將不得不更改數據庫名稱。不過謝謝。 – novo