程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL入門完整指南及Linux體系下根本的裝置教程

MySQL入門完整指南及Linux體系下根本的裝置教程

編輯:MySQL綜合教程

MySQL入門完整指南及Linux體系下根本的裝置教程。本站提示廣大學習愛好者:(MySQL入門完整指南及Linux體系下根本的裝置教程)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL入門完整指南及Linux體系下根本的裝置教程正文


我們來懂得一下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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved