CentOS 使用 yum 安装和管理 MySQL
一、简介
在 CentOS 操作系统上,通过 Yum 包管理器来安装和管理 MySQL 数据库是一种常见且便捷的方式,本文将详细介绍如何在 CentOS 上下载、安装和配置 MySQL,包括启动服务、修改密码、授权用户以及处理常见问题。
二、安装步骤
1. 下载 MySQL 的 Yum 源配置
需要从 MySQL 官方网站下载适用于 CentOS 的 Yum 源配置包,对于 MySQL 8.0 版本,可以使用以下命令:
wget http://repo.mysql.com/mysql80communityreleaseel73.noarch.rpm
2. 安装 MySQL 的 Yum 源
下载完成后,使用以下命令安装该 Yum 源:
sudo yum localinstall mysql80communityreleaseel73.noarch.rpm
3. 安装 MySQL 服务
使用 Yum 安装 MySQL 服务器:
sudo yum install mysqlserver y
此过程可能需要一些时间,请耐心等待,安装完成后,MySQL 服务将自动启动。
三、执行 MySQL 服务
1. 查看 MySQL 状态
检查 MySQL 服务是否正常运行:
systemctl status mysqld.service
2. 启动 MySQL 服务
如果服务未运行,可以使用以下命令启动:
sudo systemctl start mysqld.service
3. 停止 MySQL 服务
停止 MySQL 服务的命令如下:
sudo systemctl stop mysqld.service
4. 重启 MySQL 服务
重启 MySQL 服务的命令如下:
sudo systemctl restart mysqld.service
5. 设置开机自启动
为了确保系统重启后 MySQL 服务自动启动,可以执行以下命令:
sudo systemctl enable mysqld.service
四、配置 MySQL 远程访问
1. 获取临时密码
首次登录 MySQL 时,需要使用临时密码,可以通过以下命令获取:
grep "temporary password" /var/log/mysqld.log
2. 修改 root 用户密码
登录 MySQL,并修改 root 用户的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
3. 授权远程访问用户
为了让 root 用户可以从远程主机连接,需要进行以下操作:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '新密码' WITH GRANT OPTION; FLUSH PRIVILEGES;
4. 查看授权记录列表
可以查看当前授权的用户及其权限:
SELECT User, Host FROM mysql.user;
五、常见问题及解决方案
1. No package wget available
当通过 Yum 安装 wget 时出现“没有可用包”的错误,通常是因为 Yum 源的问题,可以通过更换为阿里云的 Yum 源来解决:
sudo wget O /etc/yum.repos.d/CentOSBase.repo http://mirrors.aliyun.com/repo/Centos7.repo sudo yum makecache sudo yum update y sudo yum install y wget
2. GPG Key Error
如果在安装过程中遇到 GPG Key Error,可以尝试导入 GPG 密钥:
sudo rpm import https://dev.mysql.com/doc/refman/8.0/en/checkingsignatures.html#idgpgkeycontents
3. 密码策略问题
MySQL 默认的密码策略要求密码包含大小写字母、数字和特殊字符,如果需要设置简单密码,可以临时调整密码策略:
SET GLOBAL validate_password_policy=0; SET GLOBAL validate_password_length=1;
六、FAQs
Q1: 如何更改 MySQL 端口?
A1: 编辑/etc/my.cnf
文件,找到[mysqld]
部分,修改port
参数,将端口改为33066:
[mysqld] port = 33066
保存后,重新启动 MySQL 服务:
sudo systemctl restart mysqld.service
Q2: 如果忘记 root 密码怎么办?
A2: 停止 MySQL 服务,以安全模式启动,不需要密码即可登录:
sudo systemctl stop mysqld.service sudo mysqld_safe skipgranttables & mysql u root
登录后,修改 root 用户的密码:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
完成后,重新启动 MySQL 服务:
sudo systemctl stop mysqld_safe sudo systemctl start mysqld.service