[文章作者:張宴 本文版本:v1.0 最后修改:2007.04.06 轉載請注明出處:
http://blog.s135.com]
需求背景:
phpMyAdmin是一款不錯的MySQL在線管理工具,但phpMyAdmin的cookie登錄方式只能輸入MySQL數(shù)據(jù)庫的用戶名和密碼,而想更改MySQL服務器地址和端口則須修改其配置文件config.default.php。當擁有多臺數(shù)據(jù)庫服務器,每臺服務器又在不同端口啟動了多個MySQL服務,每次都修改配置文件就顯得很麻煩,因此需要能夠在登錄界面直接輸入MySQL服務器地址和端口的功能。
功能要求:
假設phpMyAdmin的訪問網(wǎng)址為
http://192.168.1.25/phpmyadmin/,能夠通過輸入MySQL服務器地址、端口、用戶名、密碼登錄遠程MySQL服務器,對遠程數(shù)據(jù)庫進行管理。
修改后的phpMyAdmin登錄入口截圖:
實現(xiàn)步驟:
1、打開“路徑/phpmyadmin/libraries/config.default.php”,查找相關項并修改為以下內容:
$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">服務器地址:</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)建一個可以從任何IP地址遠程連接的MySQL賬號sina MySQL默認的賬號為root,密碼為空,只允許localhost登錄,因此需要創(chuàng)建一個可以從任何IP地址遠程連接的MySQL賬號,本例中創(chuàng)建的賬號為
sina,密碼為
zhangyan。使用該賬號從phpMyAdmin登錄后,別忘了在“權限”欄中修改密碼。
(1)、Linux下的MySQL命令行客戶端添加賬號示例:A.登錄使用默認3306端口的MySQL
引用
/usr/local/mysql/bin/mysql -u root -p
B.通過TCP連接管理不同端口的多個MySQL(注意:MySQL4.1以上版本才有此項功能)
引用
/usr/local/mysql/bin/mysql -u root -p --protocol=tcp --host=localhost --port=3307
C.通過socket套接字管理不同端口的多個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.管理使用默認3306端口的MySQL
引用
d:\apmserv\mysql\bin\mysql.exe -u root -p
B.管理不同端口的多個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í)行成功。
純粹技術 |
評論(1) |
引用(0) |
閱讀(460)
引用地址:
注意: 該地址僅在今日23:59:59之前有效
192.168.0.1安裝phpmyadmin
用它來管理192.168.0.10、192.168.0.11,兩天機器的mysql數(shù)據(jù)庫。
我按照你的配置來配,每次登陸不管服務器地址和端口輸入什么,都只能登陸本機mysql(192.168.0.1也有mysql)
注明:10,11的mysql在192.168.0.1上可以用myslq -uroot -p××× 方式登陸(遠程登陸已經(jīng)授權)
出現(xiàn)只能登錄本機的情況可能是你的phpmyadmin配置文件中的MySQL地址還是默認的localhost,你可以打開“路徑/phpmyadmin/libraries/config.default.php”,查找“localhost”,如果找到,替換為$_COOKIE["mysqlhost"];
(可參見步驟1)