CentOS编译安装MySQL5.7详细步骤

CentOS编译安装MySQL5.7详细步骤

(图片来源网络,侵删)

前言

MySQL是一款非常流行的关系型数据库管理系统,它广泛应用于各种Web应用程序中。在CentOS系统中,我们可以使用yum命令来安装MySQL,但是如果需要使用某些特定的功能,或者需要自定义一些参数,那么就需要手动编译安装MySQL了。下面我们就来详细介绍在CentOS系统中如何编译安装MySQL5.7。

准备工作

在开始编译安装MySQL之前,我们需要先进行一些准备工作。

1. 确保系统已经安装了必要的依赖库,在CentOS中可以使用以下命令安装:

```

yum install -y gcc gcc-c++ cmake ncurses-devel openssl-devel

2. 下载MySQL源码包,可以从官网上下载最新版的MySQL源码包:

wget -5.7/mysql-5.7.34.tar.gz

编译安装MySQL

1. 解压MySQL源码包:

tar -zxvf mysql-5.7.34.tar.gz

2. 进入源码目录,执行以下命令进行编译:

cd mysql-5.7.34

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DMYSQL_DATADIR=/usr/local/mysql/data

-DWITH_BOOST=boost

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_PARTITION_STORAGE_ENGINE=1

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_FEDERATED_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_SSL=system

-DWITH_ZLIB=system

-DENABLED_LOCAL_INFILE=1

-DENABLE_DTRACE=0

-DDEFAULT_CHARSET=utf8mb4

-DDEFAULT_COLLATION=utf8mb4_general_ci

上述命令中,-DCMAKE_INSTALL_PREFIX参数指定了MySQL的安装路径,-DMYSQL_DATADIR参数指定了MySQL数据存储的路径,-DWITH_XXX_STORAGE_ENGINE参数指定了MySQL支持的存储引擎,-DWITH_SSL和-DWITH_ZLIB参数指定了MySQL需要使用的SSL和ZLIB库,-DENABLED_LOCAL_INFILE参数指定了MySQL是否允许从本地文件中导入数据,-DDEFAULT_CHARSET和-DDEFAULT_COLLATION参数指定了MySQL的默认字符集和默认排序规则。

3. 执行make命令进行编译:

make

4. 执行make install命令进行安装:

make install

5. 创建MySQL配置文件:

cp support-files/my-default.cnf /etc/my.cnf

6. 创建MySQL数据存储目录:

mkdir /usr/local/mysql/data

7. 创建MySQL运行用户和用户组:

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

8. 初始化MySQL:

cd /usr/local/mysql

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

上述命令中,--initialize参数指定了初始化MySQL,--user参数指定了MySQL运行用户,--basedir参数指定了MySQL的安装路径,--datadir参数指定了MySQL数据存储的路径。

9. 启动MySQL:

bin/mysqld_safe --user=mysql &

10. 设置MySQL开机自启动:

cp support-files/mysql.server /etc/init.d/mysql

chmod +x /etc/init.d/mysql

chkconfig --add mysql

chkconfig mysql on

常见问题解决

1. 如果在执行make命令时出现以下错误:

make[2]: *** [sql/CMakeFiles/sql.dir/item_func.cc.o] Error 1

make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2

make: *** [all] Error 2

解决方法:在编译MySQL之前,执行以下命令:

export CXXFLAGS="-std=c++03"

2. 如果在执行make install命令时出现以下错误:

make[2]: *** No rule to make target `/usr/local/mysql/include/mysql.h', needed by `sql/mysqldump.o'. Stop.

make[1]: *** [sql/CMakeFiles/mysqldump.dir/all] Error 2

解决方法:在执行make install命令之前,执行以下命令:

ln -s /usr/local/mysql/include/mysql.h /usr/include/mysql/mysql.h

小结

以上就是在CentOS系统中编译安装MySQL5.7的详细步骤。通过编译安装,我们可以自定义MySQL的参数,并且可以使用某些特定的功能。在安装过程中,如果遇到问题,可以参考常见问题解决部分进行解决。希望本文对大家有所帮助。