2010-09-12 161 views
40

我已經在本地機器上安裝了MySQL服務器企業5.1,現在我想安裝phpMyAdmin,但它不起作用。phpMyAdmin拋出#2002無法登錄到MySQL服務器phpmyadmin

我有我的服務器根目錄的紅外phpMyAdmin,瀏覽到「本地主機/ phpMyAdmin/setup/index.php」,啓動了一個新的服務器,我改變的唯一設置是填寫我的MySQL密碼「 config認證」

所以,現在當我試圖登錄我得到一個錯誤信息說:‘2002年#無法登錄到MySQL服務器的phpmyadmin’

有誰知道什麼是錯?自昨天以來我一直有這個問題。

+1

您是否使用Cookie身份驗證?這是你在配置文件中沒有數據庫證書的地方(我認爲主機除外),並且您在Web應用程序中提供了用戶名和密碼。我相信,或者你可以在配置文件中提供憑證,並跳過登錄過程(顯然只適用於非互聯網服務器)。您可以使用您用於登錄到phpMyAdmin的憑據從mysql控制檯(/path/to/mysql.exe -u用戶名-h本地主機-p)登錄嗎? – halfer 2012-08-03 13:55:14

+0

什麼都不會工作,我也發生同樣的錯誤,我嘗試了很多事情,但沒有運氣。我建議你將你的mysql數據文件夾保存到一些安全的地方並重新安裝phpmyadmin。它會正常工作,不要嘗試下次輸入密碼 – 2013-03-11 17:21:29

+1

@Reddox答案解決了我的問題。也許這應該標記爲已解決。 – apis17 2013-07-26 00:20:34

回答

3

你在你的機器上設置了MySQL嗎?這聽起來像你使用Windows; MySQL在您的機器上作爲「服務」運行(右鍵單擊我的電腦 - >管理 - >服務)。

+0

是的,這是正確的。我正在使用Windows,MySQL作爲一項稱爲MySQL的服務運行,並且正在運行。我也使用IIS作爲服務器,而不是Apache – narancha 2010-09-12 11:10:06

1
  • 右擊我的電腦 - >管理 - >服務
  • 選擇「服務」下的「服務和應用程序」,從右邊的窗格中
  • 然後搜索「Zend的發展」的服務。
  • 當您找到它時,雙擊以啓動該服務。

現在,您應該可以登錄到phpMyAdmin。

+1

這傢伙只是解壓縮包。是什麼讓你覺得它被安裝? – RichardTheKiwi 2012-10-05 22:00:03

0

在'/etc/php5/apache2/php.ini'文件中的ubuntu操作系統中,執行this頁所述的配置。

+0

頁面未加載 – 2015-07-14 06:31:36

117

如果您收到的#2002 Cannot log in to the MySQL server錯誤而到phpMyAdmin登錄,請嘗試編輯phpmyadmin/config.inc.php和變化:

$cfg['Servers'][$i]['host'] = 'localhost';

到:

$cfg['Servers'][$i]['host'] = '127.0.0.1';

解決方案從Ryan's blog

編輯(2015年3月20日):

請注意,如果您正在全新安裝,config.inc.php可能不存在。您需要重命名/複製config.sample.inc.php,然後更改相關行

+1

最近更改了服務器以在Windows 8上偵聽(綁定):: 1。在config中更改爲localhost是有效的。 – apis17 2013-07-26 00:19:29

+7

我試圖解決#2002錯誤。沒有雪茄。 – willdanceforfun 2013-12-06 12:15:29

+0

它的工作!謝謝 – zavr 2014-07-16 06:42:35

4

如果您在完成安裝腳本後忘記(如我那樣)將config.inc.php移動到其正確位置,也可能會導致此問題。

使得config文件夾並做chmod o+rw config和去localhost/phpmyadmin/setup並按照這些步驟後,你需要回到命令行和完成的事情了:

mv config/config.inc.php .   # move file to current directory 
chmod o-rw config.inc.php   # remove world read and write permissions 
rm -rf config      # remove not needed directory 

看到https://phpmyadmin.readthedocs.org/en/latest/setup.html

+0

謝謝!這對我來說很有用。 – 2014-09-23 07:19:26

+0

這工作,但它仍然有點莫名其妙。該設置告訴你將config.inc.php文件移動到config /目錄。即使在新的phpMyAdmin,所以它看起來好像這是該文件所屬的地方,但我想不是。 – superuserdo 2015-06-09 14:18:41

9
完整說明

背景: 我正在使用Linux Mint 13.在我的情況下,當我重新啓動計算機並且我的DHCP分配了一個新的本地IP地址(來自192.168。0.2到192.168.0.4)到我的桌面。

sudo gedit /etc/mysql/my.cnf 

更新

bind-address = 192.168.0.2 

bind-address = localhost 

這解決了這一問題。請享用。

+1

將我的'bind-address'從默認的'127.0.0.1'改爲'localhost'解決了我在Ubuntu服務器上遇到的問題。 – 2014-11-19 19:43:31

+0

謝謝,它的工作原理。在我的情況下,我將我的服務器移動到另一個具有以前備份的IP,因此綁定地址仍然使用舊IP。 – fxbayuanggara 2017-03-20 13:51:24

0

在服務器遭到攻擊後,我使用DDoS(實際上是滲透測試工具)也遇到同樣的問題。

我首先去了/etc/var/mysql/error.log,看到InnoDB有一個文件鎖。

通過重新啓動服務器可以立即解決問題,但這不是面向未來的。

0

CAUTION: This method completely removes MySQL data!

我有同樣的問題在Ubuntu 12.10中,MySQL 5.5

我已經測試了許多與我的問題的答案,但沒有主題的工作

最後我不得不重新安裝刪除我MySQL服務器完全,然後我重新安裝MySQL服務器

,但你應該知道,你應該刪除其與MySQL有關的 我使用這個鏈接刪除mysq所有目錄升完全

sudo apt-get remove --purge mysql-server mysql-client mysql-common 
sudo apt-get autoremove 
sudo apt-get autoclean 
sudo deluser mysql 
sudo rm -rf /var/lib/mysql 
sudo rm -rf /etc/mysql 
sudo rm -rf /var/lib/mysql 
sudo rm -rf /var/run/mysqld 

,然後通過你的tasksel

再次LAMP安裝

Removing MySQL 5.5 Completely

https://serverfault.com/questions/254629/unable-to-install-mysql-server-in-ubuntu/296928#296928

0

對於那些WAMP/XAMP在Windows機器上工作時,誰得到這個錯誤。

這可能對你有幫助。

你的解決方案是

  • 淨停止MySQL的
  • 擦除二進制日誌(和二進制日誌索引文件)
  • 如果你不知道他們在哪裏,找到的my.ini您的PC上
  • 在記事本中查找選項日誌斌或log_bin開放的my.ini
  • 查找DATADIR
  • 如果日誌斌只有一個文件名的選項,看看通過DATADIR
  • 如果日誌斌包括路徑和文件名中指定的文件夾內,看看通過日誌斌
  • 打開Windows資源管理器中指定所需的文件夾中的文件夾內
  • 刪除二進制日誌應該有一個其文件擴展名爲.index的文件的文件名爲 。刪除這個以及網絡啓動mysql

當您有二進制日誌問題請不要刪除ib_logfile0或ib_logfile1。

Answer is on dba.stackexchange

0

在得到這個固定的多次嘗試後,我們發現,這個問題是與MySQL的用戶沒有被允許登錄

netstat -na | grep -i 3306 

如果所有接口上聽,然後你可以將您的任何界面來此

$cfg['Servers'][$i]['host'] = 'ANY INTERFACE'; 

請嘗試使用的COMAND行上述IP來登錄

mysql -u bla -p -h <Above_IP_address> 

如果這樣工作,那麼你的phpmyadmin也將工作,如果不修復mysql.user表,以便上述命令工作,並允許你登錄到MySQL。

4

在嘗試所有上述建議後,修復了我的#2002錯誤。

以下行添加到你的config.inc.php文件,更改了號碼給你的MySQL端口:

$cfg['Servers'][$i]['port'] = '3307'; // MySQL port 

我已經安裝了多個MySQL實例,在這種情況下,我已經更新的my.ini在端口3307上運行MySQL,但沒有更新phpMyAdmin以反映新端口。在我的情況下,config.inc.php文件中不存在該端口的行,所以我不知道它需要更新。

0

右鍵單擊我的電腦 - >管理 - >服務 從右側窗格的「服務和應用程序」下選擇「服務」 然後搜索「mysql」服務。 當您找到它時,雙擊以啓動該服務。現在

,你應該能夠運行並登錄到phpMyAdmin

0

檢查你的服務器是否正在運行與否。

0

以防萬一任何人有麻煩,這是一個非常確定的修復。

檢查您的etc/hosts文件確保您擁有每個主機的root用戶。

127.0.0.1 home.dev 

localhost home.dev 

因此,我將有2個或更多的用戶作爲根的MySQL:

[email protected] 
[email protected] 

這是我的固定我的問題。

0

我在Windows 7註冊表 中的MySQL服務路徑中遇到了問題,該問題未隨新安裝的XAMPP或更新的easyPHP 版本發生變化。

