上一篇
景安虚拟主机数据库设置
- 虚拟主机
- 2025-08-07
- 4
景安虚拟主机数据库设置:登录控制面板,新建数据库与用户,将用户添加到数据库并授予权限,按向导完成配置即可使用
准备工作
事项 | 说明 |
---|---|
账号权限 | 确保已获取景安虚拟主机的管理账号及FTP/cPanel后台登录凭证 |
技术栈确认 | 明确网站使用的编程语言(如PHP/Java)及其对应的数据库类型(MySQL/SQL Server) |
版本匹配 | 核对本地开发环境的数据库版本与服务器预装版本是否一致 |
创建数据库
操作路径:
控制面板 → 数据库管理 → 初始化数据库
填写示例表:
字段名称 | 示例值 | 备注 |
---|---|---|
数据库名称 | mydb_test |
建议以项目名+功能标识命名 |
字符集 | utf8mb4 |
兼容emoji表情符号 |
排序规则 | utf8mb4_general_ci |
通用排序规则 |
存储引擎 | InnoDB | 事务型引擎,推荐生产环境使用 |
自动增量起始值 | 1 | 自增主键初始值 |
️ 重要提示:若选择手动建库,需通过phpMyAdmin执行以下SQL:
CREATE DATABASE mydb_test CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
创建数据库用户
核心配置项:
配置项 | 推荐做法 | 风险提示 |
---|---|---|
用户名格式 | appuser_xxx (不含特殊符号) |
避免与系统保留字冲突 |
密码强度 | 12位以上混合字符 | 禁止弱密码(如纯数字) |
允许远程访问 | 根据业务需求勾选 | 开启后需同步配置防火墙规则 |
关联数据库 | 仅勾选当前新建的数据库 | 防止跨库越权访问 |
授权管理
标准权限模板:
权限类型 | 适用场景 | SQL授予命令示例 |
---|---|---|
ALL PRIVILEGES | 全权管理(开发调试阶段) | GRANT ALL ON mydb_test. TO 'appuser_xxx'@'%'; |
SELECT,INSERT,UPDATE,DELETE | 仅读写权限(生产环境) | GRANT SELECT,INSERT,UPDATE,DELETE ON mydb_test. TO 'appuser_xxx'@'%'; |
USAGE | 仅连接权限(审计账户) | GRANT USAGE ON mydb_test. TO 'auditor'@'%'; |
最佳实践:完成授权后务必执行
FLUSH PRIVILEGES;
使权限立即生效
连接测试
️ 典型连接方式对照表:
客户端类型 | 连接地址格式 | 端口 | 备注 |
---|---|---|---|
PHP (PDO) | mysql:host=localhost;dbname=mydb_test |
3306 | 推荐使用Unix套接字加速 |
Navicat | hostname:3306 |
3306 | 需启用SSH隧道更安全 |
Python (PyMySQL) | host='localhost', port=3306, user='appuser_xxx', password='yourpass', db='mydb_test' |
3306 | 建议添加SSL加密参数 |
Django | DATABASES = { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb_test', ... } |
settings.py配置文件 |
注意事项
- 资源限制:共享主机单库最大容量通常为500MB,超限会导致写入失败
- 休眠机制:连续30分钟无操作的空闲连接将被自动终止
- 备份策略:建议每日自动备份+每周异地备份组合方案
- 升级影响:MySQL 5.7→8.0升级需重构DATETIME字段处理逻辑
相关问题与解答
Q1: 为什么本地能连上数据库但网站报”Access denied”?
A: 90%概率是权限未生效,请依次检查:
① 确认授权命令包含WITH GRANT OPTION
;
② 重启Web服务进程(如Apache/Nginx);
③ 检查SELinux状态是否拦截了非常用端口。
Q2: 如何快速定位慢查询导致的性能瓶颈?
A: 三步诊断法:
① 登录phpMyAdmin执行SHOW FULL PROCESSLIST;
查看实时慢查询;
② 分析mysqld.log
中的Warning级日志;
③ 启用EXPLAIN
分析高频