2012-04-26 38 views
-1

我在Ubuntu 10.10下新安裝的mySQL服務器副本遇到了一些嚴重的麻煩。我安裝apt並在那個時候提供了一個密碼。安裝很順利,但服務器表現得非常奇怪。Ubuntu 10.10中奇怪的mySQL行爲

首先,測試數據庫中,我創建了一個PHP文件與

mysql_connect("localhost", "root", "myPassword") or die(mysql_error()); 

其中MYPASSWORD是我進入的時候它要求,在安裝過程中的一個。這給了我一個拒絕訪問錯誤。我試圖通過shell進入mySQL服務器來尋求我讀到的解決方案。正常的語法沒有工作,並得到什麼,但「拒絕訪問」,我不得不這樣做

mysql -u root password myPassword 

然而,而不是一個mysql外殼,它只是吐出的參數和變量列表。所以在這一點上,我很難過;在過去的幾年中,我還沒有通過命令行使用mySQL,但這些行爲都不爲人所知,而且我也找不到與服務器交互的方式。

任何幫助,將不勝感激。

回答

2

用於提供密碼的mysql命令行參數是-p,而不是password。你也應該留出空間。例如:

mysql -uroot -pmyPassword 

如果你不想冒險您的密碼被曝光......

mysql -uroot -p 

...會提示您輸入密碼並隱藏字符鍵入時。

+0

我指出的奇怪之處在於使用-p參數會導致訪問被拒絕錯誤,無論我使用'-uroot'還是'-u root'。這部分是我的意思是「怪異的行爲」。 – dlwiest 2012-04-26 01:47:18

0

如果您安裝了apparmor(這是默認設置),那麼當您超出由ubuntu設置的狹義定義默認值時,它可能會導致問題。

的事情,MySQL是不允許接觸的定義如下:/etc/apparmor.d/abstractions/mysql

如果你把你的套接字文件的其他地方,你會得到一個訪問被拒絕的消息。

要在事情看起來更加緊密,運行mysql客戶端,像這樣:

strace -e file mysql <blah blah> 

這將打印出標準錯誤的任何系統級別的文件操作。然後您可以確切地看到哪個操作導致權限錯誤。如果您沒有看到問題,則可以使用-e network來查看網絡操作。