OpenCloudOS 9.4 MySQL 环境搭建文档

117 阅读3分钟

概述

本文档详细介绍了在腾讯云OpenCloudOS 9.4服务器上安装、配置MySQL数据库环境的完整步骤,包括安全设置、用户创建和NestJS应用连接配置。

系统要求

  • OpenCloudOS 9.4
  • sudo权限用户
  • 互联网连接

安装步骤

1. 安装MySQL服务器

bash

# 添加MySQL官方Yum仓库
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el9-4.noarch.rpm

# 安装MySQL服务器
sudo yum install -y mysql-community-server

# 启动MySQL服务
sudo systemctl start mysqld

# 设置开机自启
sudo systemctl enable mysqld

# 检查服务状态
sudo systemctl status mysqld

2. 获取初始root密码

bash

# 查看初始root密码
sudo grep 'temporary password' /var/log/mysqld.log

输出示例:A temporary password is generated for root@localhost: [临时密码]

3. 安全配置MySQL

bash

# 运行安全配置脚本
sudo mysql_secure_installation

按照提示完成以下安全设置:

  • 输入临时root密码
  • 设置新root密码(建议使用强密码)
  • 移除匿名用户 (按 y)
  • 禁止远程root登录 (按 y)
  • 移除测试数据库 (按 y)
  • 重新加载权限表 (按 y)

上面可能手输不太方便,可以使用后

sudo mysql -u root -p'[临时密码]'

进入数据库后去修改新的root密码

# 立即修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'New Password';
# 刷新
FLUSH PRIVILEGES;
# 退出
EXIT;

然后利用这个新的密码去执行上面的安全配置脚本

4. 创建应用数据库和用户

bash

# 使用root登录MySQL
mysql -u root -p

执行以下SQL命令:

sql

-- 创建数据库
CREATE DATABASE easy_admin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建本地用户
CREATE USER 'admin'@'localhost' IDENTIFIED BY '[Password]';

-- 创建远程用户
CREATE USER 'admin'@'%' IDENTIFIED BY '[Password]';

-- 授予权限
GRANT ALL PRIVILEGES ON easy_admin.* TO 'admin'@'localhost';
GRANT ALL PRIVILEGES ON easy_admin.* TO 'admin'@'%';

-- 刷新权限
FLUSH PRIVILEGES;

-- 退出MySQL
EXIT;

5. 配置MySQL远程访问[可选]

bash

# 编辑MySQL配置文件
sudo vi /etc/my.cnf.d/mysql-server.cnf

在 [mysqld] 部分添加:

text

bind-address = 0.0.0.0

6. 配置防火墙

bash

# 开放3306端口
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

# 验证端口开放
sudo firewall-cmd --list-ports

7. 重启MySQL服务

bash

sudo systemctl restart mysqld
sudo systemctl status mysqld

测试验证

1. 测试本地连接

bash

mysql -u admin -p -h 127.0.0.1 -D easy_admin

2. 测试远程连接

bash

mysql -u admin -p -h [服务器IP] -D easy_admin

3. 验证NestJS配置

确保NestJS配置文件中的数据库连接信息正确:

typescript

export const SQLCONF: TypeOrmModuleOptions = {
  type: 'mysql',
  retryAttempts: 1,
  host: '服务器IP', // 您的服务器IP
  port: 3306,
  username: 'xxx',     // 注意:用户名小写
  password: 'Password',
  database: 'xxx',
  synchronize: true,
  autoLoadEntities: true
}

故障排除

常见问题及解决方案

  1. 连接被拒绝错误

    bash

    # 检查MySQL服务状态
    sudo systemctl status mysqld
    
    # 检查错误日志
    sudo tail -f /var/log/mysqld.log
    
  2. 防火墙问题

    bash

    # 检查防火墙设置
    sudo firewall-cmd --list-all
    
    # 临时关闭防火墙测试(仅用于调试)
    sudo systemctl stop firewalld
    
  3. 权限问题

    bash

    # 检查用户权限
    mysql -u root -p -e "SHOW GRANTS FOR 'admin'@'%'"
    

安全建议

  1. 定期备份数据库

    bash

    # 使用mysqldump备份
    mysqldump -u root -p easy_admin > backup_$(date +%Y%m%d).sql
    
  2. 监控MySQL日志

    bash

    # 查看实时日志
    sudo tail -f /var/log/mysqld.log
    
  3. 定期更新MySQL

    bash

    # 检查更新
    sudo yum check-update mysql-community-server
    
    # 应用更新
    sudo yum update mysql-community-server
    

维护命令

bash

# 查看MySQL版本
mysql --version

# 查看运行状态
sudo systemctl status mysqld

# 停止MySQL
sudo systemctl stop mysqld

# 启动MySQL
sudo systemctl start mysqld

# 重启MySQL
sudo systemctl restart mysqld

总结

按照本文档步骤,您已在OpenCloudOS 9.4服务器上成功安装了MySQL数据库环境,并配置了安全的远程访问权限。您的NestJS应用现在可以使用配置的用户名和密码连接到数据库。