2015-10-29 80 views
0

我在CentOS 6.x服務器上運行MySQL Server 5.1.73。 我已經爲root用戶設置了密碼。 當我指定下面的命令時,它會將我登錄到mysql shell。連接MySQL與主機名和密碼時的奇怪行爲

[[email protected] ~]# mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 60384 

我檢查了主機名

mysql> SELECT @@hostname; 
+-------------------------+ 
| @@hostname    | 
+-------------------------+ 
| sandbox.hortonworks.com | 
+-------------------------+ 

現在我loggoff並嘗試與指定主機名明確登錄,並要求我提供它拋出拒絕訪問錯誤的密碼。

[[email protected] ~]# hostname -f 
sandbox.hortonworks.com 
[[email protected] ~]# mysql -u root -p -h sandbox.hortonworks.com 
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'sandbox.hortonworks.com' (using password: YES) 

即使陌生人部分: 我使用相同的命令,但除去-p參數(即,使用密碼=假),它記錄在成功而不詢問口令。

[[email protected] ~]# mysql -u root -h sandbox.hortonworks.com 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 61736 

任何人都可以告訴我是否缺少任何配置?

問候, -JE

回答

1

兩件事情:

我想到第一次登錄嘗試的作品,但二不因爲你的root用戶定義爲只[email protected] - 當您試圖通過一個連接外部接口(而不是本地主機或127.0.0.1),則無法以該用戶身份進行身份驗證。如果這是問題,則需要創建一個[email protected]用戶帳戶或更改現有的root用戶。

其次,沒有密碼的成功登錄可能沒有你想象的那麼成功。 MySQL會「幫助」以不同於你在某些情況下指定的用戶登錄你,看到這個問題:https://superuser.com/questions/266758/how-do-i-see-which-user-i-am-logged-in-as-in-mysql

mysql處理用戶的方式肯定會令人困惑(我不再是專家,我主要使用了PostgreSQL,所以我可能會在我的解釋中錯過一些東西),但這是我對你所看到的行爲的最好猜測。