Linux下Mysql的安裝

MySQL的安裝
MySQL有兩種安裝方式:源碼包安裝和二進制包安裝。這兩種方式各有特色:二位制包安裝不需編譯,針對不同的平臺有經過優化編譯的不同的二進制文件以及包格式,安裝簡單方便;源碼包則必須先配置編譯再安裝,可以根據你所用的主機環境進行優化,選擇最佳的配置值,安裝定製更靈活。下面分別介紹這兩種安裝方式

源碼包方式安裝
添加運行Mysql的用戶和組
/usr/sbin/groupadd mysql
/usr/sbin/useradd -d /var/lib/mysql -s /sbin/nologin -g mysql mysql 

wget http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.0/mysql-5.0.95.tar.gz

首先建立一個工作目錄
mkdir -p /usr/local/src/mysql 

mv mysql-5.0.95.tar.gz /usr/local/src/mysql/

進入工作目錄並用tar命令解壓源碼包:
cd /usr/local/src/mysql tar zxvf mysql-5.0.95.tar.gz

配置Makefile文件
進入MySQL源碼目錄:
cd mysql-5.0.95
執行下面的命令可查看可配置選項:./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語句來確定每個字符集使用哪個校對規則)

編譯源代碼
    執行下面的命令編譯源代碼:
    make
 安裝
    執行下面的命令安裝mysql到目標路徑:
    make install

複製默認全局啓動參數配置文件到/etc目錄
源碼方式安裝需要手動複製配置文件,配置模板位於源碼樹的support-files目錄,有my-small.cnf、my-medium.cnf、 my-large.cnf、my-huge.cnf四個,選擇跟你的環境相接近的一個複製到/etc目錄,並做適當修改。關於mysql配置文件的詳細信息請參閱筆者的其它文章或是mysql官方文檔

MySQL服務器提供了my.cnf文件的幾個示例,它們可以在目錄下找到,名字分別爲my-small.cnf、my-medium.cnf、my- large.cnf以及my-huge.cnf。文件名字中關於規模的說明描述了該配置文件適用的系統類型。例如,如果運行MySQL服務器的系統內存不多,而且MySQL只是偶爾使用,那麼使用my-small.cnf配置文件最爲理想,這個配置文件告訴mysqld daemon使用最少的系統資源。反之,如果MySQL服務器用於支持一個大規模的在線商場,系統擁有2G的內存,那麼使用mysql-huge.cnf 最爲合適。 

cp ./support-files/my-huge.cnf /etc/my.cnf

初始化授權表
執行下面的命令初始化授權表:
./scripts/mysql_install_db --user=mysql

更改mysql數據目錄屬主和權限

默認數據庫文件保存目錄爲安裝目錄下的var目錄,執行configure命令時可通過--localstatedir參數指定不同的目錄

chown -R mysql.mysql /usr/local/mysql/var
chmod -R 700 /usr/local/mysql/var

設置開機自啓動服務控制腳本
執行下面的命令複製啓動腳本到資源目錄:
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 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明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

如啓動報如下錯誤

[root@localhost mysql]# service mysqld start
Starting MySQL..Manager of pid-file quit without updating file.[FAILED]

解決方法 killall mysqld

將mysql的bin目錄加入PATH環境變量
編輯/etc/profile文件:
vi /etc/profile
在文件最後添加如下兩行:
PATH=$PATH:/usr/local/mysql/bin
export PATH
執行下面的命令使所做的更改生效:
source /etc/profile

二進制包方式安裝
從安裝媒體安裝
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

通過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/Downloads/MySQL-5.0/MySQL-server-community-5.0.45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Downloads/MySQL-5.0/MySQL-client-community-5.0.45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Downloads/MySQL-5.0/MySQL-devel-community-5.0.45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Downloads/MySQL-5.0/MySQL-shared-community-5.0.45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Downloads/MySQL-5.0/MySQL-shared-compat-5.0.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

MySQL的配置

目錄結構

源碼包方式安裝目錄結構

源碼包方式安裝時通常是在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服務啓動腳本

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服務啓動腳本

配置文件
Linux系統下,mysql的配置參數文件爲my.cnf,一般按下面的順序查找此文件:/etc目錄、mysql安裝目錄、mysql數據目錄。配置模板位於源碼樹的support-files目錄,有my-small.cnf、my-medium.cnf、my-large.cnf、my- huge.cnf四個,關於mysql配置文件的詳細信息請參閱筆者的其它文章或是mysql官方文檔
啓動mysqld服務
執行下面的命令啓動mysql:
service mysqld start

設置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

運行mysql安裝目錄下的文件:/scripts/mysql_install_db
命令備忘:scripts/mysql_install_db --user=mysql //這是進入mysql安裝目錄下進行運行的,所以需要輸入路徑"scripts/"
注意:必須在安裝目錄下執行。不能切換到scripts目錄下,然後執行"./mysql_install_db --user=mysql",否則會報如下錯誤:

FATAL ERROR: Could not find ./bin/my_print_defaults

因爲腳本mysql_install_db裏面所使用的是這種形式的相對路徑"./bin/my_print_defaults",所以必須是在"mysql安裝目錄"下,才能找得到所需文件。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章