在 CentOS 7 上安装和配置 MySQL 5.7
MySQL 是一个广泛使用的关系型数据库管理系统(RDBMS),因其高性能、高可靠性以及易于使用而广受欢迎,CentOS 是一个基于 Linux 的操作系统,常用于服务器环境,本文将详细介绍如何在 CentOS 7 系统上安装和配置 MySQL 5.7。
安装步骤
1、更新 YUM 包索引:
```bash
sudo yum update y
```
2、添加 MySQL Yum 仓库:
首先安装 wget:
```bash
sudo yum install y wget
```
下载并安装 MySQL Yum Repository:
```bash
wget HTTPS://dev.mysql.com/get/mysql57communityreleaseel78.noarch.rpm
sudo yum localinstall mysql57communityreleaseel78.noarch.rpm
```
3、禁用 MySQL 8.0,启用 MySQL 5.7:
```bash
sudo yumconfigmanager disable mysql80community
sudo yumconfigmanager enable mysql57community
```
4、安装 MySQL:
```bash
sudo yum install y mysqlcommunityserver
```
5、启动 MySQL 服务:
```bash
sudo systemctl start mysqld
```
6、查看 MySQL 服务状态:
```bash
sudo systemctl status mysqld
```
7、获取临时密码:
MySQL 5.7 会在安装完成后生成一个临时密码,可以在/var/log/mysqld.log
文件中找到:
```bash
sudo grep 'temporary password' /var/log/mysqld.log
```
8、登录 MySQL:
使用临时密码登录 MySQL:
```bash
mysql u root p
```
9、修改 root 用户密码:
登录成功后,修改 root 用户的密码(确保新密码符合安全策略):
```sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
```
10、设置开机启动:
```bash
sudo systemctl enable mysqld
```
11、配置远程连接:
允许 root 用户从任何主机进行连接:
```sql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyNewPass4!' WITH GRANT OPTION;
FLUSH PRIVILEGES;
```
12、配置防火墙:
开放 3306 端口以允许外部连接:
```bash
sudo firewallcmd zone=public addport=3306/tcp permanent
sudo firewallcmd reload
```
字符集与编码配置
1、查看当前字符集设置:
```sql
SHOW VARIABLES LIKE '%char%';
```
2、修改配置文件/etc/my.cnf
:
在[client]
和[mysqld]
部分添加或修改以下内容:
```ini
[client]
defaultcharacterset=utf8
[mysqld]
charactersetserver=utf8
collationserver=utf8_general_ci
```
3、重启 MySQL 服务:
```bash
sudo systemctl restart mysqld
```
常见问题解答 (FAQs)
Q1: 如何查看 MySQL 服务的状态?
A1: 你可以使用以下命令来查看 MySQL 服务的状态:
sudo systemctl status mysqld
该命令会显示服务的当前状态,包括是否正在运行、启动时间等信息。
Q2: 如果忘记 MySQL root 用户密码怎么办?
A2: 如果你忘记了 MySQL root 用户的密码,可以通过以下步骤重置密码:
1、停止 MySQL 服务:
```bash
sudo systemctl stop mysqld
```
2、以安全模式启动 MySQL,跳过权限表的读取:
```bash
sudo mysqld_safe skipgranttables &
```
3、重新登录 MySQL,无需密码:
```bash
mysql u root
```
4、在 MySQL 提示符下,重置 root 用户密码:
```sql
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword!';
```
5、退出 MySQL,重新启动服务:
```bash
sudo systemctl start mysqld
```
请确保新密码符合安全要求,并在生产环境中谨慎操作。