
【軟件特色】
高速高速是MySQL的顯著特性,在MySQL中,使用了極快的“B樹”磁盤表(MyISAM)和索引壓縮;通過使用優(yōu)化的“單掃描多連接”,能夠?qū)崿F(xiàn)極快的連接。一直以來,高速都是MySQL吸引眾多用戶的特性之一,這一點可能只有親自使用才能體會。
支持多平臺
MySQL支持超過20種開發(fā)平臺,包括Linux、Windows、FreeBSD、IBM AIX、HP-UX、Mac OS、OpenBSD、Solaris等,這使得用戶可以選擇多種平臺實現(xiàn)自己的應(yīng)用,并且在不同平臺上開發(fā)的應(yīng)用系統(tǒng)可以很容易在各種平臺之間進行移植。
支持各種開發(fā)語言
MySQL為各種流行的程序設(shè)計語言提供支持,為它們提供了很多API函數(shù),包括C、C++、Java、Perl、PHP等。
提供多種存儲器引擎
MySQL中提供了多種數(shù)據(jù)庫存儲引擎,各引擎各有所長,適用于不同的應(yīng)用場合,用戶可以選擇最合適的引擎以得到最高性能。
功能強大
強大的存儲引擎使MySQL能夠有效應(yīng)用于任何數(shù)據(jù)庫應(yīng)用系統(tǒng),高效完成各種任務(wù),無論是大量數(shù)據(jù)的高速傳輸系統(tǒng),還是每天訪問量超過數(shù)億的高強度的搜索Web站點。
支持大型數(shù)據(jù)庫
InnoDB存儲引擎將InnoDB表保存在一個表空間內(nèi),該表空間可由數(shù)個文件創(chuàng)建。這樣,表的大小就能超過單獨文件的最大容量。表空間還可以包括原始磁盤分區(qū),從而使構(gòu)建很大的表成為可能,最大容量可以達到64TB。
安全
靈活和安全的權(quán)限和密碼系統(tǒng),允許基于主機的驗證。連接到服務(wù)器時,所有的密碼傳輸均采用加密形式,從而保證了密碼安全。
價格低廉
MySQL采用GPL許可,很多情況下,用戶可以免費使用MySQL;對于一些商業(yè)用途,需要購買MySQL商業(yè)許可,但價格相對低廉。

