一, 安装环境
1,Linux 操作系统版本: CentOS 7.5
2,MySQL 版本: 5.7.22(社区版)
3,MySQL 安装包: mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
二, 安装步骤
1, 检查系统中是否安装了其他版本的 MySQL(root 用户)
首先检查系统中是否安装了其他版本的 MySQL, 使用以下命令进行检查:
- yum list installed | grep mysql
- yum list installed | grep mariadb
MariaDB 数据库是 MySQL 数据库的一个分支, 一般 CentOS 7 系统中会默认安装该数据库, 将其删除:
yum remove mariadb-libs.x86_64
并且删除 / etc / 目录下的 my.cnf 文件:
rm -r /etc/my.cnf
2, 安装依赖包 (root 用户)
在 Linux 环境下安装 MySQL 需要先安装 libaio 依赖包, 如果没有安装该依赖包会导致数据目录初始化和服务启动失败.
先检查系统中是否已经安装了 libaio 依赖包:
yum list installed | grep libaio
如果没有安装该依赖包, 则进行安装:
yum install libaio
对于 MySQL 5.7.19 及以上版本还需要安装 libnuma 依赖包, 使用以下命令检查系统中是否已经安装该依赖包:
yum list installed | grep numactl
如没有安装, 可使用以下命令进行安装:
yum install numactl
3, 创建 mysql 用户组和 mysql 用户 (root 用户)
初始化 MySQL 以及启动 MySQL 服务时需要指定用户, 此处使用 mysql 用户 (也可使用其他用户和组).
先创建 mysql 用户组:
groupadd mysql
再创建 mysql 用户, 并指定该用户的所属组为 mysql 用户组:
useradd -g mysql mysql
最后为 mysql 用户设置登录密码:
passwd mysql
4, 解压缩 MySQL 安装包 (mysql 用户)
将 MySQL 安装包拷贝至安装目录下 (这里为 / app):
cp mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz /app/
解压缩:
tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
备注:
以上两个步骤执行成功的前提是 MySQL 安装包的属主为 mysql 用户, 并且 mysql 用户对 / app / 目录有操作权限.
可使用以下命令将 MySQL 安装的属主设置为 mysql 用户 (root 用户操作):
chown mysql:mysql mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
使用以下命令对 / app / 目录单独为 mysql 用户赋予操作权限 (root 用户操作):
setfacl -m u:mysql:rwx /app/
5, 重命名 (mysql 用户)
将解压后的目录重命名为 mysql:
mv mysql-5.7.22-linux-glibc2.12-x86_64/ mysql
6, 创建数据目录 (mysql 用户)
MySQL 5.7 版本没有自带 data 目录, 需要自行创建, 进入 mysql 目录下创建 data 目录:
mkdir data
7, 创建 my.cnf 配置文件 (mysql 用户)
MySQL 从 5.7.18 版本开始不再自带 my.cnf, 可自行创建该配置文件. 在 mysql 目录下创建 my.cnf 文件:
touch my.cnf
编辑 my.cnf 文件:
vi my.cnf
在该文件中输入以下内容:
- [mysqld]
- basedir=/app/mysql/
- datadir=/app/mysql/data/
- port=3307
- user=mysql
- character-set-server=utf8
- collation-server=utf8_general_ci
其中, basedir 表示 MySQL 根目录; datadir 表示数据存放目录; port 为端口号, MySQL 默认的端口号为 3306, 为了安全起见, 一般不使用默认端口号; user 指定启动 MySQL 服务的用户; character-set-server 表示使用的字符集; collation-server 表示该字符集使用的排序规则.
备注:
MySQL 初始化时默认的根目录为 / usr/local/mysql/, 所以如果不在初始化时指定根目录和数据目录, 则需要将 / app/mysql / 链接到 / usr/local/mysql / 下. 进入 / usr/local / 目录下:
cd /usr/local/
创建软链接映射到 / app/mysql / 目录:
ln -s /app/mysql/ mysql
这里不采用这种方式, 而是采用配置文件方式指定 MySQL 根目录和数据目录.
8, 初始化 MySQL(mysql 用户)
进入到 bin 目录下:
cd /app/mysql/bin/
初始化 MySQL:
./mysqld --defaults-file=/app/mysql/my.cnf -initialize
此时, MySQL 会随机生成一个 root 用户的密码, 需要将该密码记住:
9, 生成 ssl 连接密钥文件 (mysql 用户)
使用以下命令生成加密连接的密钥文件:
./mysql_ssl_rsa_setup --defaults-file=/app/mysql/my.cnf
执行结果如下:
10, 启动 MySQL 服务 (mysql 用户)
最后启动 MySQL 服务:
./mysqld_safe --defaults-file=/app/mysql/my.cnf &
三, 修改 root 用户密码
登录 MySQL, 密码为上文中随机生成的密码:
/app/mysql/bin/mysql -u root -p -P 3307
修改 root 用户的登录密码, 改为 "root123":
set password for root@localhost = password('root123');
来源: http://www.linuxidc.com/Linux/2018-08/153468.htm