程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> phpMyAdmin 2.x.x - 文檔

phpMyAdmin 2.x.x - 文檔

編輯:關於MYSQL數據庫
PHPMyAdmin可以管理整個MySQL服務器(需要超級用戶),也可以管理單個數據庫。為了實現後一種,你將需要合理設置MySQL用戶,他只能對允許的數據庫進行讀/寫。那要等到你看過MySQL手冊中相關的部分。

  快速安裝

  將PHPMyAdmin軟件包解到一個目錄下。

  打開config.inc.PHP3,根據你的環境,修改$cfgServers[1]["host"],$cfgServers[1]["user"]和$cfgServers[1]["passWord"]的值。可以看一下下面的配置部分所列出的所有可配置的變量,根據情況對其它參數進行修改。

  建議在安裝完PHPMyAdmin之後,對其目錄進行保護(除非在一個企業內部網上)。例如,可以使用HTTP-AUTH(用一個.htAccess文件)。

  在浏覽器中打開文件:安裝主機域名/安裝目錄/index.php3。PHPMyAdmin應該顯示一個歡迎屏和你的數據庫。

  phpMyAdmin支持多語言。如果要改成中文版本,則修改config.inc.php3中的require("english.inc.php3");為require("chinese_gb.inc.PHP3")。這樣界面就是中文的了。好棒噢!

  保存config.inc.PHP3。

  安裝注意

  請確認保護了PHPMyAdmin目錄。缺省是沒有任何保護的!它不應該被隨便一個人特別是搜索引擎讀到。

  盡管我在每一頁中都加了一個"nofollow"指令,也可能有的搜索引擎不考慮仍然繼續訪問頁面的鏈接。

  想象一下AltaVista訪問了一個名叫"Drop Dtabase"的鏈接會怎麼樣吧。你可以在http://www.apacheweek.com/features/userauth對apache的認證方法有一個全面了解。另一個教程在http://deepthought.texsci.edu/protected_dirs.Html

  PHP3應該被配置為magic_quotes=on。

  配置

    所有可配置數據都放在config.inc.PHP3中。

  $cfgServers 數組

    從1.4.2版本開始,PHPMyAdmin支持對多個MySQL-server的管理。所以,增加了$cfgServers數組來存放不同服務器的登錄信息。$cfgServers[1]["host"]包含了第一個服務器的主機名,$cfgServers[2]["host"]為第二個服務器的主機等,等等。如果你只有一個服務器要管理,可以簡單地不去理會其它$cfgServers入口的主機名。

  $cfgServers[n]["port"] 字符串

    第n個MySQL服務器的端口號。缺省值為3300(保留空值)。

  $cfgServers[n]["host"] 字符串

    第n個MySQL服務器的主機名。例如,localhost。

  $cfgServers[n]["adv_auth"] 布爾值

    對這個服務器應該使用基本或是高級認證方式。基本認證方式($adv_auth = false)是普通的老的作法:

  用戶名和口令被存在config.inc.PHP3中。高級認證方式($adv_auth = true)從1.3.0版開始引入,允許你通過HTTP-Auth來作為合法的MySQL的用戶進行登錄。在config.inc中你只需要提供一個標准用戶,他能夠連接到MySQL上並且可以讀出MySQL庫的user/db表(看$cfgServers[n]["stduser"])。

  推薦使用高級方式管理的場合:

  當PHPMyAdmin運行在多用戶環境下,人們擁有shell處理權限時,你不想知道MySQL的用戶名/口令。

  當你想讓用戶存取他們自已的數據庫,並且不想他們干擾其他人。

    高級認證方式是安全的,因為標准用戶只需要對mysql庫的只讀權限。MySQL口令不能被容易的破解,所以對於一個普通用戶沒有機會看到其它用戶的明文口令。



  $cfgServers[n]["user"] 字符串

  $cfgServers[n]["passWord"] 字符串

    當使用基本認證方式時,PHPMyAdmin將使用用戶名/口令對同這個MySQL服務器連接。當使用高級認證方式時則不需要。

  $cfgServers[n]["stduser"] 字符串

  $cfgServers[n]["stdpass"] 字符串

    當使用高級認證方式時,用戶名/口令對被用於校驗真正的用戶名/口令對。這個用戶必須能夠連接MySQL,而且可以讀取MySQL庫的user表。當使用基本認證方式時則不需要。

  $cfgServers[n]["only_db"] 字符串

    如果設置了一個數據庫名,只有這個數據庫將顯示給用戶。

  $cfgServers[n]["verbose"] 字符串

    只有在多服務器入口時使用PHPMyAdmin才有用。如果設置了,這個字符串將被顯示出來,用來代替在主頁面中的下接菜單中的主機名。例如,如果你想在系統只顯示某些數據庫,這個可能就有用了。

  $cfgManualBase 字符串

    如果設為一個URL(它指向MySQL文檔),就會創建相應的幫助鏈接。

  $cfgPersistentConnections 布爾值

    是否使用持續連接(mysql_connect或MySQL_pconnect)。

  $cfgConfirm 布爾值

    當你將要丟失數據時是否應該顯示一個警告信息("你真的確定要...")。

  $cfgMaxRows 整數

    當浏覽一個結果集時顯示的記錄數。如果結果集包含了更多的數據,將顯示前頁/後頁的鏈接。

  $cfgMaxInputsize 整數

    當向一個表增加一條新的記錄時,編輯字段的大小。

  $cfgBorder 整數

    表格邊界的大小。

  $cfgThBgcolor 字符串 [Html 顏色]

    用在表頭的顏色。

  $cfgBgcolorOne 字符串 [Html 顏色]

    表格行第一行的顏色。

  $cfgBgcolorTwo 字符串 [Html 顏色]

    表格行第二行的顏色。

  $cfgOrder 字符串 ["DESC" "ASC"]

    定義了當你點擊字段名時,字段是以升序("ASC")顯示還是以降序("DESC")顯示。

  $cfgShowBlob 布爾值

    定義了當浏覽一個表的內容時,是否顯示BLOB字段。

  $cfgShowSQL 布爾值

    定義了是否顯示PHPMyAdmin所生成的sql查詢語句。

  $cfgColumnTypes 數組

    MySQL列的所有可能的類型。大多數情況下你不需要編輯它。

  $cfgFunctions 數組

    MySQL支持函數的列表。大多數情況下你不需要編輯它。


