You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel使用tenancyforlaravel多租户部署Cpanel后无法新建数据库如何解决

报错根本原因

你遇到的1044权限报错是Cpanel平台的默认权限机制导致的,和本地无限制的开发环境不同,Cpanel对数据库操作有两层强制限制:

  1. 所有数据库命名必须遵循「Cpanel主账号前缀_自定义名称」的规则,比如主账号为test的情况下,直接创建tenantnew命名的数据库会被系统直接拦截
  2. 默认创建的数据库用户没有全局CREATE DATABASE权限,仅能操作已经手动分配给该用户的数据库
修复步骤
  • 前置检查:登录Cpanel后台进入「MySQL® 数据库」页面,先确认你的账号数据库配额还有剩余,配额耗尽也会触发同类权限报错
  • 调整多租户数据库命名规则
    打开项目下的config/tenancy.php配置文件,找到租户数据库生成配置段,添加你的Cpanel主账号前缀,比如主账号为test就配置前缀为test_,确保所有自动生成的租户数据库都符合Cpanel的命名要求
  • 开通数据库用户的CREATE权限
    在Cpanel的「MySQL® 数据库」页面找到你的项目使用的数据库用户test,进入权限管理页,勾选CREATE权限后保存。如果没有全局权限配置入口,直接联系服务器提供商要求给该用户开通localhost地址下的CREATE DATABASE权限
  • 生效配置
    配置修改完成后执行php artisan config:cache清理配置缓存,再测试创建租户即可
无权限开通全局CREATE的备选方案

如果服务器提供商不允许开通数据库创建权限,可以调整多租户逻辑:提前在Cpanel批量创建符合命名规则的空数据库,把所有空数据库关联到你的项目数据库用户,创建租户时直接分配已有的空闲数据库,不需要程序动态生成数据库。

内容的提问来源于stack exchange,提问作者Maged ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:57:05