2012-07-16 37 views
102
「作爲在配置中定義的連接用於控制用戶失敗」與phpMyAdmin

我剛纔在我的Windows XP機器上安裝了XAMPP,我得到一個錯誤說:在XAMPP

Connection for controluser as defined in your configuration failed.

之前,我安裝了XAMPP,我有安裝了一個MySQL數據庫並且它有一個密碼。我改變,並把密碼的config.inc.php爲MySQL和我得到這個錯誤:當我試圖訪問的index.php

<?php 
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) { 
    $uri = 'https://'; 
} else { 
    $uri = 'http://'; 
} 
$uri .= $_SERVER['HTTP_HOST']; 
header('Location: '.$uri.'/xampp/'); 
exit; 
?> 

,好像事情是錯的XAMPP安裝。我能做些什麼來解決這個問題?

+16

恕我直言,這種問題是非常常見的,大量的時間被浪費的「定義的問題的範圍」,其爭議解決them.Also如果我們可以把這種questn「軟工具程序員常用的」下或「是 這是一個實際的,可回答的問題,這對於軟性開發來說是獨一無二的。」因此,我要求SO退伍軍人在標記「脫離主題」之前仔細考慮這樣的帖子。 SO已經成爲一個值得信賴的,一站式的解決編程問題的地方,也是解決問題的人。因此,對於程序員來說,在這裏得到確切的答案比在其他地方尋找這樣的問題更有幫助。 – Dexter 2014-09-24 15:58:14

回答

206
  1. 打開成功運行在瀏覽器和登錄爲根。
  2. 創建一個名爲phpmyadmin
  3. 創建一個名爲pma用戶,並設置「主機」到Web服務器的主機名或IP地址(如Web服務器和MySQL在同一個盒子使用localhost)數據庫,使記下密碼,並授予新用戶對phpmyadmin數據庫的完全控制權。建議此用戶無權訪問除此數據庫以外的任何內容。
  4. 轉到phpMyAdmin安裝目錄,您應該在其中找到名爲sql的子目錄。
  5. sql中,您會找到一個名爲create_tables.sql的文件。在文本編輯器中打開它。
  6. 在phpMyAdmin中,選擇phpmyadmin數據庫並單擊「SQL」選項卡。
  7. create_tables.sql複製/粘貼整個文本到文本框中,然後運行查詢。
  8. 打開config.inc.php文件phpMyAdmin的安裝目錄,並添加以下行(或更改現有設置,如果他們已經在那裏了):

    $cfg['Servers'][1]['pmadb'] = 'phpmyadmin'; 
    $cfg['Servers'][1]['controluser'] = 'pma'; 
    $cfg['Servers'][1]['controlpass'] = '<your password>'; 
    
    // Note: The list below may grow as PMA evolves and more control tables are added 
    // Use your common sense! Don't just blindly copypasta, look at what it means! 
    $cfg['Servers'][1]['bookmarktable'] = 'pma_bookmark'; 
    $cfg['Servers'][1]['relation'] = 'pma_relation'; 
    $cfg['Servers'][1]['userconfig'] = 'pma_userconfig'; 
    $cfg['Servers'][1]['table_info'] = 'pma_table_info'; 
    $cfg['Servers'][1]['column_info'] = 'pma_column_info'; 
    $cfg['Servers'][1]['history'] = 'pma_history'; 
    $cfg['Servers'][1]['recent'] = 'pma_recent'; 
    $cfg['Servers'][1]['table_uiprefs'] = 'pma_table_uiprefs'; 
    $cfg['Servers'][1]['tracking'] = 'pma_tracking'; 
    $cfg['Servers'][1]['table_coords'] = 'pma_table_coords'; 
    $cfg['Servers'][1]['pdf_pages'] = 'pma_pdf_pages'; 
    $cfg['Servers'][1]['designer_coords'] = 'pma_designer_coords'; 
    
  9. 保存並關閉文件。

