原本只是想把公司專案跟練習的MySQLServer分開,改了XAMPP中MySQL的my.ini文件指定port之後,可以正常開啟,但是無法登入PHPMyAdmin的DB管理介面
1 | mysqli::real_connect(): (HY000/1045): Access denied for user 'pma'@'localhost' (using password: NO) |
奇怪的是我用MySQL workbench是能分別連上兩個server的,那應該是XAMPP的配置問題。
解決方法
綜合第一和第二條錯誤訊息,這邊查到的結果是說我用一個叫做pma的user嘗試連接到資料庫,可是我翻遍了
my.ini
檔案,甚至連個pma都搜尋不到,原來是在config.inc.php
裡面(路徑: xampp/phpMyAdmin)關閉XAMPP的MySQL,打開
config.inc.php
之後找到1
2
3/* User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '';我把pma刪掉並儲存,變成空字串就能正常進入(但後來把pma加回去還是能正常使用?_?)
可是登入之後發現畫面變成我3306那個server的內容,原來是因為配置一直都抓3306這個port的資料去比對,所以才有第三條錯誤訊息,老是說我帳號或密碼錯誤,那怎麼讓PHPMyAdmin知道現在我要登入哪個server呢?
同樣
config.inc.php
這個檔案,設置兩個server
往上拉應該會看到1
2
3
4
5
6
7
8
9
10/*
* First server
*/
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'xxxx';這邊就是在3306 port的MySQL Server登入的root訊息,複製一個在下面,並更改成3307,以及3307的登入預設資訊:
1
2
3
4
5
6
7
8
9/*
* Second server
*/
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3307';
$cfg['Servers'][$i]['user'] = 'cc';
$cfg['Servers'][$i]['password'] = 'XXXX';變更完成之後儲存,重開XAMPP的MySQL,進入PHPMyAdmin的畫面會發現多了一個下拉選單:
選擇使用3307 port,這樣就可以正常登入了
如果要切換使用的資料庫畫面,在畫面左上角也有一個下拉選單,選好再重新登入就可以了