MySQL配置文件改變了datadir值

從Noinstall Zip Archive中安裝MySQL
正在從Noinstall軟件包安裝MySQL的用戶可使用這個說明來手動安裝MySQL。從Zip archive 中安裝MySQL的 步驟以下:mysql

  1 在指定的安裝目錄下解壓軟件包。
  2 製造選擇文件。
  3 選擇MySQL服務類型。
  4 開始MySQL服務。
  5 保護默認帳戶。

解壓安裝軟件包
爲了手工安裝MySQL,須要按如下步驟進行:
1 若是你須要對之前的版本更新,請參考在更新步驟剛開始時的文章 「Upgrading MySQL on Windows」。
2 若是你正在使用基於Windows NT的操做系統例如Windows NT, Windows 2000, Windows XP或者Windows Server 2003,必須保證你做爲擁有管理員特權的用戶登陸該系統。
3 選擇一個安裝位置。傳統的MySQL服務器安裝在 C:\mysql,而MySQL安裝嚮導將 MySQL 安裝到 C:\Program Files\MySQL。若是不將 MySQL 安裝到 C:\mysql下,你必須在啓動或者在選擇文件中具體指出安裝路徑。
4 選用壓縮工具將安裝壓縮軟件解壓縮至選擇安裝的位置上。有些壓縮工具備可能將其解壓到你的被選擇的安 裝位置的子目錄中。若是是這種狀況,你能夠將該子目錄的內容從子目錄移至安裝路徑下。
生成選擇文件
若是你須要在運行服務器時,具體化啓動選項,你能夠在命令行標誌出他們或者在一個選擇文件中設置他們。 對於每次服務器啓動時所使用的服務,你將會發現使用選擇文件來具體化你的MySQL配置是很是便利的。尤爲是 在如下狀況中:當MySQL服務在Windows上啓動時,其在兩個文件中尋找選項:在Windows目錄下的 my.ini 文件以及C:\my.cnf 文件。Windows目錄典型的命名以下:C:\WINDOWS or C:\WINNT。你能夠經過下面的命令來決定WINDIR環境變量 的值: C:\> echo %WINDIR% MySQL首先在my.ini 文件中尋找選項,而後是在my.cnf 文件中。然而,爲了不混淆,最好是隻用一個文件。 若是你的PC使用加載的啓動裝備同時C:不是啓動區,那你只能經過my.ini文件來進配置。無論你使用哪一種選擇 文件,該文件必須是文本格式。你同時也能夠充分利用包含在你的MySQL發佈版的樣本文件。在你的安裝目錄下 尋找諸如 my-small.cnf, my-medium.cnf, my-large.cnf和my-huge.cnf的文件,這些文件能夠被從新命名同時 拷貝到合適的位置做爲一個基本的配置文件來使用。一個選擇文件能夠被任何文本編輯器生成和修改,諸如 Notepad等。例如,若是MySQL被安裝在E:\mysql 目錄下,而數據目錄是在E:\mydata\data下,你能夠生成一個 包含 [mysqld] 部分的選擇文件來具體化基本目錄和數據目錄的參數值:sql