【常見問題】
MySql常用命令有哪些?1、使用SHOW語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫:
mysql> SHOW DATABASES;
2、創(chuàng)建一個數(shù)據(jù)庫MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
3、選擇你所創(chuàng)建的數(shù)據(jù)庫
mysql> USE MYSQLDATA; (按回車鍵出現(xiàn)Database changed 時說明操作成功!)
4、查看現(xiàn)在的數(shù)據(jù)庫中存在什么表
mysql> SHOW TABLES;
5、創(chuàng)建一個數(shù)據(jù)庫表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6、顯示表的結(jié)構(gòu):
mysql> DESCRIBE MYTABLE;
7、往表中加入記錄
mysql> insert into MYTABLE values (”hyq”,”M”);
8、用文本方式將數(shù)據(jù)裝入數(shù)據(jù)庫表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;
9、導(dǎo)入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10、刪除表
mysql>drop TABLE MYTABLE;
11、清空表
mysql>delete from MYTABLE;
12、更新表中數(shù)據(jù)
mysql>update MYTABLE set sex=”f” where name=’hyq’;
【使用技巧】
1、啟動MySQL服務(wù)器實際上上篇已講到如何啟動MySQL。兩種方法:
一是用winmysqladmin,如果機器啟動時已自動運行,則可直接進入下一步操作。
二是在DOS方式下運行
d:/mysql/bin/mysqld
2、進入mysql交互操作界面
在DOS方式下,運行:
d:/mysql/bin/mysql -u root -p
出現(xiàn)提示符,此時已進入mysql的交互操作方式。
如果出現(xiàn) "ERROR 2003: Can‘t connect to MySQL server on ‘localhost‘ (10061)“,說明你的MySQL還沒有啟動。
3、退出MySQL操作界面
在mysql>提示符下輸入quit可以隨時退出交互操作界面:
mysql> quit
Bye
你也可以用control-D退出。
4、第一條命令
mysql> select version(),current_date();
+----------------+-----------------+
| version() | current_date() |
+----------------+-----------------+
| 3.23.25a-debug | 2001-05-17 |
+----------------+-----------------+
1 row in set (0.01 sec)
此命令要求mysql服務(wù)器告訴你它的版本號和當(dāng)前日期。嘗試用不同大小寫操作上述命令,看結(jié)果如何。
結(jié)果說明mysql命令的大小寫結(jié)果是一致的。
練習(xí)如下操作:
mysql>Select (20+5)*4;
mysql>Select (20+5)*4,sin(pi()/3);
mysql>Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名為Result)
5、多行語句
一條命令可以分成多行輸入,直到出現(xiàn)分號“;”為止:
mysql> select
-> USER()
-> ,
-> now()
->;
+--------------------+-----------------------------+
| USER() | now() |
+--------------------+-----------------------------+
| ODBC@localhost| 2001-05-17 22:59:15 |
+--------------------+-----------------------------+
6、使用SHOW語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
3 rows in set (0.00 sec)
7、創(chuàng)建一個數(shù)據(jù)庫abccs
mysql> CREATE DATABASE abccs;
注意不同操作系統(tǒng)對大小寫的敏感。
8、選擇你所創(chuàng)建的數(shù)據(jù)庫
mysql> USE abccs
Database changed
此時你已經(jīng)進入你剛才所建立的數(shù)據(jù)庫abccs.
9、 創(chuàng)建一個數(shù)據(jù)庫表
首先看現(xiàn)在你的數(shù)據(jù)庫中存在什么表:
mysql> SHOW TABLES;
Empty set (0.00 sec)
說明剛才建立的數(shù)據(jù)庫中還沒有數(shù)據(jù)庫表。
【使用教程】
mysql怎么解決mysql insert重復(fù)?準(zhǔn)備工作-建表
先建立2個測試表,在id列上創(chuàng)建unique約束。
mysql> create table test1(id int,name varchar(5),type int,primary key(id));Query OK, 0 rows affected (0.01 sec)
并插入幾條數(shù)據(jù),如下圖所示:

mysql> create table test2(id int,name varchar(5),type int,primary key(id));Query OK, 0 rows affected (0.01 sec)
并插入幾條數(shù)據(jù),如下圖所示:

使用 REPLACE INTO
發(fā)現(xiàn)重復(fù)的先刪除再插入,如果記錄有多個字段,在插入的時候如果有的字段沒有賦值,那么新插入的記錄這些字段為空,如下圖所示:
mysql> replace into test1(id,name)(select id,name from test2);Query OK, 5 rows affected (0.04 sec)Records: 4 Duplicates: 1 Warnings: 0

需要注意的是,當(dāng)你replace的時候,如果被插入的表如果沒有指定列,會用NULL表示,而不是這個表原來的內(nèi)容。如果插入的內(nèi)容列和被插入的表列一樣,則不會出現(xiàn)NULL,如下圖所示:
mysql> replace into test1(id,name,type)(select id,name,type from test2);Query OK, 8 rows affected (0.04 sec)Records: 4 Duplicates: 4 Warnings: 0

使用INSERT INTO ON DUPLICATE KEY UPDATE
發(fā)現(xiàn)重復(fù)的是更新操作。在原有記錄基礎(chǔ)上,更新指定字段內(nèi)容,其它字段內(nèi)容保留。例如我只想插入test2表的id,name字段,但是要保留test1表的type字段,如下圖所示:
mysql> insert into test1(id,name,type)(select id,name,type from test2) on DUPLICATE KEY UPDATE test1.name=test2.name;Query OK, 5 rows affected (0.04 sec)Records: 4 Duplicates: 1 Warnings: 0

