标签:
注:由于mysql5.5的源码包安装与mysql之前的版本安装方法不同,故写一篇随笔记录。5.5的版本不再是./configure make make install 这里用到了cmake了,cmake是一个跨平台的编译工具。
注意:
mysql-5.5以后的版本不能使用make编译,只能使用cmake工具编译安装。
cmake指定编译选项的方式不同于make 。
"./configure" 与 "cmake . "相似
"./configure --help " 与 "cmake . -LH "或者" ccmake . "相似
一,提前安装mysql依赖的库。
yum install -y make bison cmake gcc-c++ ncurses ncurses-devel
二,下载mysql并解压。
wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.49.tar.gz
tar zxvf mysql-5.5.49.tar.gz
cd mysql-5.5.49.tar.gz
三,创建mysql用户、datadir.
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
四,编译前的参数配置
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
配置参数说明:
DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录
-DINSTALL_DATADIR=/data/mysql //数据库存放目录
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
其它参数配置具体可以参考http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html
五,编译
make
六,安装
make install
七,cd到basedir中去,复制配置文件,并初始化mysql.
cd /usr/local/mysql
chown -R mysql /usr/local/mysql
cp support-files/my-medium.cnf /etc/my.cnf
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
八,拷贝启动脚本并添加到服务列表,开机启动。
cp support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld 指定basedir 和 datadir的目录
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
/etc/init.d/mysqld start
九,添加环境变量
echo "PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh
source /etc/profile
特别说明:
重新编译时,需要清除旧的对象文件和缓存信息。
# make clean
# rm -f CMakeCache.txt
# rm -rf /etc/my.cnf
扩展知识:./configure 与cmake的区别
./configure就是执行你当前目录下一个名叫configure的脚本,由它生成Makefile,有了Makefile之后,一般来说就可以通过make进行编译,make install进行安装
cmake就是一个与make同级别的编译工具,只不过它依靠的不是Makefile作为编译规则,而是根据CMakeLists.txt来编译的。
标签:
原文地址:http://www.cnblogs.com/lin1/p/5645586.html