MySQL有兩種安裝方式:源碼包安裝和二進位包安裝。這兩種方式各有特色:二位制包安裝不需編譯,針對不同的平台有經過最佳化編譯的不同的二進位檔案以及包格式,安裝簡單方便;源碼包則必須先配置編譯再安裝,可以根據你所用的主機環境進行最佳化,選擇最佳的配置值,安裝定製更靈活。下面分別介紹這兩種安裝方式。
3.1 源碼包方式安裝
3.1.1 在linux系統中添加運行Mysql的使用者和組
/usr/sbin/groupadd mysql
/usr/sbin/useradd -d /var/lib/mysql -s /sbin/nologin -g mysql mysql
3.1.2 下載最新穩定發行版(GA)的MySQL軟體
訪問MySQL網站http://dev.mysql.com/downloads/下載最新穩定發行版的MySQL源碼包。本文使用的是5.0.51版本,在linux系統下用下面的命令下載:
wget http://mysql.mirror.kangaroot.ne ... mysql-5.0.51.tar.gz
3.1.3 解壓縮下載的源碼包
首先建立一個工作目錄( 筆者建議的目錄為/usr/local/src/mysql ) :
mkdir -p /usr/local/src/mysql
將下載的源碼包移至工作目錄:
mv mysql-5.0.51.tar.gz /usr/local/src/mysql
進入工作目錄並用tar命令解壓源碼包:
cd /usr/local/src/mysql
tar zxvf mysql-5.0.51.tar.gz
命令執行結束後,當前工作目錄下將產生一個新的子目錄mysql-5.0.51,此目錄下即為mysql的源碼檔案。
3.1.4 配置Makefile檔案
進入MySQL源碼目錄:
cd mysql-5.0.51
執行下面的命令可查看可配置選項:
./configure --help
本文使用的配置命令格式如下:
CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-thread-safe-client --enable-assembler --with-big-tables --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=complex
配置選項說明:
CC:C編譯器的名稱(用於運行configure),本文樣本為gcc
CFLAGS:C編譯器的標誌(用於運行configure),本文樣本為-O3,指定最佳化層級為3
CXX:C++編譯器的名稱(用於運行configure),本文樣本為gcc
CXXFLAGS:C++編譯器的標誌(用於運行configure)
--prefix:指定安裝目錄,本文樣本為/usr/local/mysql
--localstatedir:指定預設資料庫檔案儲存目錄,預設為安裝目錄下的var目錄
--enable-thread-safe-client:編譯安全執行緒版的MySQL用戶端庫
--enable-assembler:使用一些字元函數的彙編版本
--with-client-ldflags:用戶端連結參數,本文樣本為指定靜態編譯mysql用戶端
--with-mysqld-ldflags:伺服器端連結參數,本文樣本為指定靜態編譯mysql伺服器
--with-big-tables:在32位平台上支援大於4G行的表
--with-charset:指定預設字元集。mysql預設使用latin1(cp1252)字元集,可以使用此選項更改。字元集可以是big5、cp1251、cp1257、czech、danish、dec8、dos、euc_kr、gb2312、gbk、german1、hebrew、hp8、hungarian、koi8_ru、koi8_ukr、latin1、latin2、sjis、swe7、tis620、ujis、usa7或win1251ukr。
--with-collation:指定預設校對規則。mysql預設使用latin1_swedish_ci校對規則,可以使用此選項更改。
--with-extra-charsets:伺服器需要支援的字元集,有三種可能的值:空格間隔的一系列字元集名;complex ,包括不能動態裝載的所有字元集;all,將所有字元集包括進二進位。本文樣本為complex。
注意:要想更改字元集和校對規則,要同時使用--with-charset和--with-collation選項。 校對規則必須是字元集的合法校對規則。(在mysql中使用SHOW COLLATION語句來確定每個字元集使用哪個校對規則)。
3.1.5 編譯原始碼
執行下面的命令編譯原始碼:
make
3.1.6 安裝
執行下面的命令安裝mysql到目標路徑:
make install
3.1.7 複製預設全域啟動參數設定檔到/etc目錄
源碼方式安裝需要手動複製設定檔,配置模板位於源碼樹的support-files目錄,有my-small.cnf、my-medium.cnf、my-large.cnf、my-huge.cnf四個,選擇跟你的環境相接近的一個複製到/etc目錄,並做適當修改。關於mysql設定檔的詳細資料請參閱筆者的其它文章或是mysql官方文檔。
本文樣本選擇my-medium.cnf,執行下面的命令將其複製到/etc目錄:
cp ./support-files/my-medium.cnf /etc/my.cnf
3.1.8 初始化授權表
執行下面的命令初始化授權表:
./scripts/mysql_install_db --user=mysql
3.1.9 更改mysql資料目錄屬主和許可權
預設資料庫檔案儲存目錄為安裝目錄下的var目錄,執行configure命令時可通過--localstatedir參數指定不同的目錄,本文樣本為預設位置。
chown -R mysql.mysql /usr/local/mysql/var
chmod -R 700 /usr/local/mysql/var
3.1.10 設定開機自啟動服務控制指令碼
執行下面的命令複製啟動指令碼到資來源目錄:
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
執行下面的命令增加mysqld服務控制指令碼執行許可權:
chmod +x /etc/rc.d/init.d/mysqld
執行下面的命令將mysqld服務加入到系統服務:
chkconfig --add mysqld
執行下面的命令檢查mysqld服務是否已經生效:
chkconfig --list mysqld
命令輸出類似下面的結果:
mysqld 0ff 1ff 2n 3n 4n 5n 6ff
表明mysqld服務已經生效,在2、3、4、5運行層級隨系統啟動而自動啟動,以後可以使用service命令控制mysql的啟動和停止。
啟動mysqld服務:
service mysqld start
停止mysqld服務:
service mysqld stop
執行下面的命令關閉開機自啟動:
chkconfig mysqld off
執行下面的命令可以改變開機自啟動的運行層級為3、5:
chkconfig --level 35 mysqld on
3.1.11 將mysql的bin目錄加入PATH環境變數
編輯/etc/profile檔案:
vi /etc/profile
在檔案最後添加如下兩行:
PATH=$PATH:/usr/local/mysql/bin
export PATH
執行下面的命令使所做的更改生效:
. /etc/profile
3.2 二進位包方式安裝
3.2.1 從安裝媒體安裝
Mysql二進位包已經包含在CentOS 5的安裝媒體中,可以直接從安裝媒體中安裝下面三個rpm包:
mysql-5.0.22-2.1.0.1.i386.rpm
mysql-devel-5.0.22-2.1.0.1.i386.rpm
mysql-server-5.0.22-2.1.0.1.i386.rpm
不同的版本檔案名稱有所不同,請注意區分。
執行下面的命令安裝:
rpm -iUvh mysql-5.0.22-2.1.0.1.i386.rpm
rpm -iUvh mysql-devel-5.0.22-2.1.0.1.i386.rpm
rpm -iUvh mysql-server-5.0.22-2.1.0.1.i386.rpm
3.2.2 通過yum安裝
如果你安裝的機器此時可以串連到互連網,筆者建議使用yum命令來簡化安裝過程:
yum install mysql-server mysql-devel mysql
yum將自動從centos的鏡像網站尋找你指明的軟體的最新二進位包,並檢查軟體包依賴關係,安裝軟體的同時自動安裝其依賴的軟體包。
3.2.3 從mysql網站下載最新穩定版本的二進位包安裝
通過CentOS安裝媒體或yum安裝的二進位包版本會落後於mysql開發人員網站發布的版本,可以從mysql網站下載安裝最新穩定版本的mysql。
訪問MySQL網站http://dev.mysql.com/downloads/下載最新穩定發行版的相應硬體平台的MySQL。本文使用的是Red Hat Enterprise Linux 5 RPM (x86) 5.0.45版本。需要下載Server、Client、Headers and Libraries、Share Libraries/Shared compatibility libraries幾個rpm包,其它為可選包,按需要選擇。
在linux系統下用下面的命令下載:
wget http://mysql.mirrors.pair.com/Do ... 45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Do ... 45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Do ... 45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Do ... 45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Do ... 45-0.rhel5.i386.rpm
執行下面的命令安裝:
rpm -iUvh MySQL-server-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-client-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-devel-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-shared-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-shared-compat-5.0.45-0.rhel5.i386.rpm
4. MySQL的配置
4.1 目錄結構
4.1.1 源碼包方式安裝目錄結構
源碼包方式安裝時通常是在3.1.4節中configure命令的--prefix選項指定的目錄中建立如下的目錄結構,特殊指定的目錄除外:
./bin #mysql使用者可執行檔目錄
./include/mysql #mysql C標頭檔目錄
./info #mysql 資訊檔目錄
./lib/mysql #mysql庫檔案目錄
./libexec #mysql後台daemon程式目錄
./man #mysql線上說明文檔目錄
./mysql-test #mysql測試程式目錄
./share/mysql #mysql公用檔案目錄,包括字元集、設定檔範本、啟動指令碼、初始化SQL檔案等
./sql-bench #mysql壓力測試程式目錄
/etc/my.cnf #mysql設定檔
/etc/rc.d/init.d/mysqld #mysqld服務啟動指令碼
4.1.2 RPM二進位包方式安裝目錄結構
二進位包方式安裝時使用系統軟體預設目錄結構 :
/usr/bin #mysql使用者可執行檔目錄
/usr/libexec #mysql後台daemon程式目錄
/usr/lib/mysql #mysql庫檔案目錄
/usr/lib64/mysql #如果為64系統,mysql 64位庫檔案目錄
/usr/share/doc #mysql文檔目錄
/usr/share/info #mysql資訊檔目錄
/usr/share/man #mysql線上說明文檔目錄
/usr/share/mysql #mysql字元集目錄
/usr/include/mysql #mysql C標頭檔目錄
/var/log #mysqld服務記錄檔目錄
/var/run/mysqld #mysqld服務運行狀態目錄
/var/lib/mysql #mysql資料檔案目錄
/etc/my.cnf #mysql設定檔
/etc/rc.d/init.d/mysqld #mysqld服務啟動指令碼
4.2 設定檔
Linux系統下,mysql的配置參數檔案為my.cnf,一般按下面的順序尋找此檔案:/etc目錄、mysql安裝目錄、mysql資料目錄。配置模板位於源碼樹的support-files目錄,有my-small.cnf、my-medium.cnf、my-large.cnf、my-huge.cnf四個,關於mysql設定檔的詳細資料請參閱筆者的其它文章或是mysql官方文檔。
4.3 啟動mysqld服務
執行下面的命令啟動mysql:
service mysqld start
4.3 設定mysql帳號
mysql安裝後預設產生兩個帳號:一個是root,未設定密碼,可以從本機登入到mysql;另一個是匿名帳號,無帳號名、無密碼,可以從本機登入,未提供使用者名稱的串連都將假定為此帳號。這樣的設定存在著安全隱患,按下面的步驟變更。
以root帳號串連到mysql伺服器:
mysql -u root
如果提示找不到mysql檔案,請嘗試使用絕對路徑,如本文樣本為:
/usr/local/mysql/bin/mysql -u root
命令成功執行後將進入到mysql命令提示字元下:
mysql>
(以下命令均在mysql命令提示字元下執行)
改變當前資料庫為mysql:
use mysql
設定從本地主機登入的root帳號密碼:
set password for root@localhost=password('your password');
或:
update user set password=password('your password') where user='root' and host='localhost';
刪除匿名帳號:
delete from user where user='' ;
刪除密碼為空白的帳號:
delete from user where password='';
刪除允許非localhost主機登入的帳號:
delete from user where host<>'localhost' ;
執行下面的命令使更改生效:
flush privileges ;
執行下面的命令退出mysql命令列:
quit
或:
/q
5. 結束語
至此,Mysql基本安裝完畢。希望本文能對初學者有所協助。
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/xiamizy/archive/2008/01/30/2072525.aspx
Linux (non RPM packages) downloads
#newuser ## 按提示添加名為”mysql”的使用者和組,你也可以使用sysinstall來添加
#vi /etc/group ## 在wheel組裡添加上mysql使用者(一般是在root後面加上”,mysql”),原因在後面說到
#tar zxvf mysql-5.1.31-linux-686-glibc23.tar.gz
#mv mysql-5.1.31-linux-686-glibc23 /usr/local/mysql ## 我安裝在/usr/local/mysql下
#cd /usr/local/mysql
#chown -R mysql .
#chgrp -R mysql .
#su simon ## 這一步重要呀,mysql裡的INSTALL-BINARY都沒提到,試了N次才知,要不你就要以root的身份運行,即執行scripts/mysql_install_db時不指定–user=mysql, 要不下面的那一步死活不能通過,也沒有錯誤提示,我在這裡卡了很久
$scripts/mysql_install_db –user=mysql ## 這裡可能會出現一些警告,主要是因為DNS,你可以加上 –force參數或在/etc/hosts裡加一項你的主機名稱
$exit ## 因為我之前是用su,反正你改回root就行,因為要啟動服務
#chown -R root .
#chown -R mysql .
#cp support-files/my-xxx.cnf /etc/my.cnf ## 這雷根據你自己的要求使用mysql的設定檔
#support-files/mysql.server start ## 如果你是在wheel組裡添加了 mysql使用者,那這裡就應該不會出問題了,因為mysql要在/tmp下添加一個sock,但使用者“mysql”對這目錄是沒有有寫入權限的,所以要讓“mysql”成為whell的成員
#bin/mysqladmin -uroot password ‘這裡填寫你的root密碼’
好了,基本完成
驗證mysql運行:
#netstat -al ## 看看3306,如果啟動了就表示成功了
#bin/mysql -uroot -p ## 試試登入,應該沒問題了