重要 - PMA加載配置上登錄,計算它,並把它存儲到會話數據,這樣信息就不會消失,直到你這樣做:

  • 退出phpMyAdmin並重新登錄
  • 問題已解決。

    +2

    用於「註銷並重新登錄」。我浪費了五分鐘沒有意識到我必須這樣做。 – 2013-06-01 11:44:24

    +1

    @MatthewG是config文件中,在您登錄以減少磁盤I/O,使^^適用於您可能做出的PMA配置文件 – DaveRandom 2013-06-01 12:02:23

    +10

    出於某種原因的任何變化的點加載到您的會話,我版本的phpmyadmin將表格名稱設置爲「pma__bookmark」等等,並帶有2個「下劃線」。如果任何人有相同的,那麼你應該相應地編輯「config.inc.php」。和BTW配置文件位於「的/ etc/phpMyAdmin的」在Ubuntu – ajaybc 2013-10-24 06:17:31

    114

    如果你來到這裏,你使用的是Debian/Ubuntu的(或任何其他的dpkg基於發行版),請執行以下命令:

    sudo dpkg-reconfigure phpmyadmin 
    

    phpMyAdmin套件中包含的腳本來爲您執行此操作,所有它需要的是具有權限的用戶。當然,如果你以root身份登錄,sudo不是必需的。

    編輯:它可能是值得嘗試刪除當前的phpmyadmin用戶。

    +2

    這對我有用,我只需要重新安裝它要求的數據庫。謝謝。 (Ubuntu的12.04) – ino 2013-08-15 23:17:45

    +2

    並沒有爲我工作 – Prax 2013-10-09 10:20:57

    +16

    我不得不在配置過程中的控制用戶輸入「PMA」,而不是「phpMyAdmin的」,使這項工作。 – Hardell 2013-12-01 01:20:12

    20

    只需在config.inc.php中註釋整個「用戶高級功能」和「高級phpMyAdmin功能」代碼塊即可。

    +0

    對此有何解釋?這是如何和爲什麼這樣工作? – Huey 2016-01-22 22:14:42

    +1

    我不知道爲什麼,我不知道如何,但它的工作原理... – Ben 2016-05-11 09:37:06

    +0

    @Ben:有時候,這是所有的事項;) – streak 2016-05-11 10:15:52

    2

    你最近是否更改過你的MySQL服務器root密碼?如果回答爲YES,則這是phpMyAdmin控制檯內部錯誤/警告的原因。要解決這個問題,只需編輯phpMyAdmin的config-db.php文件並設置正確的數據庫密碼即可。

    第一個答案在我看來太亂了,第二個答案對我不起作用。所以:

    在基於Linux的服務器上的文件通常位於:

    /etc/phpmyadmin/config-db.php 
    

    或:

    /etc/phpMyAdmin/config-db.php 
    

    例子:(我的文件看起來像這樣,我改變了用戶從phpmyadminadmin,我爲通過phpmyadmin維護我的數據庫而創建的用戶名,並輸入了相應的密碼

    $dbuser='phpmyadmin'; 
    $dbpass=''; // set current password between quotes ' ' 
    $basepath=''; 
    $dbname='phpmyadmin'; 
    $dbserver=''; 
    $dbport=''; 
    $dbtype='mysql'; 
    

    積分:http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/

    3

    On Ubunbtu。

    Ben的消息很接近,但問題並不在於root密碼,我發現的問題是我在安裝phpmyadmin數據庫時創建了一個密碼。 這個密碼沒有被帶到ubuntu的安裝中,所以變量$ dbpass ='';在數據庫設置文件中是空的而不是您設置的密碼。

    1. 要檢查你在命令行登錄正確的密碼使用以下命令到mysql:mysql的-u的phpmyadmin -p嘗試使用空白密碼,我發現我得到了拒絕訪問,輸入命令再次使用你的密碼在安裝期間設置。如果它登錄,你現在知道密碼是什麼。
    2. 編輯/etc/phpadmin/config-db.php並更改$ dbpass ='';$ dbpass ='您的密碼';並保存該文件。
    3. 編輯/etc/dbconfig-common/phpmyadmin.conf變化dbc_dbpass = '';到dbc_dbpass ='您的密碼';並保存該文件。 關閉瀏覽器並重新加載,你現在會發現消息已經消失。
    -1

    今天剛剛安裝了XAMPP,我決定爲mysql使用一個不同的默認端口,這太糟糕了。確保這些行添加到phpMyAdmin的config.inc.php

    $cfg['Servers'][$i]['host'] = 'localhost'; 
    
    $cfg['Servers'][$i]['port'] = 'port';` 
    
    3

    此的Ubuntu 16.04下與phpMyAdmin的工作對我來說:

    我編輯/etc/phpmyadmin/config.inc。PHP和改變了以下2行:

    0

    的問題是,phpMyAdmin的控制用戶(通常:PMA)密碼不匹配MySQL用戶:PMA(相同的用戶)的密碼。

    爲了解決這個問題, 1.設置你想爲用戶PMA這裏的密碼:

    "C:\xampp\phpMyAdmin\config.inc.php"

    $cfg['Servers'][$i]['controlpass'] = 'your_new_phpmyadmin_pass';

    (should be like on line 32)

    然後去到MySQL,以root身份登錄,請訪問:(我用phpMyAdmin來這裏走)

    Database: mysql »Table: user

    編輯用戶:PMA

    選擇「密碼」,從功能列表(左列)和設置在右列「your_new_phpmyadmin_pass」和擊去。

    重新啓動mysql服務器。

    現在,該消息應該消失。

    0

    我只是簡單地作出config.inc.php文件的變化。在這個鏈接中有錯誤的密碼$ cfg ['Servers'] [$ i] ['password'] ='您的密碼';現在它完美的工作。

    +0

    請編輯您的問題並添加更多詳細信息。這是低質量。 – Billa 2017-12-09 09:03:04

    +0

    以上是決議,我沒有按照上面的步驟。我只是單純地去config.inc.php文件目錄,並在記事本中打開此文件的config.inc.php和改變了這一行$ CFG樁[「服務器」] [$ i] [「密碼」] =「密碼」 – 2017-12-09 09:29:52

    +0

    我看到密碼被提及有錯誤,我再次輸入正確的密碼並保存並再次運行phpmyadmin並且它現在正常運行 – 2017-12-09 09:31:01