目录
1、前言
由于申请的服务器的linux版本是centOS8.0(仔细的同学会发现系列文章的第二篇中有一个截图是7.6的linux版本,由于是之前截的,所以与现在的版本有差距),目前国内的生态也开始向8.X靠拢,因此本期做一个centOS8.0安装MySQL8的教程。
2、版本变更介绍
centOS8是基于red hat enterprise linux 8.0的版本, 这个版本的软件包管理工具仍旧使用的YUM工具,但是,与之前不同的是,该YUM工具是基于DNF技术的。所以尽管这个版本还是可以使用yum命令,但是yum实际上是dnf的别名。实际上使用的是dnf命令。
3、安装详述
①为防止冲突,首先查询并清理Linux里的mysql
rpm -qa|grep -i mysql
使用上述命令查询mysql相关的内容
rpm -ev mysql-errmsg-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
使用【rpm -ev (内容名称)】命令删除mysql相关内容,查询出来的全删。示例如下。
删除时请注意,这4个文件存在依赖关系,可以按照图中顺序,先删除mysql-server,再删除mysql,接着删除mysql-errmsg,最后删除mysql-common。
删完这些,注意还需要删除mysql相关的文件夹,否则会对新安装的mysql产生一定影响,比如安全等级和策略,用户名密码等。
find / -name mysql
使用上述代码查找mysql相关文件夹。
查询结果可能会存在差异,查出来多少删多少就行。
rm -rf /var/log/mysql
使用上述代码逐条删除。
不放心的话可以再使用 find / -name mysql 再次查询一下。
②安装mysql
dnf install @mysql
使用上述命令安装mysql
通过上图可以看到即将安装的内容,包括mysql,mysql-server,mysql-common和mysql-errmsg及其相应的版本号和大小。
输入y表示同意并进行下载。
下载完成后会自动安装,等待出现如上图所示内容即表示安装成功。接下来开启mysql相关服务。
③开启MySQL服务
systemctl enable --now mysqld
使用上述命令开启MySQL服务,并将MySQL服务设置为服务器开机时自动启动。
可以使用如下命令查询MySQL服务的状态。
systemctl status mysqld
查询结果如上图所示。
mysql_secure_installation
接下来使用上述命令,运行MySQL安全安装。
提示的是:是否启用MySQL的验证密码组件。为了保证安全,我选YES。输入y进入下一步。
这里提示的是:密码验证策略有3个级别。
LOW(低)的要求是,密码长度大于等于8位。
MEDIUM(中等)的要求是,密码长度大于等于8位,且由数字,大小写字母和特殊字符混合。
STRONG(强)的要求是,密码长度大于等于8位,且由数字,大小写字母,特殊字符混合,并且是非字典中的组合。【解释一下什么叫非字典中的组合,比如hello这个单词就是字典中的组合,所以不能够通过。因此往往强密码都是形如:1C2T!mLg3@B 这种的】
由于并非是商业用途,所以我这里选择了LOW。
输入0或LOW之后,提示:请为root用户设置密码。密码的要求是刚刚选择对应难度的要求。
输入两次密码后,会提示系统对密码强度的评估分。然后再次询问你是否使用刚才提供的密码作为root用户的密码。选择y,进行下一步。
这边提示比较多,大意是:默认情况下,数据库保留了一个匿名用户。该用户可以在没有账户的情况下登录数据库,以便于测试使用。是否删除匿名用户?
考虑到安全性问题,选择y,禁用匿名用户,并进行下一步。
这里提示:正常情况下,root用户只应该在localhost下被允许连接。这可以确保没有人可以从网络上猜测到root用户的密码。是否允许root用户远程登录?
我这里需要从外部访问数据库,因此我选择No。输入n,进行下一步。
提示:通常情况下,MYSQL数据库有一个所有人可以访问的test数据库。这也是仅用于测试使用的数据库,在发布到正式环境时应该被删除。是否删除test数据库和权限?
我不需要测试数据库,所以我选择删除,选择y,进行下一步。
提示:重载权限表,以保证刚刚做的所有更改可以立即生效。是否现在重载权限表?
没说的,立即重载,选y,下一步。
提示All done!
恭喜,全部完成!
④配置远程登录
首先打开mysql
mysql -u root -p
输入设置的密码后登录到mysql
由于mysql的安全策略,mysql是默认不允许远程使用root用户登录的。因此需要手动开启。
use mysql;
使用上述命令切换到mysql数据库中,以便于后续修改权限。(注意,末尾的分号不能缺少)
不放心的话,可以使用如下命令查询一下user表的相关信息,看看root用户是否拥有远程登录的权限。
select * from user where user = 'root';
查询结果如下:(忘加分号的后果就是,还要再加个分号。[/捂脸])
看起来有点费劲,但是可以明确的看到,root用户拥有的host的权限是localhost,也就是只允许本地登录。所以要将localhost改为%,以起到远程连接的效果。
接下来就是更改user表中root用户的权限
update user set host='%' where user='root';
修改完成后,记得刷新一下权限。
flush privileges;
⑤使用Navicat远程连接服务器的MySQL数据库
使用Navicat创建好mysql的连接,并编辑好连接属性。
配置好后,点击测试连接。
至此,安装mysql8,并配置远程登录全部完成!