CentOS 6.2編譯安裝MySQL 5.5.25
之前虛擬機裡裝的系統都是ubuntu,後來同事說一般的服務器都是安裝的centos,所以又重新倒騰了centos系統。 www.2cto.com
當然,首先得搭建PHP環境。下載的源碼mysql,版本是5.5.25,最新的好像是5.5.4。這裡記住,一定要下載源碼,在mysql官網下載時,會提示你選擇平台,選擇下拉菜單中的最底下一個Source Code。
按照之前ubuntu安裝的步驟安裝後,啟動mysql啟動不起來。錯誤代碼為“ The server quit without updating PID file(/var/lib/mysql/CentOS.pid)”,百度和google都搜索了一些資料,基本一致,對我沒幫助,按照他們說的修改了也不行。於是乎結合張晏的博客,最終成功搞定。
第一步:我們首先安裝依賴庫和開發工具
#依賴庫和開發工具
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
www.2cto.com
#Nginx
yum -y install pcre-devel zlib-devel
#Php
yum -y install gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel freetype-devel
#Mysql
yum -y install bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* mysql-devel
第二步:由於mysql5.5開始,不再使用configure安裝,而是使用cmake。所以需要先安裝cmake
wget http://www.cmake.org/files/v2.8/cmake-2.8.6.tar.gz
tar -zxvf cmake-2.8.6.tar.gz
cd cmake-2.8.6/
./configure
make && make install
第三步:cmake安裝mysql(我已經下載好了mysql源碼文件,放在U盤裡,拷貝到/tmp目錄下)
//進入/tmp目錄下
tar -zxvf mysql-5.5.25.tar.gz
cd mysql-5.5.25
www.2cto.com
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql \
-DMYSQL_DATADIR=/user/local/webserver/mysql/data \
-DSYSCONFDIR=/etc \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DWITH_DEBUG=0 \
-DENABLED_LOCAL_INFILE=1
回車執行,執行完成後繼續執行 make && make install
第四步:設置mysql
#設置Mysql
#在support-files目錄中有五個配置信息文件(這裡很重要,一定要根據自己的內存復制對應的cnf文件,否則mysql始終起不來): www.2cto.com
#my-small.cnf (內存<=64M)
#my-medium.cnf (內存 128M)
#my-large.cnf (內存 512M)
#my-huge.cnf (內存 1G-2G)
#my-innodb-heavy-4G.cnf (內存 4GB)
cd /usr/local/webserver/mysql
cp ./support-files/my-huge.cnf /etc/my.cnf
vi /etc/my.cnf
#在 [mysqld] 段增加
datadir = /data/mysql
wait-timeout = 30
max_connections = 512
default-storage-engine = MyISAM
#在 [mysqld] 段修改
max_allowed_packet = 16M
第五步:添加mysql用戶和用戶組,生成新的mysql授權表
//添加mysql運行的用戶和用戶組
groupadd mysql
useradd -g mysql mysql -s /bin/false -d /home/mysql //沒有shell,不可本機登陸(安全起見) www.2cto.com
cd /usr/local/webserver/mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
//生成新的mysql授權表
//進入mysql安裝目錄下的腳本目錄
cd /usr/local/webserver/mysql/scripts
//利用mysql_install_db腳本生成新的mysql授權表
./mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/usr/local/webserver/mysql/data --user=mysql
//mysql server在系統中的服務項設置
//復制服務文件並修改
cd /usr/local/webserver/mysql/support-files
cp mysql.server mysqld
//修改mysqld
basedir=/usr/local/webserver/mysql
datadir=/usr/local/webserver/mysql/data
www.2cto.com
mv mysqld /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
//設置軟連接使mysql, mysqldump, mysqladmin這三個bin命令能在shell中直接運行
sudo ln -s /usr/local/webserver/mysql/bin/mysql /usr/bin
sudo ln -s /usr/local/webserver/mysql/bin/mysqldump /usr/bin
sudo ln -s /usr/local/webserver/mysql/bin/mysqladmin /usr/bin
rm -rf /etc/mysql/my.cnf 因為已經把此文件復制到/etc/my.cnf 如果不刪除的話,mysql啟動不起來。
第六步:啟動mysql,設置mysql用戶名和密碼
/etc/init.d/mysqld start
//設置root密碼
mysqladmin -u root password "admin"
www.2cto.com
//mysql數據庫中文亂碼解決
vi /etc/my.cnf
//然後在[mysqld]配置選項下添加
character-set-server=utf8
//然後進入mysql
cd /usr/local/webserver/mysql/bin
mysql -u root -p
提示輸入密碼
mysql> show variables like '%character%';
//結果:character_set_database,character_set_server兩項都變為utf8了
作者 HQER