使用IGNORE INTO
判斷是否存在,存在不插入,否則插入。很容易理解,當(dāng)插入的時候,違反唯一性約束,MySQL不會嘗試去執(zhí)行這條語句,如下圖所示:
mysql> insert ignore into test1(id,name,type)(select id,name,type from test2);Query OK, 3 rows affected (0.01 sec)Records: 4 Duplicates: 1 Warnings: 0

【安裝步驟】
雙擊解壓縮,運行【setup.exe】,出現(xiàn)如下界面。
mysql安裝向?qū)?,按【Next】繼續(xù)。

選擇安裝類型,有【Typical(默認(rèn))】、【Complete(完全)】、【Custom(用戶自定義)】三個選項,我們選擇【Custom】,有更多的選項,也方便熟悉安裝過程:

在【Developer Components(開發(fā)者部分)】上左鍵單擊,選擇【This feature, and all subfeatures, will be installed on local hard drive.】,即【此部分,及下屬子部分內(nèi)容,全部安裝在本地硬盤上】。在上面的【Mysql server(mysql服務(wù)器)】、【Client Programs(mysql客戶端程序)】、【Documentation(文檔)】也如此操作,以保證安裝所有文件。點選【Change...】,手動指定安裝目錄。

填上安裝目錄,我的是【F:\Server\MySQL\MySQL Server 5.0】,也建議不要放在與操作系統(tǒng)同一分區(qū),這樣可以防止系統(tǒng)備份還原的時候,數(shù)據(jù)被清空。按【OK】繼續(xù)。

返回剛才的界面,按【Next】繼續(xù)。

確認(rèn)一下先前的設(shè)置,如果有誤,按【Back】返回重做。按【Install】開始安裝。

正在安裝中,請稍候,直到出現(xiàn)下面的界面

這里是詢問你是否要注冊一個mysql.com的賬號,或是使用已有的賬號登陸mysql.com,一般不需要了,點選【Skip Sign-Up】,按【Next】略過此步驟。

現(xiàn)在軟件安裝完成了,出現(xiàn)上面的界面,這里有一個很好的功能,mysql配置向?qū)?,不用向以前一樣,自己手動亂七八糟的配置my.ini了,將【Configure the Mysql Server now】前面的勾打上,點【Finish】結(jié)束軟件的安裝并啟動mysql配置向?qū)А?br />

mysql配置向?qū)咏缑妫础綨ext】繼續(xù)。

選擇配置方式,【Detailed Configuration(手動精確配置)】、【Standard Configuration(標(biāo)準(zhǔn)配置)】,我們選擇【Detailed Configuration】,方便熟悉配置過程。

選擇服務(wù)器類型,【Developer Machine(開發(fā)測試類,mysql占用很少資源)】、【Server Machine(服務(wù)器類型,mysql占用較多資源)】、【Dedicated MySQL Server Machine(專門的數(shù)據(jù)庫服務(wù)器,mysql占用所有可用資源)】,大家根據(jù)自己的類型選擇了,一般選【Server Machine】,不會太少,也不會占滿。

選擇mysql數(shù)據(jù)庫的大致用途,【Multifunctional Database(通用多功能型,好)】、【Transactional Database Only(服務(wù)器類型,專注于事務(wù)處理,一般)】、【Non-Transactional Database Only(非事務(wù)處理型,較簡單,主要做一些監(jiān)控、記數(shù)用,對MyISAM數(shù)據(jù)類型的支持僅限于non-transactional),隨自己的用途而選擇了,我這里選擇“Transactional Database Only】,按【Next】繼續(xù)。

對InnoDB Tablespace進行配置,就是為InnoDB 數(shù)據(jù)庫文件選擇一個存儲空間,如果修改了,要記住位置,重裝的時候要選擇一樣的地方,否則可能會造成數(shù)據(jù)庫損壞,當(dāng)然,對數(shù)據(jù)庫做個備份就沒問題了,這里不詳述。我這里沒有修改,使用用默認(rèn)位置,直接按【Next】繼續(xù)。

選擇您的網(wǎng)站的一般mysql訪問量,同時連接的數(shù)目,【Decision Support(DSS)/OLAP(20個左右)】、【Online Transaction Processing(OLTP)(500個左右)】、【Manual Setting(手動設(shè)置,自己輸一個數(shù))】,我這里選【Online Transaction Processing(OLTP)】,自己的服務(wù)器,應(yīng)該夠用了,按【Next】繼續(xù)。

