运维打铁:Centos 7 使用yum安装 mysql5.7
文章目录
- 一、安装前信息说明
- 二、安装步骤
- 1. 下载并安装官网 RPM 安装包
- 2. 修改配置文件 `/etc/my.cnf`
- 3. 创建 MySQL 数据相关目录并授权
- 4. 启动 MySQL 服务
- 三、修改数据库访问密码
- 1. 修改配置文件 `/etc/my.cnf`
- 2. 重启 MySQL 服务
- 3. 登录数据库并修改密码
- 4. 恢复配置文件并重启数据库
- 5. 连接数据库并再次修改密码
- 6. 授权远程登录权限
- 四、常见问题及解决办法
- 1. MySQL 服务无法启动
- 2. 密码修改失败
- 3. 无法远程连接 MySQL

一、安装前信息说明
在安装 MySQL 5.7 之前,先明确以下关键信息:
端口(port) | 数据路径(datapath) | 日志路径(logpath) |
---|---|---|
30030 | /opt/mysql/data/mysql | /opt/mysql/logs/mysqld.log |
二、安装步骤
1. 下载并安装官网 RPM 安装包
首先,从 MySQL 官方网站下载 RPM 安装包,然后使用 yum
进行本地安装,最后安装 MySQL 社区服务器。
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum localinstall mysql57-community-release-el7-11.noarch.rpm -y
yum install mysql-community-server -y
2. 修改配置文件 /etc/my.cnf
编辑 MySQL 的配置文件,设置数据目录、端口、字符集等参数。注意,数据目录必须以 mysql
结尾,否则 MySQL 启动会失败。
[mysqld]
datadir=/opt/mysql/data/mysql # 必须以 mysql 结尾,否则启动失败
socket=/var/lib/mysql/mysql.sock
port=30030
#skip-grant-tables # 修改密码时打开此注释,重启后登录 mysql -uroot -psymbolic-links=0
log-error=/opt/mysql/logs/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
log_timestamps=SYSTEM # 配置日志时间戳[client]
default-character-set = utf8mb4[mysql]
default-character-set = utf8mb4
3. 创建 MySQL 数据相关目录并授权
创建数据目录和日志目录,并将这些目录的所有权赋予 mysql
用户和组。
mkdir -p /opt/mysql/data/
mkdir -p /opt/mysql/logs
chown mysql:mysql -R /opt/mysql/*
4. 启动 MySQL 服务
使用 systemctl
命令启动 MySQL 服务。
systemctl start mysqld
三、修改数据库访问密码
1. 修改配置文件 /etc/my.cnf
在配置文件中添加 skip-grant-tables
选项,跳过权限验证,方便修改密码。
[mysqld]
skip-grant-tables
2. 重启 MySQL 服务
使配置文件的修改生效。
systemctl restart mysqld
3. 登录数据库并修改密码
无需输入密码登录 MySQL,然后更新 root
用户的密码。
mysql -uroot -p
-- 注意:在 MySQL 5.7 及以上版本,password() 函数已被弃用,可使用以下方式
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
4. 恢复配置文件并重启数据库
将 skip-grant-tables
注释掉,恢复正常的权限验证,然后重启 MySQL 服务。
vi /etc/my.cnf
# 修改 [mysqld] 部分,注释掉 skip-grant-tables
[mysqld]
#skip-grant-tablessystemctl restart mysqld
5. 连接数据库并再次修改密码
使用新设置的密码登录 MySQL,再次修改 root
用户的密码以确保密码生效。
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
6. 授权远程登录权限
为 root
用户授予远程登录的权限,并刷新权限表。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
四、常见问题及解决办法
1. MySQL 服务无法启动
- 可能原因:数据目录配置错误、权限不足、端口被占用等。
- 解决办法:
- 检查
/etc/my.cnf
中的datadir
配置是否正确,确保以mysql
结尾。 - 使用
chown
命令确保/opt/mysql
目录及其子目录的所有权属于mysql
用户和组。 - 使用
netstat -tlnp | grep 30030
检查端口是否被其他程序占用,若被占用,可修改/etc/my.cnf
中的port
配置。
- 检查
2. 密码修改失败
- 可能原因:配置文件修改未生效、SQL 语句使用错误等。
- 解决办法:
- 确保在修改密码前,
skip-grant-tables
选项已在/etc/my.cnf
中启用,并重启 MySQL 服务。 - 注意在 MySQL 5.7 及以上版本,
password()
函数已被弃用,应使用ALTER USER
语句修改密码。
- 确保在修改密码前,
3. 无法远程连接 MySQL
- 可能原因:防火墙未开放端口、远程访问权限未授予等。
- 解决办法:
- 开放防火墙的 30030 端口,例如使用
firewall-cmd --zone=public --add-port=30030/tcp --permanent
命令,然后使用firewall-cmd --reload
使配置生效。 - 确保已执行
GRANT
语句为root
用户授予远程访问权限,并执行FLUSH PRIVILEGES
刷新权限表。
- 开放防火墙的 30030 端口,例如使用