从mysql-5.5开始,mysql源码安装开始使用cmake。编译安装和以前的版本有些不同。如果要使用源码编译安装mysql5.5.x,首先需要安装cmake。
cmake的编译和安装
从 下载最新版本的cmake。
yum install bison
wget
tar zxvf cmake-2.8.5.tar.gz
cd cmake-2.8.5
./bootstrap
make
make install
mysql-5.5.x的编译安装
从 http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.14.tar.gz/from/http://mysql.he.net/ 下载mysql源码。
创建mysql用户和组
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
编译安装
tar zxvf mysql-5.5.14.tar.gz
cd mysql-5.5.14
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DEXTRA_CHARSETS=all \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0
make && make install
如果需要更改配置:
make clean
rm -f CMakeCache.txt
复制配置文件
cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
设置权限
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
配置开机自动启动
cp support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
/sbin/chkconfig --add mysql
/sbin/chkconfig mysql on
修改my.cnf配置
[mysqld]添加
datadir=/usr/local/mysql/data
default-storage-engine=MyISAM
loose-skip-innodb
thread_concurrency = 2
thread_concurrency 为 CPU 数×2。
安装默认数据表
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--user=mysql
启动mysql
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &
最后的&表示在后台运行
或者使用 service mysql start 启动。
注:mysql启动错误记录中出现 InnoDB: Error: pthread_create returned 12 错误解决办法:
1.如果只使用MyISAM引擎,不需要使用InnoDB,则尝试在配置文件my.cnf中添加 default-storage-engine=MyISAM 和 loose-skip-innodb,禁用InnoDB,并且删除skip-bdb。和旧版本配置中不同的是,旧版本配置中的 skip-locking 改为 skip-external-locking,skip-innodb 改为 loose-skip-innodb,skip-bdb 在新版本中已经删除。
2.如果要使用InnoDB引擎,则删除loose-skip-innodb,default-storage-engine=MyISAM,并取消my.cnf中关于InnoDB相关设置的注释,例如:
# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
使用以下命令测试mysql
/usr/local/mysql/bin/mysqladmin version
/usr/local/mysql/bin/mysqladmin variables
参考资料:
有关CMake的参数选项的说明,请查阅: