本次實驗的mysql、os相關資訊如下:
mysql:5.0.96 os:centos 32 bit
最近公司要上新的業務,指明資料庫使用的是mysql5.0版本。如果是使用rpm包安裝的話,那就很簡單了。直接使用yum安裝即可,指令如下:
yum –y install mysql mysql-server

yum方式安裝完畢後,直接啟動mysql資料庫服務即可。如下圖:
這樣基本上就可以了。
但是這樣安裝mysql資料庫,沒有進行定制。比如mysql資料庫的資料檔案存儲位置。rpm形式安裝的資料檔案預設位置為/var/lib/mysql。這個我們可以通過mysql的配置檔案檢視所得,如下圖:
實際的情況是,我們新的業務要求mysql資料庫的資料檔案需要單獨進行存放,這個使用rpm形式就不太容易達到要求。是以打算使用源碼進行編譯安裝,而且自己也沒有對mysql資料庫進行源碼安裝過。剛好趁這次機會學習如何對mysql資料庫進行源碼安裝。
首先,在相應的網站下載下傳mysql的安裝包。為什麼說是相應的網站,而不是mysql的官網。因為現在在官網無法下載下傳到5.0版本的,隻能下載下傳到5.5以上的版本。我現在是在這個網站下載下傳的:http://download.mysql.cn/src/
下載下傳完畢上傳到伺服器上,具體如何上傳你可以使用winscp、ftp。或者也可以使用lrzsz這個軟體。
我現在使用的就是lrzsz這個軟體,如果你的伺服器沒有安裝的話,可以通過:
yum –y install lrzsz
進行安裝,如下圖:
rz 是上傳的指令,sz是下載下傳的指令。
我們現在使用日志指令把mysql的安裝包,上傳到伺服器上,如下圖:
mysql安裝包已經上傳完畢,那麼我們現在進行安裝mysql之前的工作。
安裝mysql編譯所需要的工具包,如下圖:
yum -y install gcc gcc-c++ ncurses-devel
工具包安裝完畢後,我們來建立相關的使用者。第一個使用者ilanni,用來安裝mysql使用。第二個使用者是mysql,用來運作mysql的。如下圖:
把mysql安裝包移動到ilanni使用者的家目錄下,并解壓,如下圖:
以上工作是前提工作,做完後。我們現在進入mysql-5.0.96目錄開始安裝mysql。
首先編譯mysql資料庫,如下圖:
./configure –prefix=/usr/local/mysql 其中/usr/local/mysql為mysql資料庫的安裝位置。
可以看到沒有報錯,那我們開始make,如下圖:
make過程比較慢,我這邊大約10分鐘左右。
make終于完畢了,通過上圖可以沒有報錯。
下面開始make install,如下圖:
make install還是比較快的,可以看到沒有報錯。
mysql已經安裝完畢,下面開始進行相關的配置。
還是在該安裝目錄下,如下圖:
複制support-files目錄下的my-medium.cnf到/etc/下作為mysql的配置檔案:
cp support-files/my-medium.cnf /etc/my.cnf
複制support-files目錄下的mysql.server到/etc/init.d/目錄下作為mysql的啟動檔案
現在我們來啟動下使用/etc/init.d/mysqld啟動mysql 試下,如下圖:
可以看到系統提示我們,沒有執行該腳本的權限。而mysqld腳本的權限,看下圖:
可以很明顯的看到目前該腳本的權限為644,根本沒有執行權限。
現在更改該腳本的權限,如下圖:
ok,該檔案的權限修改完畢後,我們來初始化mysql資料庫。在文章的開頭我就說了,我現在要把mysql的資料檔案存放在/data目錄下。
首先要建立/data目錄,并修改該目錄的所屬使用者及使用者組。如下圖:
修改完畢後,我們還需要修改/usr/local/mysql的所屬使用者及使用者組,如下圖:
以上修改完畢後,我們還需要修改mysql的配置檔案。主要是要在配置檔案中加入目前自己定義資料檔案位置,如下圖:
以上所有的修改進行完畢後,我們在執行mysql安裝目錄scripts下mysql_install_db檔案,如下圖:
./scripts/mysql_install_db –user=mysql 中的—user=mysql一定要有。
我們來檢視mysql初始化的結果,檢視/data目錄,如下圖:
可以看到mysql的預設資料mysql及test都在裡面。
現在我們來啟動mysql看看實際的情況,如下圖:
/etc/init.d/mysqld start
如果要把mysql開機啟動,可以使用chkconfig指令。如下圖:
如果你想在如何目錄下直接mysql指令,需要把/usr/local/mysql/bin路徑加入到全局設定/etc/profile檔案中,如下圖:
ok,到此mysql資料庫就安裝完畢。
如果mysql用戶端連接配接,mysql服務比較慢的話。我們需要在my.cnf檔案中加入skip-name-resolve,如下:
ps:有關本次實驗使用的指令如下,在執行過程中建議盡量按照指令的順序進行操作:
tar -xf mysql-5.0.22.tar.gz
useradd ilanni
useradd -s /sbin/nologin mysql
cd /home/ilanni/mysql-5.0.22
./configure –prefix=/usr/local/mysql
make
make install
cp /home/ilanni/mysql-5.0.96/support-files/my-medium.cnf /etc/my.cnf
cp /home/ilanni/mysql-5.0.96/support-files/mysql.server /etc/init.d/mysqld
chmod -r 755 /etc/init.d/mysqld
chown -r mysql:mysql /usr/local/mysql
mkdir /data
chown -r mysql:mysql /data
/usr/local/mysql/bin/mysql_install_db –basedir=/usr/local/mysql
echo path=$path:/usr/local/mysql/bin/ >>/etc/profile
tail -10 /etc/profile
source /etc/profile