Linux系统使用编译Cmake安装 MySQL
1.安装环境
yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcypt libtool bison
2.安装boost_1_59_0,因为mysql5.7版本必须要boost_1_59_0或者以上版本
先去下载boost_1_59_0.tar.gz,下载链接:https://sourceforge.net/projects/boost/files/boost/1.59.0/
boost_1_59_0
tar -zxvf boost_1_59_0.tar.gz
cd boost_1_59_0
./bootstrap.sh --prefix=/usr/local
./b2 install
安装有点慢,耐心等待安装完成即可。
安装完成,重新加载配置文件,立即生效。
ldconfig
完成上面的操作后,接下来就是解压mysql
tar -zxvf mysql-5.7.17.tar.gz
3.使用cmake编译mysql,下面使用的路径记得要检查是否一致。
先把mysql和boost_1_59_0移动到你想要保存的目录
mv mysql-5.7.17 /usr/local/mysql
mv boost_1_59_0 /usr/local
cd /usr/local/mysql/mysql-5.7.17
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data/mysql/data \
-DMYSQL_USER=mysql \
-DWITH_BOOST=/usr/local/boost_1_59_0 .
解释:
-DCMAKE_INSTALL_PREFIX:安装目录的前缀
-DMYSQL_DATADIR:自定义数据存放目录
-DDOWNLOAD_BOOST=1 使用本地安装的的BOOST
-DWITH_BOOST=/usr/local/mysql/boost_1_59_0 BOOST的安装路径
如果出现以下错误:
这个问题怎么解决?
原因是我没在解压的目录下去运行。
解决方案:
cd mysql解压的目录,要能看到CMakeLists.txt
重新运行
make -j 8
# 注意:make -j 8是指让make最多允许8个编译命令同时执行,主要还得看机子配置
make install
echo $?
# echo $?为0 表示执行成功
复制配置文件
cp -a ./support-files/mysql.server /etc/init.d/mysqld
cp ./support-files/my-default.cnf /usr/local/mysql/my.cnf
设置权限
chmod +x /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
配置开机自启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --list
chkconfig --add mysql
chkconfig mysql on
chkconfig --list mysql
修改my.cnf配置
vim /usr/local/mysql/my.cnf
[mysqld] 添加:
datadir=/usr/local/mysql/data
default-storage-engine=MyISAM
socket =/tmp/mysql.sock
添加用户组和用户
groupadd mysql
useradd -r -g mysql mysql
添加权限
chown -R mysql:mysql /usr/local/mysql/mysql-5.7.17
mkdir /usr/local/mysql/etc
cd /usr/local/mysql/mysql-5.7.17
chown -R mysql .
chgrp -R mysql .
chown -R mysql:mysql /var/lib/mysql
chown -R mysql:mysql /usr/local/mysql
初始化数据库
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
启动:
/usr/local/mysql/support-files/mysql.server start
如果启动不来,配置文件,路径,或者权限问题。请检查!