创建数据库与数据库账号权限
在宝塔或命令行新建 utf8mb4 数据库,创建独立账号并按最小必要范围授权。
一、创建数据库
在宝塔「数据库 → 添加数据库」中新建,字符集选 utf8mb4;也可用命令行创建:
CREATE DATABASE kfdb
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
utf8mb4 可完整保存中文与表情符号,若库里出现问号乱码,多为建库时用了旧字符集。
二、创建独立账号
本系统只操作自己的库,建议每个站点配一个独立账号,避免多站共用一个高权限账号:
CREATE USER 'kfdb'@'localhost' IDENTIFIED BY '替换为高强度密码';
- 主机用
localhost表示仅本机可连,这是最安全的选择。 - 需要远程连接时才改为
'账号'@'%',并在防火墙放行来源 IP;风险较高,用完及时收紧。 - 密码用大小写字母、数字与符号组合,长度 12 位以上。
三、授予权限
授权时限定到指定库,让账号只在自己的库上操作:
GRANT ALL PRIVILEGES ON kfdb.* TO 'kfdb'@'localhost';
FLUSH PRIVILEGES;
也可按最小必要原则细分:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP
ON kfdb.* TO 'kfdb'@'localhost';
安装向导需要建表,因此首次安装要包含 CREATE、ALTER、INDEX、DROP;上线稳定后可回收建表类权限。
四、验证与常见问题
检查账号实际权限:
SHOW GRANTS FOR 'kfdb'@'localhost';
| 现象 | 原因 | 处理 |
|---|---|---|
| 连接被拒 | 主机段与来源不符 | 核对 localhost 与 IP,检查防火墙 |
| 权限不足 | 未授权或只授权了其他库 | 重新 GRANT ... ON 库名.* |
| 中文乱码 | 连接字符集不一致 | 库与连接统一 utf8mb4 |
若你此前用 IIS 与 SQL Server,账号与库通过“用户映射 + db_owner”关联,在 MySQL 中等价于上述 GRANT 授权。