Linux下源代码编译安装MySQL 5.5.14完整教程
以下安装在CentOS5.6、Yellow Dog Linux release 6.2 (Pyxis)通过测试。
MySQL 最新的版本5.5.14需要cmake编译安装
1 mysql 5.5.14编译安装
安装所需要系统库相关库文件
yum install -y gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*
#yum install -y cmake
创建mysql安装目录和数据存放目录
mkdir -p /usr/local/mysql/
mkdir -p /opt/data/mysql/
创建用户和用户组与赋予数据存放目录权限
groupadd -g 502 mysql
useradd -u 502 -g mysql mysql
chown mysql.mysql -R /opt/data/mysql/
安装cmake
(mysql5.5以后是通过cmake来编译的)
下载解压cmake-2.8.5.tar.gz
wget http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz
tar zxf cmake-2.8.5.tar.gz -C /usr/local/src
cd /usr/local/src/cmake-2.8.5
./configure
make -j6 && make install
安装mysql 5.5.14
wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.14.tar.gz
tar zxf mysql-5.5.14.tar.gz -C /usr/local/src
cd /usr/local/src/mysql-5.5.14
编译mysql-5.5.14
CFLAGS="-O3" CXX=gcc
CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti"
/usr/local/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/opt/data/mysql \
-DMYSQL_TCP_PORT=3306
#-DWITH_MEMORY_STORAGE_ENGINE=1 \
#-DMYSQL_USER=mysql \
-DCMAKE_INSTALL_PREFIX=/home/mysql/mysql -DEXTRA_CHARSETS=all
CMake Warning:
Manually-specified variables were not used by the project:
MYSQL_USER
WITH_MEMORY_STORAGE_ENGINE
nohup make -j6 && make install
复制配置文件
mv /etc/my.cnf /etc/my.cnf-`date +%F`
mkdir -p /usr/local/mysql/etc
cp support-files/my-medium.cnf /usr/local/mysql/etc/my.cnf
cd /usr/local/mysql/
mkdir log run tmp data
chgrp -R mysql.mysql *
cd /opt/data/mysql/
chown mysql.mysql /opt/data/mysql/
vim etc/my.cnf
innodb_log_files_in_group=2
innodb_data_home_dir = /opt/data/mysql/
innodb_data_file_path = ibdata1:2000M;ibdata2:2000M;ibdata3:20M:autoextend
innodb_log_group_home_dir = /opt/data/mysql/
# 4G RAM
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit=0
innodb_thread_concurrency=8
innodb_flush_method=O_DIRECT
# perform
tmp_table_size = 512M
max_heap_table_size=128M