CentOS 8 安装 MySQL 8.0-程序旅途

前面写过 CentOS 7 安装MySQL 7 的教程,最近新的服务器都使用了 CentOS 8,数据库也升级到 MySQL 8.0,安装教程也升级一下。

DNF 是 CentOS 8 的默认包管理器,是YUM的下一代版本。本篇安装教程使用 DNF 包管理器进行安装。

安装 MySQL 8.0

执行下面的命令进行安装

sudo dnf install @mysql

安装成功

CentOS 8 安装 MySQL 8.0-程序旅途

配置表大小写不敏感

在首次启动之前要配置表大小写不敏感,这是和 MySQL 7 不一样的地方。

mysql的配置文件是 /etc/my.cnf,它 include 了 /etc/my.cnf.d 目录下的配置,所以在 /etc/my.cnf.d/mysql-server.cnf 配置文件里加上下面的配置

lower_case_table_names=1

CentOS 8 安装 MySQL 8.0-程序旅途

启动MySQL

使用下面的命令启动 MySQL 服务,并使其开机时自动启动

sudo systemctl enable --now mysqld

查看MySQL 服务运行状态

sudo systemctl status mysqld

CentOS 8 安装 MySQL 8.0-程序旅途

MySQL 安全性设置

运行mysql_secure_installation脚本,该脚本执行一些与安全性相关的操作并设置MySQL根密码

sudo mysql_secure_installation

运行后会执行下面几个配置

  1. 为root用户设置密码;
  2. 删除匿名账号;
  3. 取消root用户远程登录;
  4. 删除test库和对test库的访问权限;
  5. 刷新授权表使修改生效。

按照屏幕提示操作即可。

身份验证方法

由于CentOS 8 中的某些客户端工具和库跟 caching_sha2_password方法不兼容,CentOS 8 存储库中包含的 MySQL 8.0服务器被设置为使用旧的mysql_native_password身份验证插件。

mysql_native_password方法适用于大多数设置。但是,如果您想将默认身份验证插件更改为caching_sha2_password,会更快并提供更好的安全性,可以在 /etc/my.cnf.d/mysql-default-authentication-plugin.cnf 配置文件中修改。

CentOS 8 安装 MySQL 8.0-程序旅途

最后不要忘了重启 mysql 服务

sudo systemctl restart mysqld

开启远程连接

开启远程连接需要设置两个地方,一是MySQL服务允许外网访问,另外一个是用户支持外网访问。

MySQL服务允许外网访问

在 /etc/my.cnf.d/mysql-server.cnf 中加上下面的配置

port=3306
bind-address=0.0.0.0

CentOS 8 安装 MySQL 8.0-程序旅途

用户支持远程访问

root 权限登录mysql,更新mysql.user表,设置指定用户(下面以root为例)的host为 %登录mysql

登录mysql

mysql -uroot -p

选择mysql数据库

mysql> use mysql;

查询host

mysql> select host,user from user;

如果没有%的host,就更新为%

mysql> update user set host='%' where user='root';
mysql> flush privileges;

给用户授权

mysql> GRANT ALL PRIVILEGES ON  *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

%表示从任意IP,可以替换为具体的IP或IP地址段

最后不要忘了防火墙开放3306端口