是否啟用TCP/IP連接,設(shè)定端口,如果不啟用,就只能在自己的機器上訪問mysql數(shù)據(jù)庫了,我這里啟用,把前面的勾打上,Port Number:3306,在這個頁面上,您還可以選擇【啟用標(biāo)準(zhǔn)模式】(Enable Strict Mode),這樣MySQL就不會允許細小的語法錯誤。如果您還是個新手,我建議您取消標(biāo)準(zhǔn)模式以減少麻煩。但熟悉MySQL以后,盡量使用標(biāo)準(zhǔn)模式,因為它可以降低有害數(shù)據(jù)進入數(shù)據(jù)庫的可能性。按【Next】繼續(xù)。

西文編碼,第二個是多字節(jié)的通用utf8編碼,都不是我們通用的編碼,這里選擇第三個,然后在Character Set那里選擇或填入【gbk】,當(dāng)然也可以用【gb2312】,區(qū)別就是gbk的字庫容量大,包括了gb2312的所有漢字,并且加上了繁體字、和其它亂七八糟的字——使用mysql的時候,在執(zhí)行數(shù)據(jù)操作命令之前運行一次【SET NAMES GBK;】(運行一次就行了,GBK可以替換為其它值,視這里的設(shè)置而定),就可以正常的使用漢字(或其它文字)了,否則不能正常顯示漢字。按【Next】繼續(xù)。

選擇是否將mysql安裝為windows服務(wù),還可以指定Service Name(服務(wù)標(biāo)識名稱),是否將mysql的bin目錄加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目錄名,比如連接,【mysql.exe -uusername -ppassword;】就可以了,不用指出mysql.exe的完整地址,很方便),我這里全部打上了勾,Service Name不變。按【Next】繼續(xù)。選擇是否將mysql安裝為windows服務(wù),還可以指定Service Name(服務(wù)標(biāo)識名稱),是否將mysql的bin目錄加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目錄名,比如連接,【mysql.exe -uusername -ppassword;】就可以了,不用指出mysql.exe的完整地址,很方便),我這里全部打上了勾,Service Name不變。按【Next】繼續(xù)。

這一步詢問是否要修改默認(rèn)root用戶(超級管理)的密碼(默認(rèn)為空),【New root password】如果要修改,就在此填入新密碼(如果是重裝,并且之前已經(jīng)設(shè)置了密碼,在這里更改密碼可能會出錯,請留空,并將【Modify Security Settings】前面的勾去掉,安裝配置完成后另行修改密碼),【Confirm(再輸一遍)】內(nèi)再填一次,防止輸錯?!綞nable root access from remote machines(是否允許root用戶在其它的機器上登陸,如果要安全,就不要勾上,如果要方便,就勾上它)】。最后【Create An Anonymous Account(新建一個匿名用戶,匿名用戶可以連接數(shù)據(jù)庫,不能操作數(shù)據(jù),包括查詢)】,一般就不用勾了,設(shè)置完畢,按【Next】繼續(xù)。

確認(rèn)設(shè)置無誤,如果有誤,按【Back】返回檢查。按【Execute】使設(shè)置生效。

設(shè)置完畢,按【Finish】結(jié)束mysql的安裝與配置——這里有一個比較常見的錯誤,就是不能【Start service】,一般出現(xiàn)在以前有安裝mysql的服務(wù)器上,解決的辦法,先保證以前安裝的mysql服務(wù)器徹底卸載掉了;不行的話,檢查是否按上面一步所說,之前的密碼是否有修改,照上面的操作;如果依然不行,將mysql安裝目錄下的data文件夾備份,然后刪除,在安裝完成后,將安裝生成的 data文件夾刪除,備份的data文件夾移回來,再重啟mysql服務(wù)就可以了,這種情況下,可能需要將數(shù)據(jù)庫檢查一下,然后修復(fù)一次,防止數(shù)據(jù)出錯。


































