原文鏈接: http://blog.csdn.net/yippeelyl/article/details/39185539
1.准備工作
下載mysql的最新免安裝版本mysql-noinstall-5.1.53-win32.zip,解壓縮到相關目錄,如:d:\\ mysql-noinstall-5.1.53-win32。這個就是mysql的根目錄了。
2.配置
在根目錄下有幾個文件如下:
- my-small.ini (這是針對一個小內存(〈= 64MB)的系統,MySQL 只會被時不時地用一下,很重要的是 mysqld 守護進程不會使用很多資源。)
- my-medium.ini (這是針對一個小內存(32M- 64M)系統的,MySQL 扮演了一個比較重要的部分,或者當系統達到 128M 后 MySQL 被用來與其它程序(如一個 Web 服務器)一起使用。)
- my-large.ini (這是針對一個內存 = 512M 的大系統,系統主要運行 MySQL)
- my-huge.ini (這是針對一個內存為 1G – 2G 的大系統,系統主要運行 MySQL)
- my-innodb-heavy-4G.ini (這是一個針對 4G 內存系統(主要運行只有 InnoDB 表的 MySQL 並使用幾個連接數執行復雜的查詢)的 MySQL 配置文件例子)
對應自己的配置,自己選擇下,其他的就刪除吧。然后重命名成my.ini。編輯my.ini,在[mysqld]節點下增加如下幾句:
basedir= D:/mysql-noinstall-5.1.53-win32 #根目錄 datadir= D:/mysql-noinstall-5.1.53-win32/data #數據文件存放目錄
3.安裝服務
cmd:進入mysql的根目錄\bin:
mysqld --install MySQL
這樣用默認的 MySQL 為名稱添加了一個windows服務。要移除mysql服務:
mysqld –remove MySQL
設置服務為自動啟動:
sc config MySQL start= auto
4.啟動與關閉
cmd:
net start MySQL --啟動 net stop MySQL --關閉
mysql啟動后。在任務管理器當中可以看到mysqld.exe這個進程。說明mysql已經安裝好了。並且已經成功的啟動!
5.精簡:
如果你覺得mysql目錄過於龐大的話請看。根目錄下可以只留下my.ini和bin,data,share目錄,其余全部刪除。bin目錄下可以把.pdb的文件全部刪除。
6.初始化數據庫:
由於mysql默認的root的密碼為空並且只能本機登錄,做如下修改:
cmd:進入mysql的根目錄\bin:
mysql -uroot
這時進入了mysql命令行界面,繼續輸入:
mysql< use mysql; mysql< delete from user; mysql< grant all on *.* to root@'%' identified by "root" with grant option; mysql< flush privileges; mysql< quit;
這樣就給root用戶賦予了初始密碼"root",並且可以不限制本機登錄。
7.亂碼問題:
修改my.ini文件,找到[mysqld],在下方加上:
character-set-server = utf8 #mysql5.5開始 default-character-set = utf8 #mysql5.5以前
找到[client],在下方加上:
default-character-set = utf8
-
mysql下載回來之后解壓到D:/mysql-5.1.57-win32,把D:/mysql-5.1.57-win32/bin加入到系統環境變量 Path 中。
-
然后需要簡單的配置mysql數據庫,把my-small.ini改名為 my.ini (其他的幾個文件也可以直接拿過來修改一下名字),編輯文件 my.ini,其內容完整如下
# Example MySQL config file for small systems.
# Example MySQL config file for small systems.
#
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it's important that the mysqld daemon
# doesn't use much resources.
#
# MySQL programs look for option files in a set of
# locations which depend on the deployment platform.
# You can copy this option file to one of those
# locations. For information about these locations, see:
# http://dev.mysql.com/doc/mysql/en/option-files.html
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
basedir=D:/mysql-5.1.57-win32
datadir=D:/mysql-5.1.57-win32/data
default-storage-engine = MyISAM
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
server-id = 1
# Uncomment the following if you want to log updates
#log-bin=mysql-bin
# binary logging format - mixed recommended
#binlog_format=mixed
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = C://mysql//data//
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C://mysql//data//
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
輸入:mysqld.exe 就可以啟動服務了
- cmd中關閉數據庫
命令mysqladmin -u root shutdown
mysql5.1非安裝zip文件版安裝指南
一、安裝
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下即可。
二、啟動
要想啟動服務器,有兩種方式:
1、輸入命令:
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。
2、以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命令忽略大小寫。
三、關閉
下述命令可以停止MySQL服務器:
C:\> D:\javatool\MySQL\MySQL Server 5.1\bin\mysqladmin -u root shutdown
四、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 shutdown
Enter password: (enter root password here)
