1、安裝
mysql的默認安裝位置在C:/MySQL,這一點並不會由於你將文件放在哪一個目錄而改變,由於其選項文件是那樣設置的,要想將mysql真正安裝至
其餘位置,須要調節服務器設定值。
檔MySQL服務器在Windows中啓動時,它從兩個文件中尋找選項:Windows目錄中的my.ini文件和C:\my.cnf 文件。Windows目錄典型名稱爲C:\WINDOWS或C:\WINNT。可使用下面的命令從WINDIR環境變量值肯定本身的確切位置:
C:\> echo %WINDIR%
MySQL首先從my.ini文件中尋找選項,而後從my.cnf文件中尋找。
最好的選擇是隻用一個,好比my.ini,這樣即便系統盤不是C盤也沒問題。
[mysqld]
# set basedir to your installation path
basedir=D:/javatool/MySQL/MySQL Server 5.1
# set datadir to the location of your data directory
datadir=D:/javatool/MySQL/MySQL Server 5.1/data
這是個人安裝目錄,將以上內容保存成my.ini文件放入C:\windows下便可。
2、啓動
要想啓動服務器,有兩種方式:
一、輸入命令:
C:\> D:\javatool\MySQL\MySQL Server 5.1\bin\mysqld --console
假如不想每次都進入MySQL的bin目錄,就將其加到path裏面,方便一點。可是若是在同一個機器上運行多個MySQL服務器,就不要在Windows PATH中加入MySQL bin目錄。
支持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.1.2-alpha' socket: '' port: 3306
服務器繼續向控制檯寫入診斷輸出。你能夠打開新的控制檯窗口運行客戶端程序。
若是省略--console選項,服務器向數據目錄(默認爲C:\Program Files\MySQL\MySQL Server 5.1\data)中的錯誤日誌寫入診斷輸出。錯誤日誌文件的擴展名爲.err。
二、以Windows服務方式啓動MySQL
建議將MySQL安裝爲Windows服務,當Windows啓動、中止時,MySQL也自動啓動、中止。還能夠從命令行使用NET命令。
在Windows控制面板(Windows 2000,XP和Server 2003的管理工具下面)中能夠看見Services工具(Windows Service Control Manager)。建議從命令行安裝活卸載服務器時關閉Services工具。這樣能夠防止許多錯誤。
安裝MySQL Windows服務以前,應當使用下面的命令先中止當前正運行的服務器:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root shutdown
注意:若是MySQL root用戶帳戶有密碼,你須要調用命令 C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root -p shutdown並根據提示輸入密碼。
使用該命令安裝服務器
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --install
安裝服務時,可使用MySQL 5.1中的下面的參數:
· 能夠直接在--install選項後面指定服務名。默認服務名是MySQL。
· 若是給出了服務名,後面能夠跟一個選項。通常狀況,應當爲defaults-file="file_name",指定選項文件的名稱,服務器啓動時應當從中讀取選項。
可使用單個選項代替--defaults-file,可是不提倡這樣作。--defaults-file更加靈活一些,由於你能夠將多個服務器啓動選項放入命名的選項文件中。
· 能夠在服務名後面指定一個--local-service選項。這樣服務器運行時使用LocalService Windows帳戶,只具備有限的系統權限。該帳戶只適用於Windows XP或更新版本。若是服務名後面同時跟有--defaults-file和--local-service,兩者能夠按任何順序排放。
對於Windows MySQL服務器,根據下面規則肯定服務器使用的服務名和選項文件:
· 若是在服務安裝命令中,沒有在--install選項後面指定了服務名或使用默認服務名(MySQL),服務器則使用MySQL服務名並從標準選項文件的[mysqld]組讀取選項。
· 若是在服務安裝命令中,在--install選項後面指定的服務名不是默認服務名(MySQL)。則從具備相同服務名的組中讀取選項,並從標準選項文件讀取選項。
服務器還從標準選項文件的[mysqld]組讀取選項。你可使用[mysqld]組中的選項用於全部MySQL 服務,還可使用具備相同服務名的組,用於該服務名所對應的服務器。
· 若是在服務安裝命令中,在服務名後面指定了--defaults-file選項,服務器只從命名文件的[mysqld]組中讀取選項,忽略標準選項文件。對於更復雜的例子能夠考慮使用命令:
C:\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --install MySQL --defaults-file=C:\my-opts.cnf
該命令中,--install選項後面給出了默認服務名(MySQL)。若是未給出--defaults-file選項,該命令可讓服務器從標準選項文件的[mysqld]組中讀數。因爲提供了--defaults-file選項,服務器只從命名文件的[mysqld]組讀取選項。
還能夠在啓動MySQL服務以前,在Windows Services工具中指定啓動參數選項。
MySQL服務器安裝爲服務後,Windows啓動時自動啓動服務。還能夠從Services工具直接啓動服務,或使用命令NET START MySQL。NET命令忽略大小寫。
3、關閉
下述命令能夠中止MySQL服務器:
C:\> D:\javatool\MySQL\MySQL Server 5.1\bin\mysqladmin -u root shutdown
4、mysql賬戶安全
初始的mysql沒有密碼,出於安全,有必要爲root用戶設置密碼。
要想爲匿名帳戶指定密碼,可使用SET PASSWORD或UPDATE。在兩種狀況中,必定要使用PASSWORD()函數爲密碼加密。
在Windows中使用PASSWORD的方法:
shell> mysql -u root
mysql> SET PASSWORD FOR ' '@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR ' '@'%' = PASSWORD('newpwd');
在Unix中使用PASSWORD的方法:
shell> mysql -u root
mysql> SET PASSWORD FOR ' '@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR ' '@'host_name' = PASSWORD('newpwd');
爲匿名帳戶指定密碼的另外一種方法是使用UPDATE直接修改用戶表。用root鏈接服務器,運行UPDATE語句爲相應user表記錄的Password列指定一個值。在Windows和Unix中的過程是相同的。下面的UPDATE語句同時爲兩個匿名帳戶指定密碼:
shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
-> WHERE User = '';
mysql> FLUSH PRIVILEGES;
在user表中直接使用UPDATE更新密碼後,必須讓服務器用FLUSH PRIVILEGES從新讀受權表。不然,從新啓動服務器前,不會使用更改。
若是你寧願刪除匿名帳戶,操做方法是:
shell> mysql -u root
mysql> DELETE FROM mysql.user WHERE User = '';
mysql> FLUSH PRIVILEGES;
能夠在Windows和Unix中使用DELETE語句。在Windows中,若是你只想刪掉具備與root相同權限的匿名帳戶,方法爲:
shell> mysql -u root
mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='';
mysql> FLUSH PRIVILEGES;
該帳戶容許匿名訪問,可是擁有所有的權限,所以刪掉它能夠提升安全。
能夠用幾種方法爲root帳戶指定密碼。如下介紹了三種方法:
· 使用SET PASSWORD語句
· 使用mysqladmin命令行客戶端程序
· 使用UPDATE語句
要想使用SET PASSWORD指定密碼,用root鏈接服務器並執行兩個SET PASSWORD語句。必定要使用PASSWORD()函數來加密密碼。
在Windows中的語句:
shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'%' = PASSWORD('newpwd');
在Unix中的語句:
shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');
用服務器主機名替換第二個SET PASSWORD語句中的host_name。這是你指定匿名帳戶密碼的主機名。
要想使用mysqladmin爲root帳戶指定密碼,執行下面的命令:
shell> mysqladmin -u root password "newpwd"
shell> mysqladmin -u root -h host_name password "newpwd"
上述命令適用於Windows和Unix。用服務器主機名替換第二個命令中的host_name。不必定須要將密碼用雙引號引發來,可是你若是密碼中包含空格或專用於命令解釋的其它字符,則須要用雙引號引發來。
你還可使用UPDATE直接修改user表。下面的UPDATE語句能夠同時爲兩個root帳戶指定密碼:
shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
-> WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
UPDATE語句適用於Windows和Unix。
設置完密碼後,當你鏈接服務器時你必須提供相應密碼。例如,若是你想要用mysqladmin 關閉服務器,可使用下面的命令:
shell> mysqladmin -u root -p shutdownEnter password: (enter root password here)