您正在看的MySQL教程是:PHPMyAdmin 2.x.x - 文檔。>  $cfgAttributeTypes 數組

    字段可能的屬性。大多數情況下你不需要編輯它。

  FAQ - 常見問題

  我不能向表中插入新記錄 -- MySQL返回一個SQL錯誤。

    仔細檢查SQL錯誤。我發現很多的程序員使用了錯誤的字段類型。普通的錯誤包括:

  使用VARCHAR沒有指定大小

  使用TEXT或BLOB指定了大小

    另外,查看一下MySQL手冊中的語法章節以確認你的語法是正確的。



  PHPMyAdmin不能連接MySQL。出了什麼錯?

     或者是PHP安裝的問題或者是你的用戶名/口令錯了。試著編一個小的用了MySQL_connect的腳本,看一下是否它能工作。如果不能,那就可能是還沒有在PHP中將MySQL的編譯進去。

  我不能編輯表的內容,盡管README中說這是PHPMyAdmin的一個特色。

    PHPMyAdmin只允許編輯擁有主鍵或唯一鍵值的表的內容。

  當使用高級認證管理時,PHPMyAdmin總是給出"處理禁止(Access denIEd)"。

  發生可能有幾種原因:

  $stduser/$stdpassWord不正確。試著關掉$adv_auth,然後使用這個用戶名及口令來連接MySQL。

  在登錄對話框中指定的用戶名/口令是錯的。試著用上面同樣的方法看一下是否可以工作。

  你已經給phpMyAdmin安裝目錄建立了安全機制,例如,.htAccess文件。這個可能干擾PHPMyAdmin的認證管理,那麼把它刪除。

  我想對PHPMyAdmin的開發提供幫助。我應該如何進行?

  下面的方法對於新的開發者來說是首選的:

  取出在匿名CVS上的當前的CVS:

  cvs -d :pserver:[email protected]:/usr/local/cvsroot login

  [PassWord: PHPMyAdmin]

  cvs -d :pserver:[email protected]:/usr/local/cvsroot checkout PHPMyAdmin

  [這樣將創建一個名為PHPMyAdmin的新的子目錄]

  加入你的東西

  將修改的文件發給我(tar格式或gzip格式) 對CVS樹的寫權限只授權給有經驗的已經對PHPMyAdmin作出了貢獻的開發者。
另外看一下DEVELOPERS文件。

  有什麼好的方法可以讓PHPMyAdmin更安全對付惡意的攻擊?

    這要看你的系統了。如果你正在運行一個無法被其它人使用的服務器,使用web服務器的目錄保護綁定就已經足夠了(例如,對於apache你可以使用.htAccess文件)。如果其它的人可以通過telnet存取你的服務器,將MySQL口令以明文形式保存在你的config.inc.php3 文件中就不是一個好方法了。在這種情況下你應該使用PHPMyAdmin的高級認證方式功能。

  如何才能向我的表中插入一個null值呢?

    輸入"null"(沒有引號)作為字段的的值。這個對於時間戳或自動增加字段特別有用。

  我是一個ISP供應商。我可以安裝一個主控的PHPMyAdmin拷貝嗎?或需要為每一個客戶都安裝一個?

     從2.0.3版本開始,你可以安裝一個主控的phpMyAdmin拷貝為你的所有的用戶。這個特性的開發是由NetCologne GmbH倡議的。這樣就要求合理地設置MySQL用戶,並且設置phpMyAdmin的高級認證方式。當認證一個用戶時,PHPMyAdmin執行這些步驟:

  從MySQL.user表中選出所有用戶名/口令與申請用戶相匹配的記錄。如果沒有記錄被返回,認證失敗。

  否則,PHPMyAdmin繼續第2步。

  如果用戶的global Select_Priv是"N"(也就是用戶不允許存取所有的數據庫),phpMyAdmin搜索MySQL.db表,查找對於這個用戶的Select_Priv="Y"的記錄。如果沒有記錄被找到,認證失敗。否則,PHPMyAdmin顯示所有允許用戶查看的數據庫。

  如果用戶的global Select_Priv是"Y",系統中所有的數據庫都顯示出來。

    這就意味著你需要向MySQL庫中如下增加用戶:

  INSERT INTO user (Host, User, PassWord, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv,

References_priv, Index_priv, Alter_priv) VALUES ("localhost", "foo", PASSWord("bar"), "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N")

  INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES ("localhost", "foo_db", "foo", "Y", "Y", "Y", "Y", "Y", "Y", "", "", "", "")

    那樣,對於用戶foo,只有"foo_db"庫將被顯示出來。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved