MySQL安装『适用于 CentOS 7』

✨个人主页: 北 海
🎉所属专栏: MySQL 学习
🎃操作环境: CentOS 7.6 腾讯云远程服务器
🎁软件版本: MySQL 5.7.44

成就一亿技术人

文章目录


注意: 为了避免权限不足的问题,建议切换至 root 用户进行安装

1.MySQL 的清理与安装

1.1查看是否存在 MySQL 服务

在安装 MySQL 前,需要先看看自己的服务器中是否存在 MySQL 服务,可以使用

bash 复制代码
ps -ajx | grep mysql*

查询是否有相关服务正在运行,如果出现下图所示,就说明已存在 MySQL 服务

此时可以选择卸载原有服务,重新安装,也可以选择直接使用(如果可用的情况下);但如果服务器中没有 MySQL 相关服务,就可以跟着我的教程安装

1.2.卸载原有服务

首先需要终止正在运行的 MySQL 服务

bash 复制代码
systemctl stop mysqld

终止服务后,再次查询 MySQL 服务,如果没有看到,就说明终止成功了

备份重要信息(如果之前有人用过 MySQL 的话),没用过就可以跳过这一步

首先是备份 my.cnf 文件,这是 MySQL 的配置文件,位于 /etc/my.cnf

bash 复制代码
mkdir ~/TMP
cp /etc/my.cnf ~/TMP/

其次是备份 mysql 这个文件夹,里面包含了之前用户操作过的数据库信息

bash 复制代码
cp -r /var/lib/mysql ~/TMP/


注意: 后续安装好后,可以把这两个备份文件(夹)恢复至原来的路径中

卸载这些系统安装包

bash 复制代码
yum remove mysql

1.3.获取官方的 yum 源

如果你的系统是 CentOS 7.6,可以直接通过这个链接下载:适用于 CentOS 7.6

否则可以去官方提供的网站中寻找与自己版本相匹配的 yum 源:官方提供的下载网站

将后缀为 .rpm 的文件下载好后,可以通过文件上传工具将文件传至服务器,比如 rz

bash 复制代码
rz

输入指令后选择下载好的文件上传即可

注:rz 是一款工具,如果没有的话需要通过 yum 下载,并且需要在 XShell 中使用

安装 MySQLyum

bash 复制代码
 rpm -Uvh 下载好的文件名

查看 yum 源是否成功安装

bash 复制代码
ls -l /etc/yum.repos.d/

存在这两个文件,就证明成功了,安装 yum 源 完成后,可以将这个文件删除

查看 MySQLyum 源是否成功工作

bash 复制代码
yum list | grep mysql-community*

出现很多 mysql 相关的安装包,就证明可以成功工作

1.4.下载 MySQL 服务

bash 复制代码
yum install -y mysql-community-server

这条指令可能会执行失败,原因是 密钥过期了,可以使用以下语句更新密钥

bash 复制代码
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

静待安装完成

1.5.验证是否下载完成

查看 /etc/ 目录下是否存在 my.cnf 配置文件

bash 复制代码
ls /etc/my.cnf

查看是否存在 MySQL 存放数据的目录

bash 复制代码
ls /var/lib/mysql

注:部分文件为之前残留的数据库


2.MySQL 的配置与启动

2.1.启动服务

通过指令启动 MySQL 服务,MySQL 默认使用的端口是 3306,启动之前要确保 3306 端口处于开启状态

bash 复制代码
systemctl start mysqld

2.2.登录 MySQL

登录 MySQL 默认是需要密码,当前版本的 MySQL 刚开始会设置一个临时密码,可以通过指令获取,如果获取失败,可以跳转至本文最后一部分 [3.2无法登录 MySQL]

获取临时密码

bash 复制代码
grep 'temporary password' /var/log/mysqld.log

注意: 获取临时密码的前提是 MySQL 服务已经启动过

获取临时密码后,就可以登录 MySQL

bash 复制代码
mysql -u root -p

回车后,输入 临时密码 ,如果登录失败,可跳转至 [3.2无法登录 MySQL]

注意: MySQL 中默认只有 root 用户,所以需要以 root 身份登录

出现此页面证明登录成功,可以进行密码修改

2.3.修改密码

注意: MySQL 中输入的语句都要以 ; 结尾,表示输入语句结束

为了方便后续使用,这里直接把密码等级设为最低,如果输入指令报错,可以跳转至 [3.3.无法修改密码规则]

修改密码强度(可以单纯为数字)

sql 复制代码
set global validate_password_policy=0;

修改密码最小长度

sql 复制代码
set global validate_password_length=1;