[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data

在這裏須要注意Windows路徑名在事先使用的斜線而不是反斜線選擇文件中被具體化。所以當你使用反斜線時, 你必須使用雙斜線。數據庫

[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data

在Windows中,MySQL安裝程序直接將數據目錄安裝在你安裝MySQL的目錄下。若是你須要在另外不一樣的位置使用 數據目錄,你須要將整個數據目錄的內容拷貝至新的位置。例如,若是MySQL安裝在C:\Program Files\MySQL\MySQL Server 5.0 目錄下,則數據目錄的位置默認是在 C:\Program Files\MySQL\MySQL Server 5.0\data下。若是你須要將E:\mydata 做爲你的數據目錄,你須要作如下兩件事情:
1 將整個數據目錄和它的全部內容從C:\Program Files\MySQL\MySQL Server 5.0\data 移至E:\mydata.。
2 每次啓動服務時,使用a--datadir選項來確認新的數據目錄位置。 
選擇MySQL服務類型
如下顯示了MySQL5.0Windows版本提供的服務類型:windows

mysqld-debug帶有徹底調試和自動內存分配檢查的編譯,該編譯對象也包括 InnoDB和BDB數據表。
mysqld  優化InnoDB支持的二進制數據。
mysqld-nt優化命名管道支持的二進制數據。
mysqld-max優化InnoDB 和 BDB數據表所支持的二進制數據
mysqld-max-nt同mysqld-max功能同樣,可是編譯時支持命名管道

上述優化選項都是針對Intel 處理器的,可是應該能夠工做在任何Intel i386-class 或者更高的處理器。在MySQL 5.0中,全部的Windows版本服務器都提供了對數據庫目錄的符號連接。 MySQL提供了對Windows平臺上的TCP/IP 的支持。mysqld-nt和 mysql-max-nt 服務器則提供了對Windows NT,2000,XP和2003下的命名管道的支持。然而,無論在何種平臺下,默認使用的都是TCP/IP。(在不少Windows 配置下,命名管道要比TCP/IP服務要慢)
命名管道的使用受如下條件的制約:
 命名管道只有當你啓動服務時選擇 --enable-named-pipe纔會被激活。很是有必要的顯式使用該選項 ,由於有些用戶在命名管道正在使用時關掉MySQL服務器遇到過故障問題。  命名管道只有在mysqld-nt 或mysqld-max-nt 服務器下而且僅當該服務器運行在支持命名管道的 Windows版本的平臺下才能使用。 在Windows 98 or Me系統下,只有當其安裝了TCP/IP後,這些服務纔可以運行。命名管道的鏈接不能 使用。 上述服務在Windows 95下不可以運行。注意:在參考手冊中的大部分例子都使用mysqld做爲服務名。若是你使用另一個服務器,例如mysqld-nt,則 需對上述例子做合理的替代。

首次開啓服務
這部分的信息主要應用在使用Noinstall版本安裝MySQL時,或者但願手動而不是使用GUI工具配置和檢測MySQL 的狀況下。在Windows 95, 98, or Me下,MySQL客戶端常常和使用TCP/IP的服務器相鏈接。(這容許在你網絡上的任意機器 能夠和MySQL服務器鏈接)。基於這一點,你必須保證在啓動MySQL前,TCP/IP 支持安裝在你的機器上。你能夠 到在你Windows CD-ROM中找到TCP/IP服務。 在這裏須要注意的是若是你正在使用老的Windows 95發佈版本(例如OSR2),那頗有可能你在使用一箇舊的 Winsock軟件包;MySQL須要的是Winsock 2。你能夠從http://www.microsoft.com/.下載最新的Winsock軟件包 。Windows 98具備新的Winsock 2庫,因此無需更新庫。在基於NT的系統例如 Windows NT, 2000, XP, or 2003上,客戶能夠有兩個選擇。他們可使用TCP/IP或者當 服務器支持命名管道的鏈接時使用命名管道。爲了獲得在TCP/IP下工做的Mysql版本,你必須安裝service pack 3(或者更新的版本) 若是在啓動時,選擇 --shared-memory, Windows版本的MySQL 5.0一樣也支持共享內存的鏈接。客戶端能夠選 擇 --protocol=memory 選項來進行共享內存的鏈接。
以上對啓動MySQL服務進行了整體概述,下面的內容提供了從命令行或者做爲Windwos服務來啓動MySQL服務器更 加具體的信息:
假設MySQL安裝在默認位置C:\Program Files\MySQL\MySQL Server 5.0下。若是你把MySQL安裝在不一樣的位置上 ,則需調整相應的路徑名。測試工做能夠從控制檯窗體(或者經過「DOS window」)經過一個即時命令來完成。 這樣你就能夠會在窗體中比較容易的看到服務器狀態信息。若是你的配置有誤時,這些信息將有助於你識別和 修復任何故障。爲了開啓服務,輸入如下命令:服務器

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld --console
對於InnoDB支持的服務器,在服務啓動時你能夠看到下列信息:
InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200
InnoDB: Database physically writes the file full: wait...
InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: creating foreign key constraint system tables
InnoDB: foreign key constraint system tables created
011024 10:58:25  InnoDB: Started

當服務器完成啓動序列後,你能夠看到以下信息,這些信息代表服務器已經開始服務客戶端鏈接:網絡

mysqld: ready for connections
Version: '5.0.13-rc'  socket: ''  port: 3306

服務器將會繼續將其所產成的判斷信息輸入到控制檯上。而你則能夠打開一個新的控制檯來運行客戶端程序。若是你省略了 --console 選項,服務器將會把診斷信息輸出到 數據目錄下的錯誤日誌中(默認是C:\Program Files\MySQL\MySQL Server 5.0\data )。錯誤日誌以.err爲擴展名。注意:在MySQL受權數據表的賬號初始化是沒有密碼的。
在Windows命令行下開啓MySQL服務
MySQL服務器能夠手動從命令行啓動。該項操做能夠在Windows的任何版本下完成。爲了從命令行啓動mysqld服 務,你應該啓動一個控制檯窗體(或者"DOS 窗體")同時輸入如下命令:
C:\> C:\Program Files\MySQL\MySQL Server 4.1\bin\mysqld
在上述例子中使用的路徑能夠根據你的系統安裝MySQL的路徑不一樣而改變。在非NT版本的Windows版本上, mysqld是在後臺啓動的。這也就意味着在服務啓動以後,你查看另外的即時命令。基於這一點,你應該在服務 運行時打開另一個控制窗體來運行客戶端程序。
你能夠經過執行如下命令中止MySQL服務:
C:\> C:\Program Files\MySQL\MySQL Server 4.1\bin\mysqladmin -u root shutdown
該命令激活MySQL管理程序和服務器鏈接同時告訴他關閉服務。該名令是做爲MySQL根用戶鏈接的,在Mysql權限 系統中,根用戶默認是管理員賬戶。注意在MySQL受權系統中的用戶和任意在Windows下登錄的用戶是徹底獨立 的。若是mysqld沒有啓動,檢查錯誤日誌文件查看是否服務器向其中寫入了信息,該信息說明問題產生的緣由。錯 誤日誌位於C:\Program Files\MySQL\MySQL Server 5.0\data 目錄下。該日誌是以擴展名爲.err的文件。你也 能夠試着從新開啓mysqld 控制檯服務,這樣你就有可能獲取一些有助於解決問題的信息。最後一個選項是開啓mysqld時選擇--standalone --debug。在這種狀況下,mysqld 將會寫一個 C:\mysqld.trace的日誌文件,該日誌文件將會包含mysqld爲什麼沒有啓動的緣由。 
使用mysqld --verbose --help 能夠看到mysqld所提供的全部選項的幫助信息。
做爲一項Windows服務開啓MySQL
在NT系列的Windows版本(Windows NT, 2000, XP, 2003)中,推薦運行MySQL服務的方法是將其做爲Windows服務 進行安裝,在這種狀況下MySQL隨着Windows開始和結束自動開始和結束。一個做爲服務被安裝的MySQL服務器能 夠被從命令行上使用NET命令或者使用圖形界面服務程序所控制。服務程序(Windows 服務控制管理器)能夠被在 Windows控制面板中找到(在Windows 2000, XP, and Server 2003的管理工具下)。建議在執行服務器安裝程序 時或者在命令行中執行刪除操做時關閉服務應用程序。這將會防止不少錯誤。在將MySQL做爲Windows服務安裝以前,若是當前服務器正在運行,應該首先使用下述命令中止其的運行:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown
注意:若是MySQL根用戶有密碼,那麼你須要這樣激活命令:
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root -p shutdown ,同時必須根據提示輸入 用戶密碼。
這調用了MySQL的管理功能mysqladmin,mysqladmin能夠鏈接到服務器,讓服務器關閉。這個命令是做爲MySQL 的 root用戶而和服務器創建鏈接的,MySQL的 root用戶在MySQL受權系統中是默認管理賬戶。須要注意的是在 MySQL受權系統中的用戶是徹底獨立於Windows上登陸用戶。
用下列命令可將服務器做用一項服務安裝:
C:\> mysqld –install
若是你用server名字在將服務器安裝成一項服務的過程當中遇到問題, 那就試試用全稱路徑名。舉例來講:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld --install
你也能夠將到mysql bin目錄的路徑加入到Windows 系統PATH 環境變量:
 在Windows桌面上,右擊「個人電腦」,選擇「屬性」  出現系統屬性菜單,選擇「高級」,而後單擊「環境變量」按鈕。 在「系統變量」列表中選擇「路徑」,而後單擊「編輯」按鈕。這時會出現編輯系統變量對話框。  將光標放在「變量值」對應的文字的末尾(請使用 End key,以確保光標在最後的位置) 。而後輸入 MySQL bin 目錄的全稱路徑, (舉個例子, C:\Program Files\MySQL\MySQL Server 5.0\bin), 注意應該用分 號將這個路徑與其它值分開。 點擊「肯定」逐個關閉全部打開的對話框。如今你就能夠在DOS系統下從系統的 任意目錄中,經過輸入任意可執行的 MySQL 程序的名字而找到該程序,沒必要再輸入路徑。這包括服務器、 mysql 客戶和全部 MySQL 命令行好比 mysqladmin 和 mysqldump。  注意若是你在同一臺機器上運行多個MySQL 服務器的話,就不要將MySQL bin 目錄加入到 Windows 路 徑中。
警告: 在手工編輯系統路徑的時候必定要特別當心,若是不當心刪除或改變了系統路徑中的任何部分都將致使 誤操做甚至致使系統不穩定。服務安裝命令並不啓動服務器,關於這點後面將詳細介紹。 
MySQL 5.0 在安裝服務的過程當中對附加參數提供的支持有限: 你能夠在安裝選項以後當即爲服務命名,不然默認的服務名字是 MySQL。 
 若是設置了一個服務名字,就能夠用使用單一選項。一般按照約定,這應當是--defaults- file=file_name 來設置選項文件的名字,服務器在啓動時會從選項文件中讀取選項。可使用單一選項而不用--defaults-file,但不推薦這樣作。由於,--defaults-file 更加靈活,你能夠 經過將多個選項放到指定的選項文件中而爲服務器設置多個啓動選項。一樣,在MySQL 5.0中咱們也不支持使用 不一樣於--defaults-file的選項,但5.0.3版本就能夠這樣作了。 
 對於MySQL 5.0.1,你也能夠在服務名字下設置一個 --local-service(本地服務)選項。這會使服務 器用LocalService Windows賬戶運行。這種賬戶只在Windows XP或更新的系統上纔有。若是服務名字下既有-- defaults-file 也有 --local-service,那麼它們之間不論次序。 對於安裝成Windows服務的MySQL服務器來講,由下面的規則決定服務名字和服務器使用的選項文件:  若是服務安裝命令沒有指定服務名字,那麼安裝選項將默認服務名字爲MySQL, 服務器將使用 MySQL服 務,並從標準選項文件中的 [mysqld]羣中讀取選擇。  若是服務安裝命令沒有指定了一個服務名字,服務器將使用指定的服務名字並從從標準選項文件中與 服務名字相同的羣中讀取選項。 服務器也從標準文件選項文件中的[mysqld]羣中讀取選項。這保證能夠從[mysqld]羣中讀取全部MySQL服務都 用的選項,而用指定服務名字按照的服務器使用和與指定服務名字相同的選項羣。  若是安裝命令在服務名字以後指定一個 --defaults-file 選項,那麼服務器只從指定文件的 [mysqld] 羣中讀取選項而忽略標準選項文件。 
下面的命令是一個複雜的例子:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld --install MySQL --defaults-file=C:\my- opts.cnf
在這裏,由安裝選項給出了默認服務名字MySQL。若是沒有給出--defaults-file選項,那麼這個命令將使服務 器從標準選項文件中的[mysqld]羣中讀取。然而在這裏給出了--defaults-file選項,因此服務器只從指定文件 的[mysqld] 選項羣讀取。
你也能夠在啓動MySQL服務以前,在Windows Services 工具欄中將選項定義爲啓動參數。一旦MySQL服務器被安裝成一項服務,Windows就會在啓動時自動啓動該服務。也能夠在Services 工具欄中直接 啓動MySQL服務器,或使用NET START MySQL命令也可。NET 命令不區分大小寫。 
做爲服務運行時,mysqld無權使用控制窗口,所以在這裏看不到消息。若是mysqld不能啓動,就查錯誤記錄看 看服務器是否是寫下了什麼說明問題緣由的消息。錯誤記錄在MySQL數據目錄下(好比: C:\Program Files\MySQL\MySQL Server 5.0\data)。錯誤記錄的後綴名是 .err。 
MySQL做爲服務安裝的狀況下,若是服務正在運行,Windows關閉的時候會自動中止服務。 若是你不想在boot 進程中自動啓動服務,你能夠將服務器做爲手動服務安裝。手動服務的安裝須要選擇「手動 安裝」 選項而不是 「安裝」選項:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld --install-manual
要刪除做爲服務安裝的服務器時,首先要經過NET STOP MYSQL關閉正在運行的MYSQL,而後用「刪除」選項刪除 它:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld --remove 若是mysqld不是做爲服務運行,能夠用命令行啓動它。socket

5、測試 MySQL安裝
你能夠經過執行下列任何一個命令來測試MySQL 服務器是否安裝:編輯器

C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqlshow
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqlshow -u root mysql
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin version status proc
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql test

若是mysqld對來自客戶程序的TCP/IP 鏈接反應很慢,那麼說明你的DNS可能有問題。在這種狀況下,用--skip -name-resolve選項啓動mysqld,並且在MySQL 受權列表的Host欄中只使用本地Host和IP。 你能夠強迫 MySQL客戶運用管理鏈接,而不用TCP/IP。方法是選定--pipe 或--protocol=PIPE 按鈕,或指定 . (period)做爲主機名。運行--socket 選項來規定管道名。 
9、排除在Windows下安裝MySQL的故障
若是是初次安裝MySQL,你可能會遇到一些阻止MySQL啓動的錯誤,這一部分的目的就是幫助你診斷和排除某些 故障。 在排查故障時,可用的第一項資源就是錯誤記錄。MySQL 服務器的錯誤記錄會記下阻止服務器啓動的相關錯誤 。錯誤記錄在數據目錄下,my.ini文件中記載了數據目錄的地址。默認的文件目錄位置是C:\Program Files\MySQL\MySQL Server 5.0\data。 另外在MySQL服務運行過程當中的控制信息也可能會記載一些相關的錯誤。在mysqld做爲服務安裝以後,從命令行 中執行NET START mysql命令查看是否有關於做爲服務啓動MySQL服務器的錯誤信息。 
下面的例子是一些首次安裝MySQL和啓動服務器的過程當中,可能遇到的常見錯誤信息:工具

System error 1067 has occurred.
Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist

 當 MySQL 服務器找不到 mysql privileges database 或其它關鍵文件時,就會產生這樣的信息。當 MySQL的原始數據或數據目錄安裝在不一樣於默認位置(分別是C:\mysql 和 C:\Program Files\MySQL\MySQL Server 5.0\data )時,經常遇到這個問題。 一種狀況是MySQL已升級並安裝到新的位置,但配置文件並無反映新的安裝位置。另外 ,可能會產生相互衝 突的新、舊配置文件。所以,在升級MySQL時,應確保刪除舊的配置文件或重命名。 若是你將MySQL安裝到了C:\Program Files\MySQL\MySQL Server 5.0之外的其它位置,你必須確保MySQL服務器 經過一個配置文件(my.ini) 知道安裝的位置。my.ini文件必須在Windows目錄下,一般是C:\WINNT 或 C:\WINDOWS。你能夠從WINDIR環境變量的值來肯定其具體位置,須要從命令提示符發出下列命令:
C:\> echo %WINDIR%
生成一個選項文件,而且能夠用任何文本編輯程序修改,好比Notepad。舉例來講,若是MySQL安裝在E:\mysql 、數據目錄是D:\MySQLdata,你能夠建立一個選項文件,在其中建立一個[mysqld]部分來定義basedir 和 datadir參數:測試

[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=D:/MySQLdata

注意在選項文件中,Windows 路徑名是用(forward) slashes 定義的,而不是用 backslashes。若是你使用的 是 backslashes,你就須要將它們加倍:

[mysqld]
# set basedir to your installation path
basedir=C:\\Program Files\\MySQL\\MySQL Server 5.0
# set datadir to the location of your data directory
datadir=D:\\MySQLdata

若是你在MySQL配置文件改變了datadir值,那麼你在從新啓動MySQL服務器以前就必須將已有的MySQL數據目錄 轉移到相應的位置。 
 Error: Cannot create Windows service for MySql. Error: 0
 若是你不先中止並刪除現有的MySQL而從新安裝或升級時,或用MySQL Configuration Wizard安裝 MySQL時,就會產生這樣的錯誤。由於當Configuration Wizard試圖安裝服務時,就會發現已經有一個同名的服 務。 對這個問題的一個解決方法是,在使用configuration wizard時選擇一個服務名稱,而不用默認的mysql 。這 可使新的服務正確地安裝,但舊的還放在那裏。建議最好仍是把不用的刪掉。

要永久刪除舊的mysql服務,須要用戶以管理權限在命令行上執行下列命令:
C:\>sc delete mysql
[SC] DeleteService SUCCESS

若是你的Windows版本上沒有sc工具欄,就從下面的網址上下載delsrv工具欄: http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp 而後運用delsrv mysql syntax。
6、在Windows上升級MySQL
這部分介紹一些在Windows上升級MySQL的必需步驟。

1. 在升級以前,你應當一直支持目前的MySQL安裝。 「Database Backups」
2. 在http://dev.mysql.com/downloads能夠下載在Windows上安裝MySQL 的最新內容。
3. 在升級MySQL以前,必須中止服務器。

若是服務器是做爲服務安裝的,要從命令提示符經過下列命令中止服務:
C:\> NET STOP MYSQL
若是不是做爲服務安裝的,就用下列命令中止MySQL服務器:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown
當將4.1.5之前的版本升級到 MySQL5.0時,或將用Zip壓縮文件安裝的MySQL升級到用MySQL Installation Wizard安裝的MySQL版本時,必須手動刪除之前的安裝和MySQL服務(若是服務器有做爲服務安裝的話). 用下列命令刪除原來的MySQL服務: 
C:\> C:\mysql\bin\mysqld --remove
若是不刪除原有服務,MySQL Installation Wizard可能沒法安裝新的MySQL服務。
若是你從Zip 壓縮文檔安裝MySQL,要麼覆蓋原有的MySQL安裝(一般在C:\mysql),要麼在不一樣的目錄下安裝 ,好比C:\mysql4。建議覆蓋原有安裝。 
重啓服務器。若是MySQL是做爲服務運行的話,用NET START MySQL,或者直接調用mysqld。 
Windows 和 Unix兩種系統下的MySQL比較
MySQL在Windows上已經至關穩定。Windows版本的MySQL和相應的Unix版本的MySQL具備相同的特性,但存在如下 幾點不一樣:
• Windows 95和線程
Windows 95分出約200881064151字節的主內存給每個線程。MySQL的每一個鏈接建立一個新的線程,因此若是服務器處理 多個鏈接時,不該該在Windows 95下運行 mysqld。其餘版本的Windows不存在這個bug。
• 限制端口數量
Windows系統下大概有4,000個可用端口,當一個端口的鏈接關閉時,須要2-4分鐘才能從新啓用該端口。當處 於代理鏈接和斷開鏈接的高峯期時,可能使全部的端口在從新啓用以前都處於關閉狀態。若是發生這種狀況, MySQL服務器將中止相應,儘管它還處於運行狀態下。須要注意的是,機器上運行的其它應用程序也可能使用端 口,這也會使可用端口的數量降低。更多的信息請參看下面連接: http://support.microsoft.com/default.aspx?scid=kb;en-us;196271. 
• 同時讀取
MySQL依賴於調用pread()和pwrite()系統來使INSERT和SELECT可用。目前,咱們使用mutexes來代替pread()和 pwrite()。咱們打算用虛擬的界面來替代文件水平界面,這樣咱們就能夠在NT,2000和XP系統上使用readfile ()/writefile()界面並得到較高的速度。目前MySQL 5.0只能執行2,048個文件,這就意味着不能在Windows NT ,2000,XP和2003以及Unix下運行多個同時運行的線程。 
• 封閉讀取
MySQL對每個鏈接使用封閉讀取,若是指定的通道鏈接可用,這就意味着如下幾點:

o一個鏈接不會在8小時後自動斷開,這發生於Unix版本的MySQL。
o若是鏈接懸掛,只有關閉MySQL才能斷開該鏈接。
omysqladmin kill 對睡眠狀態的鏈接無效。
o只要存在睡眠鏈接,mysqladmin shutdown不會異常終止。

• ALTER TABLE 
當你正在執行一個ALTER TABLE語句時,在被其餘線程使用前表格將被鎖定。在Windows系統下可發生該狀況, 你不能刪除被另一個線程使用的文件。未來咱們可能找到解決該問題的方法。
• DROP TABLE 
由於MERGE 處理器處理隱藏於MySQL上一層的表格,這可以使Windows下的被MERGE表格使用的DROP TABLE不工做。 由於Windows不容許dropping文件開啓,你就必須轉儲清除全部的MERGE表格(使用FLUSH TABLES)或者在 dropping文件前先撤銷MERGE表格。
• 數據目錄和索引目錄
Windows系統忽略了CREATE TABLE的數據目錄和索引目錄選項,這是因爲Windows不支持符號鏈接形成的。在擁 有無功能realpath()調用的系統上也會忽略這些選項。
• 撤銷數據庫
你不可以撤銷正在被某個線程使用的數據庫。
• 從任務管理器內關閉MySQL
你不可以在任務管理器內關閉MySQL,也不能依靠Windows 95的關機操做關閉MySQL。你必須使用mysqladmin shutdown來關閉MySQL。
• 名稱的大小寫
在Windows下的文件名不區分大小寫,因此Windows一樣不區分MySQL數據庫和表格的名稱的大小寫。惟一的限制 就是數據庫和表格名稱必須在給定的語句內所有使用相同的case來指定。 
• ‘\’路徑名分離字符
在Windows下使用‘\’來分離路徑名,‘\’一樣是MySQL裏的換碼符。若是你使用LOAD DATA INFILE 或者 SELECT ... INTO OUTFILE,使用Unix格式的文件名內出現‘/’字符:

mysql> LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr;
mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;
換句話說, 你必須使用兩個‘\’字符。
mysql> LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr;
mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;

• 進程管道的問題進程管道不會按照Windows命令行的提示可靠的工做。若是進程管道包含有字符^Z / CHAR(24),Windows便爲認 爲達到文件尾並終止程序。當你應用下面的一個二進制日誌時便會出現問題:C:\> mysqlbinlog binary-log-name | mysql --user=root 若是你須要應用該日誌並遇到問題,你能夠懷疑這是因爲^Z / CHAR(24)字符致使的,可以使用下面的工做區來解 決: C:\> mysqlbinlog binary-log-file --result-file=/tmp/bin.sql C:\> mysql --user=root --execute "source /tmp/bin.sql" 這樣,後面的命令也能夠可靠的讀取含有二進制數據的SQL文件。 

相關文章
相關標籤/搜索