运维打铁: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 端口,例如使用 
