MySQL中文參考手冊3(MySQL郵件列表及如何提問或報告錯誤)
2024-07-24 12:54:46
供稿:網友
mysql中文參考手冊3(mysql郵件列表及如何提問或報告錯誤)
轉載 譯者:晏子
〖返回〗〖轉發〗
譯者:晏子 ([email protected])主頁:http://linuxdb.yeah.net
2 mysql郵件列表及如何提問或報告錯誤
2.1 mysql 郵件列表
要訂閱主 mysql 郵件列表,送一條消息到電子郵件地址 [email protected] 。
要退訂主 mysql 郵件列表,送一條消息到電子郵件地址 [email protected] 。
只有你發送消息的地址是有意義的,消息的主題行和正文將被忽略。
如果你的回復地址不是有效的,你可以明確地指定地址。把短橫加到訂閱或退訂命令詞,隨后是你的地址,“@”由一個字符“=”代替。例如,要訂閱到[email protected],送一條消息到[email protected]。
郵寄到 [email protected] 或 ezmlm 郵件列表處理器。詳細信息可在 ezmlm 網點得到。
要想郵寄一條消息到列肀舊恚⑺湍愕南⒌?a href=mailto:[email protected]> [email protected]。然而,請千萬不要將關于訂閱或退訂的郵件發到[email protected] ,因為送到該地址的任何郵件被自動地被散發到上千個其他用戶。
你本地的網站可能有很多 [email protected] 的訂戶,如果這樣,也可能有一個本地郵件列表,以便使從 lists.mysql.com 發到你網站的消息被傳送到你的本地列表。在這種情況下,請聯系你的系統主管加入本地 mysql 列表和從其中刪除。
已有下列 mysql 郵件列表:
announce
這是mysql新版本和相關程序的發布通知,這是小信息量的列表,我們認為所有的 mysql 用戶應該訂閱。
mysql
為一般 mysql 討論的主列表。請注意一些話題最好在更專業的列表上討論。如果你郵寄到錯誤的列表上,你可能得不到回答!
mysql digest
文摘形式的mysql列表,這意味著你得到所有單個消息,作為一個大郵件一天發送一次。
java
討論 mysql 和 java ,主要關于 jdbc 驅動程序。
java digest
一個文摘版本java 列表。
win32
有關微軟操作系統上例如 windows nt的 mysql所有東西。
win32 digest
一個文摘版本win32表。
myodbc
有關用 odbc聯接 mysql 的所有東西。
myodbc digest
一個文摘版本 myodbc 列表。
msql-mysql-modules
關于 mysql中對perl支持的一個列表。
msql-mysql-modules-digest
一個文摘版本 msql-mysql-modules 列表。
developer
為開發 mysql 原代碼的人的一個列表。
developer digest
一個文摘版本developer列表.
你可用上述的方法訂閱或退訂所有列表。在你的訂閱或退訂消息中,只是放入不是mysql的適當郵件列表名。例如,訂閱或退訂myodbc列表,送一條消息到(原文未提供)。
2.2 提問或報告錯誤
在郵寄一份錯誤報告或問題前,請按下列步驟做:
由尋找 mysql 聯機的手冊開始:
http://www.mysql.com/manual_chapter/manual_toc.html
我們通過經常以新發現的問題的解決方法更新手冊,努力使它是最新的!
搜索 mysql 郵件列表檔案:
http://www.mysql.com/doc.html
你也可使用 http://www.mysql.com/search.html 尋找在http://www.mysql.com/下的網頁(包括手冊)。
如果你不能在手冊或檔案發現答案,檢查你本地的 mysql 專家。如果你仍然不能發現你問題的答案,繼續讀下一節關于怎樣發送郵件到 (原文未提供)。
2.3 怎樣報告錯誤或問題
寫一份好的錯誤報告需要耐心,但是第一次就做得正確可節省你我的時間。本節將幫助你正確撰寫你的報告,以使你不浪費時間,也可能做一些根本不能幫助我們的事情。
如果可能的話,我們鼓勵每個人使用 mysqlbug 腳本產生一份錯誤報告(或關于任何問題的一份報告)。mysqlbug可在源代碼分發或二進制分發的 mysql安裝目錄下的'bin'目錄中的'scripts' 目錄下找到。如果你不能使用mysqlbug,你仍然應該包括在本節列出的所有必要的信息。
mysqlbug 腳本通過自動確定下列很多信息來幫助你生成一份報告,但是如果一些重要的東西不見了,請在你的消息中包含它!請仔細閱讀本節并且保證這里描述的所有信息包含在你的報告中。
要記住,有可能回復一條包含太多的信息消息,但不回復包含極少信息的消息,因為人們認為他們知道一個問題的原因并且假設某些細節無所謂,所以他們常常忽略事實。一個好的原則是:如果你懷疑所說的事情,繼續說!在你的報告中寫上幾行,比因為第一次沒有包含足夠的信息而被迫追問和等待答案要快上千倍,而且少些麻煩。
最常見的錯誤是人們不指出他們正在使用的mysql分發的版本號,或不指出在什么平臺上平臺安裝了 mysql (包括平臺版本號)。這是極其相關的信息,并且沒有它99%錯誤報告是無用的!我們經常得到這樣的提問“為什么它不給我工作?”,然后我們發現所需的功能還沒有在該版本的 mysql 中實現,或在一份報告中描述的一個錯誤已經在更新的mysql 版本修正了。有時錯誤是依賴于平臺,在這種情況下,不知道平臺操作系統和版本號根本不可能修正任何東西。
還要記住,要提供你的編譯器信息,如果它與問題有關。人們經常發現錯在編譯器而認為mysql的問題。大多數編譯器始終都在開發中并且隨版本也逐漸變得更好。為了確定決定你的問題是否依賴于你的編譯器,我們需要知道使用什么編譯器。注意每個編譯器得問題應該被認為是一個錯誤,因此要報告。
在錯誤報告中包含一個問題的完好描述是最有幫助的。即,你所做的導致這個問題的一個好的例子和確切描述的問題本身。最好的報告是包括顯示如何再次產生錯誤或問題的一個完整例子。
如果一個程序產生一條錯誤信息,非常重要的是在你的錯誤報告中要包含它!如果我們試著從使用程序的檔案中找一些東西,最好是報告的錯誤消息精確地匹配程序所產生的。(甚至注意大小寫!)你決不應該試圖記住錯誤消息是什么,相反,將全部消息拷貝并且粘貼進你的報告中!
如果你有一個myodbc問題,你應該嘗試產生一個 myodbc 跟蹤文件,詳見16.6 報告 myodbc的問題.
請記住,將要閱讀你報告的人有很多使用80列顯示。在產生報告或使用mysql命令行工具的例子時,你應該為那些可能超出顯示可用寬度的輸出(例如,explain select語句,見下面的例子)使用--vertical選項(或g語句終止符)。
請在你的報告中包括下列信息:
你正在使用的 mysql 分發的版本號(例如, mysql 3.22.22 )。你可以執行mysqladmin version找到你正在運行哪個版本。mysqladmin可以在你的mysql安裝目錄的'bin'目錄下面找到。
你正在使用的機器的制造商和型號。
操作系統名字和版本。對大多數操作系統,你可以通過執行一條unix命令uname -a 得到有關信息。
有時存儲器的數量(物理和虛擬的)是有意義的,如果有疑問,包含這些值。
如果你正在使用一個mysql源代碼分發 ,則需要使用的編譯器的名稱和版本號。如果你有一個二進制代碼的分發,就需要該分發的名字。
如果問題在編譯期間發生,則包含準確的錯誤消息,并且也包含問題發生的文件中出錯代碼周圍的一些上下文。
如果任何數據庫表與問題有關,包含從 mysqldump --db_name tbl_name1 tbl_name2 …的輸出結果。這是很容易做到的,并且它是一個獲得有關任何數據庫表信息的有效方法,將幫助我們創造一個匹配你所遇到問題的環境。
對于與速度或select語句有關的問題,你總是應該包括explain select...的輸出和至少select語句產生的行數。你給出有關你的情況越多的信息,某些人越能幫助你。例如,下列的例子是一份很好的錯誤報告(當然它應該用與 mysqlbug 腳本郵寄):運行 mysql 命令行工具的例子(注意對其輸出超過80列顯示設備的語句使用g終止符):
mysql> show variables;
mysql> show columns from ...g
<output-from-show-columns>
mysql> explain select ...g
<output-from-explain>
mysql> flush status;
mysql> select ...;
<a short version of the output from select,
including the time taken to run the query>
mysql> show status;
<output from show status>
如果在運行 mysql 時是發生問題,嘗試一下提供一個重現問題的輸入腳本,該腳本應該包括任何必要的源文件,重現你情況的腳本越準確越好。如果你不能提供腳本,你至少應該在你的郵件中包括從 mysqladmin variables extended-status processlist的輸出以提供你的系統怎樣運行!
如果你認為 mysql 產生一個奇怪的查詢結果,不僅要包含結果,而且也要包含應該是什么結果的意見和描述你意見所依據的理由。
當給出問題的一個例子時,最好使用在你的真實情況下的而不是一個新的變量名、表名等等。這個問題應該與一個變量的名、表等有關!也許這些條件是苛刻的,但是安全比擔心更好。不管怎么說,提供使用你實際情況的例子應該比較容易,并且各方面來講它對我們更好一些。如果你有不想把數據顯示別人看,你可使用ftp把它上傳到
ftp://www.mysql.com/pub/mysql/secret/。如果數據確實是高度機密的,甚至不想讓我們看到它們,那么繼續,并提供使用其它名字的例子,但是請注意這是最后選擇。
如果可能,包括相關程序的所有選項,例如,指明你啟動 mysqld 守護程序和運行任何 mysql 客戶程序所使用的選項,對象mysqld 和 mysql等程序和configure 的選項常常是答案的關鍵和至關重要的!包括他們絕對不是一個壞主意!如果你使用任何模塊,例如perl或php,請也包括它們的版本號。
如果你不能產生一個行數少的測試,或如果測試表太大,不能寄給郵件列表(超過10行),你應該使用mysqldump倒出(dump)數據庫表并且創建“readme”文件描述你的問題,用tar和gzip造創建你的文件的一個壓縮的檔案,并且使用ftp把檔案文件轉移到
ftp://www.mysql.com/pub/mysql/secret/,然后把問題的簡短描述發到[email protected] 。
如果你的問題與權限系統有關。請包括mysqlaccess 、mysqladmin reload的輸出和所有嘗試連接時得到的錯誤消息!當你測試你的權限時,你應該首先運行mysqlaccess。在這以后,執行 mysqladmin reload version,最后你應該嘗試用你有問題的程序進行連接。 mysqlaccess 可在你的 mysql 安裝目錄下的“bin”目錄找到。
如果你有一個對錯誤的補丁程序,那最好,但是千萬別假設補丁程序是我們需要的一切,或即使你不提供一些必要信息如補丁能修正的錯誤的前提條件,就可使用它。我們可能發現你的補丁程序問題,或者我們可能根本不理解它。如果是這樣,我們不能使用它。在這里測試條件將幫助我們,這意味著補丁程序將處理一切可能出現的情況。如果我們發現了補丁不能工作的邊界條件(即使很怪),它可能毫無用處。
對錯誤是什么、為什么發生或它依賴什么的猜測通常是錯誤的。我們甚至不能在沒有首先使用一個調試器以確定一個錯誤的真正原因時做這種猜測。
在你的郵件消息說明你已經檢查了參考手冊和郵件歸檔,以便讓其他人知道你自己嘗試解決你的問題。
如果你得到一個parse error,請仔細檢查你的語法!如果你不能它發現有什么不對,極有可能是你當前 mysql 版本不支持你正在使用的查詢。如果你正在使用最新版而且 http://www.mysql.com/doc.html 的參考手冊沒有涉及你正在使用的語法, mysql 就不支持你的查詢。在這種情況下,你唯一的選擇是自己實現語法并郵寄過來。如果手冊涉及你正在使用的語法,但是你有一個更舊版本的 mysql ,你應該檢查 mysql 的更新歷史來找出語法何時被實現。見d mysql 變遷歷史。這時你有升級到一個更新 mysql版本的選擇。
如果你有一個這樣的問題:當你存取某些特定數據庫表時,你的數據好像已破壞或出錯,你應該首先用myisamchk檢查然后嘗試修復你的數據庫表。見 13 維護 mysql 安裝.
你經常得到破壞了的數據庫表,你應該嘗試發現這何時和為何發生!此時“mysql-data-directory/'hostname'.err”文件可能包含所發生事情的一些信息。請在你的錯誤報告包含這個文件的任何有用信息!如果沒有在更新當中殺死了mysqld,通常應該絕對不破壞數據庫表!如果你能找出mysqld為什么死掉的原因,對于我們,更容易向你提供對問題的修正!
如果可能,下載最新版本的 mysql ,并且檢查它是否解決你的問題。mysql的所有版本都被徹底地測試并且應該毫無問題地運行!我們相信使一切盡可能向后兼容,并且你應該能在數分鐘內切換 mysql 版本!見 4.3 要使用 mysql 哪個版本。
如果你是一個支持客戶,請直接郵寄錯誤報告到適當的郵件列表,看看是否有其他人有這個問題的經驗(或許已經解決)。
對于報導myodbc錯誤的信息,見 16.2 怎樣報告 myodbc 問題。
一些常見問題的答案,見 18 問題和常見的錯誤。
當答案個別發給你而不是郵件列表時,總結答案并且將總結發到郵件列表以便其它人可以從你收到的幫助你解決問題的答案中受益,這被認為是一個很好的規矩。
2.4 在郵件列表上回答問題的指南
如果你認為你的答案引起廣泛的興趣,你可能想要把它寄到郵件列表中而不是直接答復提問的人。試著讓你的答案足夠普遍,讓不是郵寄者的其他人可從它獲益。當你郵寄到郵件列表時,請保證你的回答不和以前的答案重復。
嘗試總結在你的答復中的問題的主要部分,別感覺不好意思引用全部原文消息。
請不要從有 html 模式的瀏覽器投寄郵件消息!許多用戶不用瀏覽器讀郵件!
責任編輯:eight(2001-06-06 20:13)