Linux Mysql服務器使用源碼編譯安裝
特別值得一提的是Linux Mysql有很多值得學習的地方,這里我們主要介紹Linux Mysql,包括介紹Linux Mysql安裝等方面。Fedora 10下安裝Linux Mysql+Apache+Php(2009-02-19 13:36:46)標簽:it 分類:技術進程首先我用的各軟件版本分別是:MySQL:5.1.30Apache:2.2.3Php:5.2.8
安裝之前,如果安裝過其他版本的Linux Mysql、Apache和Php,要先卸載。使用rpm包安裝的用刪除rpm包語句:[rpm -e 包名],查詢包名用語句:[rpm -qa | grep 包名]。有依賴關系的包也要一次刪除,這樣才能成功的刪除這些rpm包。
1.本次安裝使用的都是源碼編譯安裝,將Linux Mysql-5.1.30.tar.gz復制到/usr/local/src下,然后解壓安裝,具體步驟如下:
- #cd /usr/local/src
- #tar -zxvf mysql-5.1.30.tar.gz
- #cd mysql-5.1.30
- #groupadd -r mysql //創(chuàng)建mysql用戶組
- #useradd -m -r -g mysql -d /var/lib/mysql -s /bin/bash \
- >-c "MySQL Server" mysql
- #./configure --prefix=/usr/local/mysql \ //指定mysql安裝目錄
- >--sysconfdir=/etc \ //指定mysql配置文件存放目錄
- >--localstatedir=/var/lib/mysql \//指定mysql數據庫存放目錄
- >--enable-local-infile \ //激活load data local infile語句,使mysql支持使用該語句
- #make //編譯(需較長時間)
- #make install //安裝
- #make clean
- #make distclean
2.Linux Mysql初始化數據庫
- #cd /usr/local/mysql
- #/bin/mysql_install_db//初始化系統(tǒng)數據庫
- #ls /var/lib/mysql //查看存放數據庫中的目錄內容
3Linux Mysql.修改數據庫目錄所有者
- #chown -R mysql:mysql /var/lib/mysql
4.復制Linux Mysql配置文件到/etc目錄中,并更名為my.cnf。操作命令為:
- #cp /usr/local/mysql/share/mysql/my-large.cnf /etc/my.cnf //一般正常安裝之后已經有該文件,可以不用拷貝
5.復制生成Linux Mysql服務器的自動與停止腳本
- #cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysql
6.將Linux Mysql服務添加到服務器管理中,并設置自啟動狀態(tài):
- #chkconfig --list | grep mysql //查詢當前是否有mysql服務
- #chkconfig --add mysql //添加mysql服務到服務器管理中
- #chkconfig --list | grep mysql //查詢此時mysql服務器的啟動狀態(tài)
- #chkconfig --level 35 mysql on //設置在3、5運行級別也自啟動
7.啟動Linux Mysql服務器
- #service mysql start 或 /etc/rc.d/init.d/mysql start
8.測試Linux Mysql服務器
- #/usr/local/mysql/bin/mysqladmin version測試服務器是否已啟動
- #/usr/local/mysql/bin/mysqladmin pin(出現:)mysql is alive
9.Linux Mysql設置root賬戶密碼
#/usr/local/mysql/bin/mysqladmin -u root -h 主機名 -p password '新密碼'由于在編譯PHP源碼時,會使用到部分MySQL的庫文件和頭文件,若服務器還需提供PHP動態(tài)網頁服務,會導致找不到相應的文件,解決辦法是為目錄創(chuàng)建一個符號連接,其實現的操作命令如下:
#ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
#ln -s /usr/local/mysql/include/mysql /usr/include/mysql
注:若正常安裝后mysql命令不能使用,解決辦法:在.bashrc文件中添加(alias mysql='安裝目錄/bin/mysql')(eg:alias mysql='/usr/local/mysql/bin/mysql')為bin文件夾下的mysql命令區(qū)一個別名或者添加環(huán)境變量,在終端輸入(export mysql="/usr/local/mysql/bin")或在/etc/profile文件中添加條目(export PATH=$PATH:/usr/local/mysql/bin)我本人安裝完畢,使用service mysql start啟動mysql時,出現Mysql服務啟動失敗信息如下:
Starting MySQL.Manager of pid-file quit without updating fi[Failed]解決辦法:只要將/etc/my.cnf里面的 skip federated注釋掉即可。因機器和版本的種種差異,可能每個人都會出現一些問題,這些問題大家只好去Google上查了。這樣,MySQL基本上就安裝完畢了,接下來我們來安裝和配置Apache-2.2.3。
安裝Apache-2.2.3
- #cd /usr/local/src
- #tar -zxvf httpd-2.2.3.tar.gz
- #cd httpd-2.2.3
- #./configure --prefix=/usr/local/apache \
- >--enable-so \
- >--with-mpm=prefork \
- >--enable-modules="setenvif rewrite deflate vhost_alias"
- #make
- #make install
- #usr/local/apache/bin/apachectl start設置apache自啟動:
- #echo "/usr/local/apache/bin/apachectl start">> /etc/rc.d/rc.local在/etc/rc.d/rc.local中添加
- #echo "/usr/local/apache/bin/apachectl start" /usr/local/apache/bin/apachectl start
***來安裝PHP-5.2.8
- #tar -zxvf php-5.2.8.tar.gz
- #cd php-5.2.8
- #./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql \
- >--with-apxs2=/usr/local/apache/bin/apxs
- #make
- #make install
- #make clean
- #make distclean
Apache中加載php模塊:
#cp php.ini-dist /usr/local/lib/php.ini
#vim httpd.conf
添加如下內容:
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
解決Cannot load /usr/local/apache/modules/libphp5.so的方法今天安裝httpd-2.2.3 和php-5.2.8,一切順利,***一步重新啟動apache報如下錯誤:(真是個好編劇,總是***發(fā)生異常)httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
解決辦法:原因是Linux有一個SELinux保護模式引起的。
1關閉SELINUX的方法:
vim /etc/selinux/config 將SELINUX=enforcing 改成SELINUX=disabled 需要重啟
2不關閉SELINUX的方法:
# setenforce 0
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so
# service httpd restart
# setenforce 1
【編輯推薦】