MySQL入門完全指南及Linux系統下基本的安裝教程_Mysql

來源:互聯網
上載者:User

我們來瞭解一下MySQL的基本特性:

1.內部構件和可移植性

  • 使用C和C++編寫
  • 用眾多不同的編譯器進行了測試
  • 能夠工作在眾多不同的平台上。請參見2.1.1 “MySQL支援的作業系統”。
  • 使用GNU Automake、Autoconf和Libtool進行移植。
  • 提供了用於C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API。
  • 採用核心線程的完全多線程 如果有多個CPU,它能方便地使用這些CPU。
  • 提供了事務性和非事務性儲存引擎。
  • 使用了極快的“B樹”磁碟表(MyISAM)和索引壓縮。
  • 添加另一個儲存引擎相對簡單。如果打算為內部資料庫添加一個SQL介面,該特性十分有用。
  • 極快的基於線程的記憶體配置系統。
  • 通過使用最佳化的“單掃描多串連”,能實現極快的串連。
  • 儲存空間中的雜湊表用作暫存資料表。
  • SQL函數是使用高度最佳化的類庫實現的,運行很快。通常,在完成查詢初始化後,不存在儲存空間分配。
  • 採用Purify(商業記憶體溢出檢測器)以及GPL工具Valgrind(http://developer.kde.org/~sewardj/)測試了MySQL代碼。
  • 伺服器可作為單獨程式運行在用戶端/伺服器連網環境下。它也可作為庫提供,可嵌入(連結)到獨立的應用程式中。這類應用程式可單獨使用,也能在網路環境下使用。

2.列類型

眾多列類型: 帶符號/不帶正負號的整數,1、2、3、4、8位元組長,FLOAT,DOUBLE,CHAR,VARCHAR,TEXT,BLOB,DATE,TIME,DATETIME,TIMESTAMP,YEAR,SET,ENUM,以及OpenGIS空間類型。請參見第11章:列類型。

定長和可變長度記錄。

3.語句和函數

在SELECT和查詢的WHERE子句中,提供完整的操作符和函數支援。例如:

mysql> SELECT CONCAT(first_name, ' ', last_name)  -> FROM citizen  -> WHERE income/dependents > 10000 AND age > 30;

對SQL GROUP BY和ORDER BY子句的全面支援。支援彙總函式(COUNT(), COUNT(DISTINCT ...),AVG(),STD(),SUM(),MAX(),MIN()和GROUP_CONCAT())。

支援LEFT OUTER JOIN和RIGHT OUTER JOIN,採用標準的SQL和ODBC文法。

按照標準SQL的要求,支援表別名和列別名。

DELETE、INSERT、REPLACE和UPDATE返回更改(影響)的行數。串連到伺服器時,可通過設定標誌返回匹配的行數。

MySQL的SHOW命令可用於檢索關於資料庫、資料庫引擎、表和索引的資訊。EXPLAIN命令可用於確定最佳化器處理查詢的方式。

函數名與表名或列名不衝突。例如,ABS是有效列名。唯一的限制在於,調用函數時,函數名和隨後的符號“(”之間不得有空格。請參見9.6 “MySQL中保留字的處理”。

可以將不同資料庫的表混合在相同的查詢中(就像MySQL 3.22中那樣)。

4.安全

十分靈活和安全的許可權和密碼系統,允許基於主機的驗證。串連到伺服器時,所有的密碼傳輸均採用加密形式,從而保證了密碼安全。

5.延展性和限制

處理大型資料庫: 我們使用了MySQL伺服器和含5千萬條記錄的資料庫。我們還聽說,有些使用者將MySQL用於含60000個表和約50億行的資料庫。

每個表可支援高達64條索引(在MySQL 4.1.2之前為32條)。每條索引可由1~16個列或列元素組成。最大索引寬度為1000位元組(在MySQL 4.1.2之前為500)。索引可使用具備CHAR、VARCHAR、BLOB或TEXT列類型的列首碼。

6.串連性

在任何平台上,用戶端可使用TCP/IP協議串連到MySQL伺服器。在Windows系統的NT系列中(NT、2000、XP或2003),用戶端可使用具名管道進行串連。在Unix系統中,用戶端可使用Unix域通訊端檔案建立串連。

在MySQL 4.1和更高的版本中,如果是以“--shared-memory”選項開始,Windows伺服器還支援共用記憶體串連。用戶端可使用“--protocol=memory”選項,通過共用記憶體建立串連。

Connector/ODBC (MyODBC)介面為使用ODBC(開放式資料庫連接性)串連的用戶端程式提供了MySQL支援。例如,可以使用MS Access串連到你的MySQL伺服器。用戶端可運行在Windows或Unix平台上。提供了MyODBC源。支援所有的ODBC 2.5函數,以及眾多其他函數。

Connector/J介面為使用JDBC串連的Java用戶端程式提供了MySQL支援。用戶端可運行在Windows或Unix平台上。提供了Connector/J源碼。

7.本地化

伺服器可使用多種語言向用戶端提供錯誤訊息。請參見5.10.2節,“設定錯誤訊息語言”。

對數種不同字元集的全面支援,包括latin1 (cp1252)、german、big5、ujis等。例如,在表名和列名中允許使用斯堪的納維亞字元‘å'、‘ä'和‘ö'。從MySQL 4.1開始,提供了Unicode支援。

所有資料均以所選的字元集儲存。正常字串列的比較不區分大小寫。

分類是根據所選的字元集(預設情況下,使用瑞典校對)進行的。啟動MySQL伺服器時,可更改該項設定。要想查看進階分類的樣本,請參見Czech分類代碼。MySQL伺服器支援眾多不同的字元集,這類字元集可在編譯時間和運行時指定。

8.用戶端和工具

MySQL伺服器提供了對SQL語句的內部支援,可用於檢查、最佳化和修複表。通過mysqlcheck用戶端,可在命令列上使用這類語句。MySQL還包括myisamchk,這是一種很快的命令列工具 + 生產力,可用於在MyISAM表上執行這類操作。請參見第5章:資料庫管理。

對於所有MySQL程式,均能通過“-help”或“-?”選項調用,以擷取線上說明資訊。

MySQL在Linux上的安裝:

1,rpm包形式
(1) 作業系統發行商提供的
(2) MySQL官方提供的(版本更新,修複了更多常見BUG)www.mysql.com/downloads
關於MySQL中rpm包類型的介紹:
 MySQL-client         用戶端組件
 
 MySQL-debuginfo      調試MySQL的組件 
 
 MySQL-devel          想針對於MySQL編譯安裝PHP等依賴於MySQL的組件包
 
 MySQL-embedded       MySQL的嵌入式版本
 
 MySQL-server         共用庫
 
 MySQL-shared         共用庫
 
 MySQL-shared-dompat  為了相容老版本的共用庫
 
 MySQL-test           MySQL的測試組件(線上處理功能)
安裝方法:
首先可以從安裝光碟片中或者到mysql的網站上下載對應版本的rpm包如下:

MySQL-server-community-5.5.28-1.rhel5.i386.rpm  MySQL-client-community-5.5.28-1.rhel5.i386.rpm 
接著我們可以使用rpm命令進行安裝:
rpm -ivh MySQL-server-community-5.5.28-1.rhel5.i386.rpm  rpm -ivh MySQL-client-community-5.5.28-1.rhel5.i386.rpm 

補充一點: 
-h 使用符號#顯示安裝進度
 
-v 報告每一步操作的情況

2,通用二進位包
(1)建立使用者以安全方式運行進程:

# groupadd -r mysql  # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql  # chown -R mysql:mysql /mydata/data 

(2)安裝並初始化mysql-5.5.28
首先下載平台對應的mysql版本至本地,這裡是32位平台,因此,選擇的為mysql-5.5.28-linux2.6-i686.tar.gz
#

 tar xf mysql-5.5.28-linux2.6-i686.tar.gz -C /usr/local  # cd /usr/local/  # ln -sv mysql-5.5.28-linux2.6-i686 mysql  # cd mysql  # chown -R mysql:mysql .  # scripts/mysql_install_db --user=mysql --datadir=/mydata/data  # chown -R root . 

(3)為mysql提供主設定檔:

# cd /usr/local/mysql  # cp support-files/my-large.cnf /etc/my.cnf 

(4)修改設定檔:
修改此檔案中thread_concurrency的值為你的CPU個數乘以2,比如這裡使用如下行: 
 

thread_concurrency = 2 

 
另外還需要添加如下行指定mysql資料檔案的存放位置: 
 

datadir = /mydata/data 

(5)為mysql提供sysv服務指令碼:

# cd /usr/local/mysql  # cp support-files/mysql.server /etc/rc.d/init.d/mysqld 

(6)添加至服務列表:

# chkconfig --add mysqld  # chkconfig mysqld on 

(7)而後就可以啟動服務測試使用了。

# service mysqld start

 
3,源碼編譯
(安裝編譯方式有點改變,配置過程無太大變動,所以後面不詳細介紹各個步驟了)
若想在5.0系列的紅帽系統上進行源碼編譯安裝MySQL必須藉助一個跨平台編譯器cmake
所以:
(1)首先安裝cmake
安裝cmake需要用make

# tar xf cmake-2.8.8.tar.gz  # cd cmake-2.8.8  # ./bootstrap 

     使用此指令碼來檢測編譯環境 
 

# make  # make install 

(2)編譯安裝mysql-5.5.28
使用cmake編譯mysql-5.5.28,選項的方式有所改變簡單介紹一下。。。
cmake指定編譯選項的方式不同於make,其實現方式如下:
cmake .
 
cmake . -LH 或 ccmake .        尋找可以使用的相關選項
指定安裝檔案的安裝路徑時常用的選項:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql         指定安裝路徑
 
-DMYSQL_DATADIR=/data/mysql                     資料安裝路徑
 
-DSYSCONFDIR=/etc                               設定檔的安裝路徑
由於MySQL支援很多的儲存引擎而預設編譯的儲存引擎包括:csv、myisam、myisammrg和heap。若要安裝其它儲存引擎,可以使用類似如下編譯選項:
-DWITH_INNOBASE_STORAGE_ENGINE=1          安裝INNOBASE儲存引擎
 
-DWITH_ARCHIVE_STORAGE_ENGINE=1           安裝ARCHIVE儲存引擎
 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1         安裝BLACKHOLE儲存引擎
 
-DWITH_FEDERATED_STORAGE_ENGINE=1         安裝FEDERATED儲存引擎
 
若要明確指定不編譯某儲存引擎,可以使用類似如下的選項:
-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1 
比如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1        不啟用或不編譯EXAMPLE儲存引擎
 
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
 
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
如若要編譯進其它功能,如SSL等,則可使用類似如下選項來實現編譯時間使用某庫或不使用某庫:
-DWITH_READLINE=1
 
-DWITH_SSL=system           表示使用系統上的內建的SSL庫
 
-DWITH_ZLIB=system
 
-DWITH_LIBWRAP=0
其它常用的選項:
-DMYSQL_TCP_PORT=3306                       設定預設連接埠的
 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock           MySQL處理序間通訊的通訊端的位置
 
-DENABLED_LOCAL_INFILE=1                    是否啟動本地的LOCAL_INFILE
 
-DEXTRA_CHARSETS=all                        支援哪些額外的字元集
 
-DDEFAULT_CHARSET=utf8                      預設字元集
 
-DDEFAULT_COLLATION=utf8_general_ci         預設的字元集定序
 
-DWITH_DEBUG=0                              是否啟動DEBUG功能
 
-DENABLE_PROFILING=1                        是否啟用效能分析功能
如果想清理此前的編譯所產生的檔案,則需要使用如下命令:

make clean  rm CMakeCache.txt 

編譯安裝

# tar xf mysql-5.5.28.tar.gz  # cd mysql-5.5.28  # groupadd -r mysql  # useradd -g -r mysql mysql  # mkdir -pv /data/mydata  # chown -R mysql:mysql /data/mydata  # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mydata -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  # make  # make install # cd /usr/local/mysql 

 

# chown -R :mysql

    更改屬組 
 

# scripts/mysql_install_db --user=mysql --datadir=/data/mydata/

  指定資料存放位置
 

# cp support-files/my-large.cnf /etc/my.cnf 

    建立設定檔
 
編輯設定檔

#vim /etc/my.cnf 

添加如下行指定mysql資料檔案的存放位置: 
 

datadir = /mydata/data 

建立執行指令碼和啟動服務

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 

複製指令碼 
 

# chmod +x /etc/rc.d/init.d/mysqld 

 執行許可權 
 

# chkconfig -add mysql 

添加到服務列表中 
 

# service mysqld start 

 啟動服務 
 

# bin/mysql  

啟動mysql

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.