【问题标题】:How do i create a table in a mysql database when i dont have 'create' permission from my host?当我没有主机的“创建”权限时,如何在 mysql 数据库中创建表?
【发布时间】:2016-04-04 20:37:06
【问题描述】:

所以基本上我已经注册了几个免费的主机,他们提供免费的 SQL 数据库进行测试。 但问题是他们为这些免费数据库创建的 user_id 似乎从来没有“CREATE”权限。

我正在使用 PHP 和 PDO 连接到数据库,我需要使用 PDO 以编程方式创建一个表。

如何获得我的 user_id 的“CREATE”权限或创建具有所需权限的新用户?

我使用 phpmyadmin 手动连接到这些数据库。

编辑:请注意,我可以使用 PHPMyAdmin 创建表,但不能通过 PDO。当我使用 PDO 时,服务器告诉我我没有 CREATE 权限

【问题讨论】:

  • 如果宿主不提供CREATE TABLE权限,则不能CREATE TABLE
  • 我不敢相信。那么你得到的数据库应该是什么原因呢?
  • 我可以用 phpmyadmin 添加表,但显然不能通过 PDO

标签: php mysql pdo phpmyadmin hosting


【解决方案1】:

如果您可以通过 PHPMyAdmin 而不是通过您自己的 PHP 脚本创建表,那么可能是因为 PHPMyAdmin 使用了不同的 MySQL 用户。 在您的 PHPMyAdmin 中转到顶部的“SQL”按钮并输入以下查询:

SELECT CURRENT_USER();

它会显示你在 PHPMyAdmin 中的登录用户,尝试在你的 PHP 脚本中使用这个用户。

如果您不想使用同一用户。然后在 SQL 查询中执行:

GRANT ALTER, CREATE ON your_db_name TO 'your_php_user'@'localhost';

这将为您的用户授予 CREATE 和 ALTER TABLE 权限。

【讨论】:

  • 你是对的。当我输入“SELECT CURRENT_USER()”时,它会显示不同的用户名。但是当我使用“SQL”选项卡键入授权查询时,它显示“授权命令拒绝。
  • 根据您在此处的报告,您的主机似乎在做一些奇怪的事情来限制或限制您的访问。您应该就此事向您的托管服务提供商的支持团队寻求帮助;看来我们无法改变他们的基础设施。
猜你喜欢
  • 2014-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 2013-08-18
  • 1970-01-01
相关资源
最近更新 更多