MySQL 在 Centos 7环境安装

前言:

  • 安装与卸载中,用户全部切换成root , 一旦安装,普通用户也能使用的~

一、卸载不必要的环境

CentOS 7 默认会安装 MariaDB,它与 MySQL 存在文件和服务冲突,必须先卸载清理,全程建议切换至 root 用户操作,普通用户需加sudo获取权限

1. 检查并停止 MariaDB 服务

首先检查 MariaDB 进程是否存在,若存在则停止对应的服务:

复制代码
# 检查mariadb进程
ps ajx |grep mariadb
# 停止mariadb服务
systemctl stop mariadb.service
# 检查mysql进程
ps ajx |grep mariadb
# 停止mysql服务
systemctl stop mysql

执行停止命令后若需要身份验证,输入 root 密码即可。再次执行ps ajx |grep mariadb,若无服务进程则说明停止成功。

2. 检查并卸载默认安装包

检查系统中已安装的 MariaDB 和 MySQL 相关 rpm 包:

复制代码
# 检查mariadb相关包
rpm -qa | grep mariadb
# 检查mysql相关包
rpm -qa | grep mysql

卸载查到的所有冲突安装包,建议逐个卸载确保清理干净:

复制代码
sudo yum remove 查到的包名

如果想要把查到的包名,批量化的删除

复制代码
rpm -qa | grep mysql | xargs yum-y remove

二、配置 MySQL 官方 Yum 源

CentOS 7 默认 yum 源中无 MySQL 官方包,需手动添加 MySQL 官方 yum 源,建议安装与系统版本匹配的 MySQL 版本,避免兼容性问题。

1. 查看系统版本

确认 CentOS 7 具体版本,保证 yum 源与系统匹配:

获取mysql官方yum源 http://repo.mysql.com/

复制代码
cat /etc/redhat-release

2. 下载并安装 MySQL Yum 源

从 MySQL 官方仓库**http://repo.mysql.com/**下载对应 CentOS 7 的 mysql57-community-release 包,也可直接通过 rpm 命令安装:

复制代码
# 安装mysql57社区版yum源
sudo rpm -Uvh mysql57-community-release-el7-10.noarch.rpm

若执行时出现Permission denied权限错误,添加sudo即可解决;出现签名警告可忽略,不影响安装。

3. 验证 Yum 源安装结果

复制代码
ls /etc/yum.repos.d/ | grep mysql

#检查 yum 源是否能识别 MySQL 相关包
yum list |grep mysql

三、安装 MySQL 服务

通过配置好的官方 yum 源,一键安装 MySQL 社区版服务器,会自动安装依赖的公共模块、库、客户端等组件。

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

四、MySQL 服务基础操作

安装完成后,进行服务启动、状态检查等基础操作,确认服务正常运行。

1. 查看配置文件和数据目录

MySQL 默认配置文件为/etc/my.cnf,默认数据存储目录为/var/lib/mysql,执行以下命令查看:

复制代码
# 查看配置文件
ls /etc/my.cnf
# 查看数据目录
sudo ls /var/lib/mysql

2. 启动并检查 MySQL 服务

复制代码
# 启动mysql服务
systemctl start mysqld.service
# 检查mysql进程是否运行
ps axj |grep mysqld

若进程列表中出现/usr/sbin/mysqld相关进程,说明服务启动成功。

3. 设置开机自启动(可选)

为避免服务器重启后 MySQL 服务失效,可设置开机自启动:

复制代码
# 开启开机自启动
systemctl enable mysqld
# 重载系统服务配置
systemctl daemon-reload

五、MySQL 登录与密码配置

MySQL 5.7 安装后会为 root 用户生成临时密码,也可能存在无密码情况,提供三种登录方法,按顺序尝试即可,推荐优先使用方法一。

方法一:通过临时密码登录(推荐)

1.查找临时密码:MySQL 临时密码默认存放在/var/log/mysqld.log日志文件中,执行以下命令提取:

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

