本文将详细介绍如何在CentOS7上安装MySQL5.7.11,包括环境准备、依赖安装、源码编译、配置文件修改、启动服务及解决常见问题等步骤
无论你是初学者还是有一定经验的系统管理员,都能从中受益
一、环境准备 在开始安装之前,请确保你的CentOS7系统已经安装了所有基本的软件,并且有足够的硬盘空间
MySQL5.7.11的安装大约需要2G的空间
你可以使用`df -h`命令来检查硬盘空间
二、安装MySQL前的准备工作 1.安装依赖项 MySQL的安装依赖于一系列的开发工具和库
你可以使用`yum`命令来安装这些依赖项
打开终端,并输入以下命令: yum install -y gcc-c++ make cmake bison bison-devel ncurses-devel libaio-devel perl perl-Data-Dumper 这些依赖项包括C++编译器、make工具、cmake构建系统、bison和bison-devel(用于语法分析)、ncurses开发库、libaio开发库以及Perl和其Data::Dumper模块
2.创建MySQL用户和用户组 在安装MySQL之前,你需要创建一个专门用于运行MySQL服务的用户和用户组
这可以通过`groupadd`和`useradd`命令来完成: groupadd mysql useradd -r -g mysql mysql 这里,`-r`选项表示创建一个系统用户,`-g mysql`指定用户组为mysql
3.下载并解压Boost库 MySQL5.7.11需要Boost库来支持某些功能
你可以从Boost的官方网站下载Boost 1.59.0版本的源码包(boost_1_59_0.tar.gz),或者使用以下命令直接下载: wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz 下载完成后,将源码包解压到指定的目录,例如`/usr/local/boost`: cp boost_1_59_0.tar.gz /usr/local/boost cd /usr/local/boost tar xzf boost_1_59_0.tar.gz 4.下载MySQL源码包 接下来,你需要从MySQL的官方网站下载MySQL 5.7.11的源码包(mysql-5.7.11.tar.gz)
下载完成后,将源码包解压到指定的目录,例如`/usr/local/mysql`: cp mysql-5.7.11.tar.gz /usr/local/mysql cd /usr/local/mysql tar xzf mysql-5.7.11.tar.gz 三、编译和安装MySQL 1.运行cmake配置 在进入MySQL源码目录后,你需要运行cmake命令来配置安装参数
这些参数包括安装目录、数据目录、Boost库路径等
以下是一个示例cmake命令:
cd mysql-5.7.11
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/usr/local/mysql/data
-DDOWNLOAD_BOOST=1
-DWITH_BOOST=/usr/local/boost/boost_1_59_0
-DSYSCONFDIR=/etc
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_MYISAM_STORAGE_ENGINE=1
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock
-DMYSQL_TCP_PORT=3306
-DENABLED_LOCAL_INFILE=1
-DENABLE_DTRACE=0
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EMBEDDED_SERVER=1
注意:如果你的系统中已经安装了Boost库,你可以将`-DDOWNLOAD_BOOST=1`改为`-DWITH_BOOST= 如果没有安装Boost库,你需要先安装它,或者使用`-DDOWNLOAD_BOOST=1`让cmake自动下载并解压Boost库
2.编译和安装
配置完成后,你可以开始编译MySQL源码了 这可能需要一些时间,具体取决于你的系统性能 编译完成后,使用`makeinstall`命令来安装MySQL:
make
make install
四、配置MySQL
1.初始化数据库
在安装完成后,你需要初始化MySQL数据库 这可以通过运行`mysqld --initialize-insecure`命令来完成 注意,这里使用了`--initialize-insecure`选项,这意味着生成的root用户密码为空 在生产环境中,你应该使用`--initialize`选项来生成一个临时密码
cd /usr/local/mysql
bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化完成后,你可以运行`bin/mysql_ssl_rsa_setup`脚本来生成SSL和RSA证书和密钥
2.配置MySQL服务
接下来,你需要配置MySQL服务 首先,复制MySQL的配置文件到`/etc`目录:
cp support-files/my-default.cnf /etc/my.cnf
然后,修改`/etc/my.cnf`文件,根据你的需求调整配置参数 例如,你可以设置`basedir`、`datadir`、`socket`等参数
3.设置目录权限
为了确保MySQL服务能够正常运行,你需要设置一些目录的权限 首先,将MySQL安装目录和数据目录的所有者更改为mysql用户:
chown -R mysql:mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/data
然后,将MySQL套接字文件的权限更改为mysql用户和mysql组:
chmod 660 /usr/local/mysql/mysql.sock
chown mysql:mysql /usr/local/mysql/mysql.sock
4.添加MySQL服务到系统启动项
为了方便管理MySQL服务,你可以将其添加到系统的启动项中 首先,复制MySQL的服务脚本到`/etc/init.d`目录:
cp support-files/mysql.server /etc/init.d/mysql
然后,使用`chkconfig`命令将MySQL服务设置为开机启动:
chkconfig mysql on
5.启动MySQL服务
现在,你可以启动MySQL服务了 使用以下命令来启动服务:
service mysql start
如果启动成功,你可以使用`mysql -uroot`命令来登录MySQL数据库 由于你在初始化时使用了`--initialize-insecure`选项,所以root用户的密码为空 登录后,你应该立即设置一个新密码来提高安全性:
ALTER USER root@localhost IDENTIFIED BY new_password;
FLUSH PRIVILEGES;
五、常见问题及解决
1.无法启动MySQL服务
如果你在启动MySQL服务时遇到问题,可以检查MySQL的错误日志来获取更多信息 错误日志通常位于`/usr