Mysql
如何讓 MySQL 客戶端從 mylogin.cnf 讀取密碼?
我正在嘗試使 mysql 客戶端連接到 mysql 伺服器,而無需以互動方式提供密碼。採取的步驟:
1)首先創建一個mylogin.cnf文件
$ mysql_config_editor set --user=<user> --password --host=<host> Enter password:
2)文件創建成功:
$ ls -la .mylogin.cnf -rw-------. 1 urmt urmt 136 Dec 19 11:01 .mylogin.cnf $ mysql_config_editor print --all [client] user = <user> password = ***** host = <host>
3)使用mysql客戶端連接
$ mysql <dbname> ERROR 1045 (28000): Access denied for user '<user>'@'<host>' (using password: NO)
是否有預設值/配置使客戶端忽略 mylogin.cnf 中的密碼?從文件中正確讀取了使用者和主機屬性。
如果我在命令行上提供密碼,我就可以正常連接:
$ mysql -p <dbname> Enter password: Reading table information... ... mysql>
MySQL 客戶端版本是 5.6.22,MySQL Server 版本是 5.6.22,都在 Oracle Linux 6 上。客戶端和伺服器在不同的主機上。
謝謝
無論如何,您可能會在某處保存密碼。即使是 MySQL 5.6 登錄路徑,任何有動機的人都可以輕鬆解密。該警告說,這將是一個簡單的解決方案。
在您的環境腳本(例如
~/.profile
或~/.bashrc
)中,設置
alias mysql='mysql -uUser -pPasswd -hHostname'
(當然,輸入您想要的使用者、密碼和主機名。)
shell重新登錄後,你應該可以簡單地做
mysql
…這將使用您的別名並連接到數據庫並忽略
.my.cnf
文件中的任何密碼。**安全注意事項:**如果您的伺服器上有其他使用者,您可能需要 chmod 700 您的配置文件腳本,這樣密碼就不會被其他人輕易訪問。任何具有 root 或 sudo 的管理員仍然可以看到它;沒辦法。