RHEL Server 6.3下MySQL5.5.25a源碼安裝
OS:RHEL Server 6.3
MySQL:mysql-5.5.25a.tar.gz
相關(guān)依賴包:
ncurses-5.9.tar.gz
bison-2.5.tar.gz
安裝MySQL
一、安裝依賴包
(1)ncurses
[root@test ~]# cd /data1/lnmp/
[root@test lnmp]# tar -xzf ncurses-5.9.tar.gz
[root@test lnmp]# cd ncurses-5.9
[root@test ncurses-5.9]# ./configure
[root@test ncurses-5.9]# make && make install
(2)bison
[root@test lnmp]# tar -xzf bison-2.5.tar.gz
[root@test lnmp]# cd bison-2.5
[root@test bison-2.5]# ./configure
[root@test bison-2.5]# make && make install
二、安裝用于編譯 MySQL 的 cmake 工具
[root@test lnmp]# tar -xzf cmake-2.8.8.tar.gz
[root@test lnmp]# cd cmake-2.8.8
[root@test cmake-2.8.8]#./configure
[root@test cmake-2.8.8]#make && make install
三、源碼安裝 MySQL
(1)建立運(yùn)行MySQL的用戶和組
[root@test ~]# groupadd mysql
[root@test ~]# useradd -M -g mysql -s /sbin/nologin mysql
(2)建立相關(guān)目錄
[root@test ~]# mkdir /usr/local/mysql
[root@test ~]# mkdir /var/lock/mysql
[root@test ~]# mkdir /var/run/mysql
[root@test ~]# mkdir /var/log/mysql
[root@test ~]# mkdir /data1/mysql_db
------------------------------------------------------------------------------------------
注意:
之所以要?jiǎng)?chuàng)建/var/lock/mysql和/var/run/mysql目錄,這是因?yàn)閙ysql server是用mysql這個(gè)用戶啟動(dòng)的。而/var/lock/和/var/run/這兩個(gè)目錄只有root才有寫的權(quán)限,所以mysql這個(gè)用戶不能在其中建立mysql.lock和mysql.pid文件。所以要在/var/lock/和/var/run/這兩個(gè)目錄分別再建立一個(gè)目錄,例如:mysql。并把這個(gè)目錄所有者和群組改為mysql這具用戶和群組。此種做法也是為了便于管理,例如把日志存放在/var/log/mysql/,日志只會(huì)在這一個(gè)目錄下輪轉(zhuǎn),,便于管理;#chown mysql:mysql /var/run/mysql/ /var/lock/mysql/ /var/log/mysql/
錯(cuò)誤:
如果數(shù)據(jù)庫 /data1/mysql_db/ 目錄權(quán)限設(shè)置不正確,在啟動(dòng) mysql 時(shí)可能會(huì)出現(xiàn)下面的錯(cuò)誤。
[root@test ~]# tail /var/log/mysql.log
120713 17:15:21 mysqld_safe Starting mysqld daemon with databases from /data1/mysql_db
/usr/local/mysql/bin/mysqld: File './mysql-bin.index' not found (Errcode: 13)
120713 17:15:21 [ERROR] Aborting
120713 17:15:21 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
120713 17:15:21 mysqld_safe mysqld from pid file /var/run/mysql/mysql.pid ended
[root@test ~]#
解決方法:
這里是用mysql這個(gè)用戶啟動(dòng)數(shù)據(jù)庫的。所以要把建立的數(shù)據(jù)庫目錄 /data1/mysql_db/ 的所有者和群組更改為mysql。
[root@test ~]#chown -R mysql:mysql /data1/mysql_db/
這一步最好在初始化完數(shù)據(jù)庫時(shí)再做一下。初始化完成后,可以先檢查這個(gè)目錄下的新建立的文件和目錄的權(quán)限是否正確,如果正確則不用再做這一步了。
為了安全可以指定用戶 mysql 初始化數(shù)據(jù)庫:
#./mysql_install_db --user=mysql \
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql/ \
--datadir=/data1/mysql_db
----------------------------------------------------------------------------------------(3)源碼安裝 MySQL
[root@test ~]# cd /data1/lnmp/
[root@test lnmp]# tar -xzf mysql-5.5.25a.tar.gz
[root@test lnmp]# cd mysql-5.5.25a
[root@test mysql-5.5.25a]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_DATADIR=/data1/mysql_db \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DWITH_READLINE=ON
-DWITH_SSL=system \
-DWITH_DEBUG=0 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DINSTALL_LAYOUT=STANDALONE \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=1 \
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_EMBEDDED_SERVER=1 \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql
[root@test mysql-5.5.25a]#make
[root@test mysql-5.5.25a]#make install
------------------------------------------------------------------------------------------
[root@test mysql-5.5.25a]# cmake . LH
注意:
在編譯的時(shí)候有可能會(huì)出現(xiàn)以下錯(cuò)誤。
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on RedHat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:127 (FIND_CURSES)
cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:268 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
錯(cuò)誤原因:
這是因?yàn)闆]有安裝curses library的原因,如果是
解決方法:
[root@test mysql-5.5.25a]# yum install ncurses-devel #或源碼安裝
[root@test mysql-5.5.25a]# rm -rf CMakeCache.txt #刪除CMakeCache.txt文件
[root@test mysql-5.5.25a]# cmake . #再重新編譯,即可!
------------------------------------------------------------------------------------------
(4)
[root@test mysql-5.5.25a]# cp support-files/my-huge.cnf /etc/my.cnf
[root@test mysql-5.5.25a]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@test mysql-5.5.25a]# chmod 755 /etc/rc.d/init.d/mysqld
[root@test mysql-5.5.25a]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /ect/profile
[root@test mysql-5.5.25a]# source /etc/profile
------------------------------------------------------------------------------------------
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com