1.清理环境
[root@lnmp src]# rpm -ql | grep mari*
如果有的话就卸载
MySQL所需依赖如下
cmake
make(推荐3.75以上)
编译器(GCC5.3+或Clang4.0+或XCode9+或Developer Studio12.6+或Visual Studio2017)
SSL库(默认使用系统的OpenSSL)
Boost C++库,需要用来构建但不需要使用,无需安装,源码即可
ncurses库
bison2.1+
git
yum -y install gcc gcc-c++ wget make cmake ncurses-devel bison
2.安装编译MySQL的工具cmake
解压源码包
tar -zxvf cmake-3.17.4.tar.gz
进入解压的目录
./configure --prefix=/usr/local/cmake
Error when bootstrapping CMake:
Cannot find a C++ compiler that supports both C++11 and the specified C++ flags.
Please specify one using environment variable CXX.
The C++ flags are "".
They can be changed using the environment variable CXXFLAGS.
See cmake_bootstrap.log for compilers attempted.
作者这里遇到问题,是因为没有gcc等等依赖,安装一下就好了
yum -y install gcc-c++ gcc
在编译过程中又出现如下错误,并且给了解决方案 在编译的时候加上如下参数就好了
问题千千万,大部分问题都可以在他的报错找到解决办法
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR)
CMake Error at Utilities/cmcurl/CMakeLists.txt:454 (message):
Could not find OpenSSL. Install an OpenSSL development package or
configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.
那么如何设置这个变量呢,作者根据cmake的语法,就在顶层CMakeLists.txt文件的开头加入
set(CMAKE_USE_OPENSSL OFF)这个就是设置变量的语法,然后再尝试执行编译命令
CMake has bootstrapped. Now run gmake.果然成功了
./configure成功之后
make
make install
由于俺是个初学者喜欢钻研,采用编译方式
您可以试试直接yum安装0.0
3.进入MySQL源码目录
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
-- Configuring done
-- Generating done
预编译完成
make
安装之前不要忘了先创建MySQL用户和用户组
make install
安装完成后将命令查找路径加入MySQL的bin目录,之后将所有MySQL的文件,更改为MySQL用户组和用户
groupadd mysql
useradd -g mysql mysql
修改/usr/local/mysql权限
chown -R mysql:mysql /usr/local/mysql
初始化配置
进入安装路径, 执行初始化配置脚本,创建系统自带的数据库和表:
cd /usr/local/mysql
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
如果安装失败,若出现FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db:
Data::Dumper
解决如下:
yum install 'perl(Data::Dumper)'
MySQL编译完成,注意:在CentOS 6.4及以后版本操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。
一切完成之后,将mysql设置开机启动
[root@lnmp mysql]# cp support-files/mysql.server /etc/init.d/mysql
[root@lnmp mysql]# chkconfig mysql on
[root@lnmp mysql]# service mysql start
搞定