0

我最近用 cPanel 设置了 VPS。

我已经创建了一个用户并创建了一个数据库,现在我想将一个数据库导入到它上面。

但是,当我尝试时,我收到错误消息

#1044 - 用户 'user'@'localhost' 拒绝访问数据库 'database'

我怀疑这可以通过 WHM 解决,但我现在还不想试错。我将如何解决这个问题?

4

3 回答 3

1

当您使用 phpMyAdmin 导入数据库时​​,通常是通过导入带有.sql扩展名的文本文件来实现的。这是可能在 .sql 数据库备份中的一段代码。在您的示例中,您尝试导入的数据库名为 database。

-- phpMyAdmin SQL Dump
-- version 2.11.9.5
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Apr 02, 2010 at 08:01 AM
-- Server version: 5.0.81
-- PHP Version: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

CREATE DATABASE database;
-- --------------------------------------------------------
--
-- Table structure for table `table`
--

CREATE TABLE IF NOT EXISTS `table` (
`column1` text NOT NULL,
`column2` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

使用 phpMyAdmin 尝试导入此类文件时,您将收到类似于以下内容的错误消息:

Error

SQL query:

CREATE DATABASE database;

MySQL said: Documentation
#1044 - Access denied for user 'user'@'localhost' to database 'database'

在这种情况下,cPanel 用户名是user. 由于 cPanel 的数据库命名约定,所有数据库名称必须以 cPanel 用户名开头,后跟_. 使用这种格式,您只能创建一个名为user_database.

此导入失败的原因是 .sql 文件中的以下行...

CREATE DATABASE database;

同样,您不能创建一个名为 的数据库database,但是您可以创建一个名为 的数据库user_database

如果您更改显示的行:CREATE DATABASE以便它创建:user_database而不是database它将再次失败并显示以下消息:

Error

SQL query:

CREATE DATABASE user_database;

MySQL said: Documentation
#1044 - Access denied for user 'user'@'localhost' to database 'user_database'

使用 cPanel 时,必须在 cPanel 本身内创建数据库。

以下是纠正此问题的步骤:

  1. user_database在 cPanel 中创建数据库
  2. 注释掉CREATE DATABASE我的 .sql 文件中的命令

    为此,只需更改:

    CREATE DATABASE database;

    -- CREATE DATABASE database;

    您只需添加dash-dash-space到该行的前面以将其注释掉,这样它就不会被执行。

  3. 登录 phpMyAdmin,访问user_database数据库,然后正常导入。

于 2012-12-23T00:34:12.497 回答
0

在转储数据库之前,请授予对在 Cpanel 中使用该用户相同密码创建的新数据库用户的完全访问权限: grant all on database_name.* to database_user@localhost identified by 'password';

然后你需要修改你的.sql文件(可以使用notepad++),注释掉创建和使用新数据库的部分:

-- Database: dbname --
-- CREATE DATABASE IF NOT EXISTS dbname DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
-- USE dbname;

那么您应该可以将其导入到您的 Cpanel 中。

于 2013-10-08T17:43:24.773 回答
-1

为了正式...

您尝试导入的文件可能包含您没有权限的内容。我会检查权限,然后检查您要导入的文件。

于 2012-12-22T22:58:58.807 回答