[文章作者:張宴 本文版本:v1.0 最后修改:2007.04.06 轉(zhuǎn)載請注明出處:
http://blog.s135.com]
需求背景:
phpMyAdmin是一款不錯(cuò)的MySQL在線管理工具,但phpMyAdmin的cookie登錄方式只能輸入MySQL數(shù)據(jù)庫的用戶名和密碼,而想更改MySQL服務(wù)器地址和端口則須修改其配置文件config.default.php。當(dāng)擁有多臺數(shù)據(jù)庫服務(wù)器,每臺服務(wù)器又在不同端口啟動(dòng)了多個(gè)MySQL服務(wù),每次都修改配置文件就顯得很麻煩,因此需要能夠在登錄界面直接輸入MySQL服務(wù)器地址和端口的功能。
功能要求:
假設(shè)phpMyAdmin的訪問網(wǎng)址為
http://192.168.1.25/phpmyadmin/,能夠通過輸入MySQL服務(wù)器地址、端口、用戶名、密碼登錄遠(yuǎn)程MySQL服務(wù)器,對遠(yuǎn)程數(shù)據(jù)庫進(jìn)行管理。
修改后的phpMyAdmin登錄入口截圖:
實(shí)現(xiàn)步驟:
1、打開“路徑/phpmyadmin/libraries/config.default.php”,查找相關(guān)項(xiàng)并修改為以下內(nèi)容:
$cfg[‘PmaAbsoluteUri‘] = ‘
http://192.168.1.25/phpmyadmin/‘;$cfg[‘Servers‘][$i][‘host‘] = $_COOKIE["mysqlhost"];
$cfg[‘Servers‘][$i][‘port‘] = $_COOKIE["mysqlport"];
$cfg[‘Servers‘][$i][‘a(chǎn)uth_type‘] = ‘cookie‘;
2、打開“路徑/phpmyadmin/index.php”,在文件最開頭增加以下PHP代碼:
<?php
if($_POST["mysqlhost"]<>"" and $_POST["mysqlport"]<>"")
{
setcookie("mysqlhost");
setcookie("mysqlport");
setcookie("mysqlhost",$_POST["mysqlhost"],0,"/");
setcookie("mysqlport",$_POST["mysqlport"],0,"/");
}
?>
3、打開“路徑/phpmyadmin/libraries/auth/cookie.auth.lib.php”,查找“<!-- Login form -->”這行,在該行下方的第10行后(即“<?php } ?>”這行后)增加以下HTML代碼:
<div class="item">
<label for="input_username">服務(wù)器地址:</label>
<input type="text" name="mysqlhost" id="mysqlhost" value="<?=$_COOKIE["mysqlhost"];?>" size="24" class="textfield" />
</div>
<div class="item">
<label for="input_username">MySQL端口:</label>
<input type="text" name="mysqlport" id="mysqlport" value="<?=$_COOKIE["mysqlport"];?>" size="24" class="textfield" />
</div>
圖示:
4、創(chuàng)建一個(gè)可以從任何IP地址遠(yuǎn)程連接的MySQL賬號sina MySQL默認(rèn)的賬號為root,密碼為空,只允許localhost登錄,因此需要?jiǎng)?chuàng)建一個(gè)可以從任何IP地址遠(yuǎn)程連接的MySQL賬號,本例中創(chuàng)建的賬號為
sina,密碼為
zhangyan。使用該賬號從phpMyAdmin登錄后,別忘了在“權(quán)限”欄中修改密碼。
(1)、Linux下的MySQL命令行客戶端添加賬號示例:A.登錄使用默認(rèn)3306端口的MySQL
引用
/usr/local/mysql/bin/mysql -u root -p
B.通過TCP連接管理不同端口的多個(gè)MySQL(注意:MySQL4.1以上版本才有此項(xiàng)功能)
引用
/usr/local/mysql/bin/mysql -u root -p --protocol=tcp --host=localhost --port=3307
C.通過socket套接字管理不同端口的多個(gè)MySQL
引用
/usr/local/mysql/bin/mysql -u root -p --socket=/tmp/mysql3307.sock
Enter password: (輸入密碼,如果密碼為空,直接回車)
mysql> (在這兒輸入以下的語句)
引用
GRANT ALL PRIVILEGES ON *.* TO ‘sina‘@‘%‘ IDENTIFIED BY ‘zhangyan‘;
如果提示信息為Query OK, 0 rows affected (0.01 sec),表示執(zhí)行成功。
(2)、Windows下的MySQL命令行客戶端添加賬號示例:A.管理使用默認(rèn)3306端口的MySQL
引用
d:\apmserv\mysql\bin\mysql.exe -u root -p
B.管理不同端口的多個(gè)MySQL
引用
d:\apmserv\mysql\bin\mysql.exe -u root -p --port=3307
Enter password: (輸入密碼,如果密碼為空,直接回車)
mysql> (在這兒輸入以下的語句)
引用
GRANT ALL PRIVILEGES ON *.* TO sina@"%";
如果提示信息為Query OK, 0 rows affected (0.01 sec),表示執(zhí)行成功。
純粹技術(shù) |
評論(1) |
引用(0) |
閱讀(460)
引用地址:
注意: 該地址僅在今日23:59:59之前有效
192.168.0.1安裝phpmyadmin
用它來管理192.168.0.10、192.168.0.11,兩天機(jī)器的mysql數(shù)據(jù)庫。
我按照你的配置來配,每次登陸不管服務(wù)器地址和端口輸入什么,都只能登陸本機(jī)mysql(192.168.0.1也有mysql)
注明:10,11的mysql在192.168.0.1上可以用myslq -uroot -p××× 方式登陸(遠(yuǎn)程登陸已經(jīng)授權(quán))
出現(xiàn)只能登錄本機(jī)的情況可能是你的phpmyadmin配置文件中的MySQL地址還是默認(rèn)的localhost,你可以打開“路徑/phpmyadmin/libraries/config.default.php”,查找“localhost”,如果找到,替換為$_COOKIE["mysqlhost"];
(可參見步驟1)