CentOS7安装MySQL8.0

44 阅读3分钟

本文假设服务器是全新的,未曾安装mysql或其相关分支,并且使用root用户安装

准备

  1. 查看linux系统版本
cat /etc/system-release
# 或者
cat /etc/redhat-release
  1. 检查是否已安装libaio
# 查询是否存在libaio
yum search libaio
# 不存在则安装
yum install libaio
  1. 检查是否已安装mysql或相关分支

如下查询和卸载是针对rpm的,如果是二进制安装形式,同样需要先停止服务,然后删除相关文件。

# 查询
rpm -qa | grep mysql
rpm -qa | grep mariadb

# 存在:1.停止
systemctl stop mysql
# 或者
kill -9 mysql_pid

# 存在:2.卸载
# 如:rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
rpm -e --nodeps mysql*(自行补全--"*"无效,需要具体的)
  1. 检查内存和存储
# 查看内存,建议大于2g
free -g
# 查看存储(留意挂载目录)
df -h

下载

  1. 查看glibc版本和CPU架构

选择安装包时需要

# 查看glibc版本
ldd --version
# 查看CPU架构
uname -m
  1. 选择合适的版本并下载

image.png

image.png

  1. 安装包验证(可选)

如果害怕安装包被非法篡改,可以通过MD5校验。

# 这里利用linux服务器上的md5sum命令验证。输出的值应和下图中的值一致。
md5sum mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz

这个图就是上一步骤中第一张图的一部分 image.png

安装

这里我打算安装到/data/mysql目录下,如下所有操作都是假设安装到/data/mysql目录下,你可以自定义。

  1. 新增/etc/my.cnf文件
vi /etc/my.cnf

i增加如下内容,然后按Esc->:wq保存并退出。

my.cnf中指定了basedirdatadir,并且都以/data/mysql开始,所以我们需要解压安装包到/data目录下,并重命名文件夹为mysql

[mysql]
default-character-set=utf8mb4

[mysqld]
basedir=/data/mysql
datadir=/data/mysql/data
character_set_server=utf8mb4
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  1. 解压到指定目录

解压到/data目录并重命名为mysql

tar -xvf mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz -C /data
cd /data
mv mysql-8.0.36-linux-glibc2.17-x86_64 mysql

image.png

此时可以看到解压出来的文件所属的用户及用户组是一些数值,这是有问题的,需要重新授权一下

# 将/data/mysql及其子目录授权给root用户组的root用户
chown -R root:root /data/mysql

image.png

  1. 创建mysql用户组和mysql用户
# 查看是否存在mysql用户组
more /etc/group | grep mysql
# 查看mysql用户属于哪个组
groups mysql
# 查看当前活跃的用户列表
w

# 不存在则创建
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
  1. 创建mysql-files并授权
cd /data/mysql
mkdir mysql-files
# 注意不要码成mysql-files/
chown mysql:mysql mysql-files
chmod 750 mysql-files

启动

  1. 初始化
cd /data/mysql
# 会生成一个临时密码,需要记住,后续修改密码时需要使用
bin/mysqld --initialize --user=mysql

bin/mysql_ssl_rsa_setup
# 后台启动
bin/mysqld_safe --user=mysql &
  1. 修改密码、新增用户
# 输入临时密码(建议复制粘贴,不容易出错)
bin/mysql -uroot -p
# 修改密码
alter user 'root'@'localhost' identified by '123456';

# 创建远程登录账号并授权
create user 'root'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;

# 刷新并退出
flush privileges;
quit;
  1. 添加命令到环境中
vi /etc/profile

输入如下内容

# 注意:在文件内容末尾添加
export PATH=$PATH:/data/mysql/bin

使配置生效

source /etc/profile

验证:任意目录下可以成功执行mysql --version

  1. 开机自启动
cd /data/mysql
# 注册服务
cp support-files/mysql.server /etc/init.d/mysql.server
# 设置开机自启动
systemctl enable mysql.server

验证开机自启动

# 重启
reboot
# 重启后执行如下命令
systemctl status mysql

image.png