输出结果中root@localhost:后即为临时密码,例如yLMalT:v+5l*

2.临时密码登录:使用提取的临时密码登录 MySQL 客户端:

复制代码
mysql -uroot -p

3.输入临时密码后即可进入 MySQL 命令行。

  1. 修改密码策略并重置密码:MySQL 5.7 默认开启密码强度验证,要求密码包含数字、符号、大小写字母且长度≥8 位,新手可先降低密码策略,再修改自定义密码:

    关闭密码强度验证(0为最低级别)

    set global validate_password_policy=0;

    设置密码最小长度为1

    set global validate_password_length=1;

    重置root本地登录密码,替换为自定义密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的自定义密码';

    刷新权限使配置生效

    FLUSH PRIVILEGES;

方法二:直接无密码登录

1.若安装的 MySQL 无临时密码,root 用户默认无密码,可直接执行以下命令登录:

复制代码
mysql -uroot

方法三:跳过权限验证登录(适用于密码丢失 / 无法登录)

1.若以上两种方法均无法登录,可通过修改配置文件跳过权限验证,步骤如下:

复制代码
vim /etc/my.cnf

2.在[mysqld]节点最后添加跳过权限验证配置,保存并退出:

复制代码
skip-grant-tables

3.重启 MySQL 服务使配置生效:

复制代码
systemctl restart mysqld

4.无密码登录 MySQL:

复制代码
mysql -uroot

注意 :登录成功后建议及时修改密码,并注释掉skip-grant-tables配置,重启服务恢复权限验证,避免安全风险。

六、配置 MySQL 编码(解决中文乱码)

为避免数据库存储和查询出现中文乱码,需配置 MySQL 服务端编码为 UTF-8,编辑/etc/my.cnf配置文件:

复制代码
vim /etc/my.cnf

[mysqld]节点中添加以下配置:

复制代码
# 服务端编码设置为utf8
character-set-server=utf8
# 默认存储引擎为InnoDB
default-storage-engine=innodb

配置完成后,重启 MySQL 服务使编码配置生效:

复制代码
systemctl restart mysqld

注意 :暂不建议在[mysql]节点添加default-character-set=utf8,MySQL 5.7 存在该配置的 bug,会导致汉字无法回显。

七、安装常见问题解决

问题 1:终端无法输入中文,数据库中文插入失败

首先检查系统终端的编码设置,确保为 UTF-8:

复制代码
env |grep LANG

若输出LANG=en_US.utf8则为正常;若编码非 UTF-8,需修改系统编码配置,确保终端和 MySQL 编码一致。

问题 2:安装时出现 GPG 秘钥过期错误

报错信息示例:Failing package is: mysql-community-client-5.7.39-1.el7.x86_64 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql解决方案:导入 MySQL 最新的 GPG 秘钥:

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

问题 3:启动服务时出现权限错误

确保/var/lib/mysql目录的属主和属组为 mysql 用户,若权限异常执行以下命令修复:

复制代码
chown -R mysql:mysql /var/lib/mysql
相关推荐
路小雨~2 小时前
Milvus 向量数据库的官方文档笔记
数据库·学习·milvus
老衲提灯找美女2 小时前
数据库约束
数据库
卷Java2 小时前
Python字典:键值对、get()方法、defaultdict,附通讯录实战
开发语言·数据库·python
wanhengidc2 小时前
跨境云手机适用于哪些场景
大数据·运维·服务器·数据库·科技·智能手机
sky wide2 小时前
[特殊字符] Docker 安装指南 (CentOS)
docker·容器·centos
Bdygsl2 小时前
MySQL(6)—— 视图
数据库·mysql
oradh2 小时前
数据库入门概述
数据库·oracle·数据库基础·数据库入门
BullSmall3 小时前
一套定制化高级 payload 合集
数据库·安全性测试
zbdx不知名菜鸡3 小时前
postgre sql 数据库查询优化
数据库·postgresql