修改当前用户 root 的登录密码,其中的 localhost 表示只允许登录主机本地;如果设置 123456 等简单密码失败,说明是密码规则没有修改成功,过于简单的密码不允许设置,可以重新登录 MySQL,重复上面的步骤

sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

刷新权限,MySQL 中有很多权限的概念,现在可以先不用管

sql 复制代码
FLUSH PRIVILEGES;

修改完成后,可以使用新密码登录 MySQL

注:输入 quit 退出 MySQL

2.4.修改配置文件

MySQL 服务启动时,会先从配置文件中读取配置信息,比如 端口号、文件存储位置、存储引擎等 ,配置文件 my.cnf 位于 /etc/ 目录中,首先打开配置文件

bash 复制代码
vim /etc/my.cnf

设置端口号为 3306,也可以根据自己的需求进行设置

vim 复制代码
port=3306

设置数据库文件存储路径,默认为 /var/lib/mysql

vim 复制代码
datadir=/var/lib/mysql

设置默认编码格式,后续在创建数据库时,如未指定编码,则使用配置文件中的默认编码

vim 复制代码
character-set-server=utf8

设置默认存储引擎,一般都是使用 InnoDB,因为它支持 索引、事务 等特性

vim 复制代码
default-storage-engine=innodb

如果无法退出 vim,可以尝试 wq! 强行保存并退出

设置完配置文件后,都需要重启 MySQL 服务,确保配置信息及时更新

bash 复制代码
systemctl restart mysqld

接下来就可以尝试使用 MySQL


3.可能遇到的问题

下面是一些常见的问题

3.1.无法通过 yum 下载

通过 yum 下载 MySQL 时提示

bash 复制代码
Failing package is: mysql-community-client-5.7.44-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

这是因为密钥过期了,更新密钥后重新下载就行了

bash 复制代码
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

3.2.无法登录 MySQL

如果无法登录 MySQL(即便是密码忘记了),可以直接修改配置文件

打开 my.cnf

bash 复制代码
vim /etc/my.cnf

在文件末尾加上以下语句

bash 复制代码
skip-grant-tables

添加完成后,保存并退出,然后重启 MySQL 服务

bash 复制代码
systemctl restart mysqld

此时再次登录 MySQL 时,随便输入密码或者直接回车,都能正常登录,这是因为 跳过了密码验证

进入 MySQL 后可以手动修改 root 密码,如果想重新启用登录时密码验证,直接去除 my.cnf 中的 skip-grant-tables 就行了

3.3.无法退出 MySQL

MySQL 客户端本质上就是一个进程,可以直接通过 ctrl + d 发送信号终止进程,这种退出方式常用于客户端卡死的情况

sql 复制代码
键盘键入 ctrl + d

也可以输入 quit 退出客户端

sql 复制代码
quit

像这种命令在 MySQL 中输入时,可以不用加 ; 号,这是一种正常退出的方式

3.4.无法修改密码规则

问题描述:输入修改密码规则相关语句报错

报错描述

sql 复制代码
ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
或者
ERROR 1193 (HY000): Unknown system variable 'validate_password_length'

报错原因:当前的 MySQL 中缺少相关变量

查询相关变量,结果为空

sql 复制代码
show variables like 'validate_password%';

解决方法:在配置文件中添加相关环境变量

打开 my.cnf

bash 复制代码
vim /etc/my.cnf

在配置文件的末尾加上以下语句

bash 复制代码
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT

添加完成后,重启 MySQL 服务

bash 复制代码
systemctl restart mysqld

重启完成后,重新登录 MySQL,输入语句查看密码规则相关变量信息,能显示信息就证明问题已经解决了

sql 复制代码
show variables like 'validate_password%';

接下来输入语句修改密码规则

sql 复制代码
set global validate_password_policy=0;
set global validate_password_length=1;

可以看到已经修改成功了,问题解决

相关推荐
难以触及的高度23 分钟前
mysql中between and怎么用
数据库·mysql
小技与小术2 小时前
数据库表设计范式
数据库·mysql
安迁岚3 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作
运维·服务器·数据库·sql·mysql
安迁岚3 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验九 触发器
数据库·sql·mysql·oracle·实验报告
无敌岩雀3 小时前
MySQL中的索引
数据库·mysql
东阳马生架构4 小时前
MySQL原理简介—1.SQL的执行流程
mysql
安迁岚4 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验六 视图
数据库·sql·mysql·oracle·实验报告
xoxo-Rachel4 小时前
(超级详细!!!)解决“com.mysql.jdbc.Driver is deprecated”警告:详解与优化
java·数据库·mysql
JH30735 小时前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
路有瑶台7 小时前
MySQL数据库学习(持续更新ing)
数据库·学习·mysql