因此,如果任何人有同樣的問題(#2002錯誤,phpMyAdmin的不能 啓動),你可以搜索到勝利註冊表編輯器爲「我的。ini'並將 路徑交換到新軟件包。

比如我在幾個地方更換舊的路徑:

C:\ EASYPH〜1.1VC \二進制文件\ MySQL的\ BIN \ EDS-mysqld.exe --defaults文件= C: \ EASYPH〜1.1VC \二進制\ MySQL的\的my.ini的MySQL

與較新的一個:

C:\ XAMPP \ MySQL的\ BIN \ mysqld.exe --defaults文件= C :\ xampp \ mysql \ bin \ my.ini mysql

很奇怪,沒有人在網絡上描述過這個問題!

3

我已經通過基本上所有的這個錯誤的計算器並沒有解決我的問題。我能夠直接從linux命令行登錄到mysql,但是使用相同的用戶和密碼無法登錄到phpmyadmin。

所以我在牆上打了半天頭,直到我意識到它甚至沒有讀取/ etc/phpmyadmin下的config.inc.php(它是唯一一個位於btw基於「find/iname config.inc.php「。因此,我更改了/usr/share/phpMyAdmin/libraries/config.default.php中的主機,它終於起作用了。

我知道可能還有另一個問題,從/ etc/phpmyadmin文件夾配置,但我現在不能打擾:P

tldr;如果您的設置似乎並沒有應用嘗試在/ usr/share/phpMyAdmin/libraries/config.default.php

+0

哇...感謝這...我試圖連接phpmyadmin到另一個局域網主機,並遇到這個問題..這是唯一的解決方案,爲我工作。 – 2016-07-03 09:28:05

23

這是舊的,但因爲它是第一個結果在谷歌,

請注意,這也發生在你的mysql服務已關閉,

我只需使用重新啓動MySQL服務器的解決了這個問題:

/etc/init.d/mysql restart

在SSH(命令爲CentOS的/的cPanel服務器)

+0

謝謝阿拉,爲我完美工作 – 2016-03-05 07:42:21

+0

非常好!爲我工作! – 2016-05-08 16:24:26

0

這是因爲你的系統有兩個「mysql」包安裝。一次安裝是通過xampp/lampp完成的,另一次安裝是通過mysql-debain包進行的。要解決這個問題,只需進入「突觸管理器」並刪除mysql,然後你將能夠從xampp服務器訪問mysql。

注意:從突觸管理器中刪除mysql不會影響通過xampp/lampp服務器安裝的mysql。所以,別擔心!

2

我也經歷過同樣的事情,希望這會有所幫助。

cd /etc/init.d 
./mysql start 

請登錄訪問MySQL和phpMyAdmin的

+0

謝謝,夥計!這非常奏效。大約2小時後尋找答案,這做到了。乾杯。 – Felipe 2016-05-02 19:48:07

0

對我來說,問題是由解決刪除一個。我的電腦命名的pid文件:

sudo rm /var/mysql/computername.pid 
2

它發生與我,當我改變了我的AWS服務器的實例類型。

#2002 Cannot log in to the MySQL server也可能發生在mysqld服務未啓動時。

所以首先你需要執行:

$ sudo service mysqld restart 

這會給你:

$ sudo service mysqld restart 
Stopping mysqld:           [ OK ] 
Starting mysqld:           [ OK ] 

後,該錯誤會不會來。

P.S.在EC2實例中,還應該將主機從localhost更改爲127.0.0.1,如頂部答案中所述。

1

在我的系統中,config.inc.php不存在,但存在config.sample.inc.php。嘗試複製示例腳本config.inc.php

0

這下面一行在php.ini文件

mysql.default_socket = "MySQL" 

mysql.default_socket = /var/run/mysqld/mysqld.sock 
1

有這個問題了一些關於我們的準備時間,所以我我做了一個檢查清單。

這裏假設您希望phpMyAdmin使用UNIX套接字而非TCP/IP在本地連接到MySQL。

UNIX套接字應該稍微快一點,因爲它們的開銷較小,並且可以更安全,因爲它們只能在本地訪問。

服務

  • 是mysqld服務運行? service mysqld status
  • ..如果不是service mysqld start
  • 自服務啓動以來,配置是否已更改? service mysqld restart

MySQL的配置(my.cnf中)

  • 檢查不存在非套接字的客戶端協議集,例如protocol=tcp
  • 檢查插座的位置是可訪問的,並具有正確的權限

PHP配置(PHP。INI)

如果你可以在本地通過命令行從phpMyAdmin的連接,而不是和套接字文件不在默認位置:

  • 設置的mysqli默認插座到新的位置:mysqli.default_socket = *location*
  • ...我還設置了pdo_myql.default_socketmysql.default_socket只是爲了確保
  • 重新啓動您的Web服務(在我的案件的httpd)service httpd restart

phpMyAdmin的配置(config.inc.php中)

  • 檢查主機設置爲localhost:$cfg['Servers'][$i]['host'] = 'localhost';
  • 插座的位置也可以在這裏設置:$cfg['Servers'][$i]['socket'] = '*location*';

NB

正如@chk指出的那樣;將$cfg['Servers'][$i]['host']localhost設置爲127.0.0.1只會導致連接使用TCP/IP而不是使用套接字,而不是解決方案。

MySQL配置設置bind-address=也隻影響TCP/IP連接。

如果您不需要遠程連接,建議關閉使用skip-networking進行偵聽的TCP/IP。

0

如果您已將MySQL安裝在您的計算機上或中,以防萬一您更改了MySql服務的3306(默認)的郵編號,則會出現此問題。爲了解決這個問題,你一定要告訴phpMyAdmin的去尋找另一個端口而不是3306。要做到這一點去C:\ XAMPP的\ phpMyAdmin的(默認位置),並開放Config.inc和加入這一行$cfg['Servers'][$i]['port'] = '3307';$cfg['Servers'][$i]['AllowNoPassword'] = true;重新啓動服務,現在它應該工作。