无法在VPS上使用带有Cpanel的PhpMyAdmin导入数据库?

时间:2012-12-22 22:23:16

标签: mysql phpmyadmin cpanel vps whm

我最近设置了带有cPanel的VPS。

我创建了一个用户并创建了一个数据库,现在我想将数据库导入其中。

然而,当我尝试时,我收到错误消息

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

我怀疑这可以通过WHM修复,但我还不觉得是试错。 我该如何解决这个问题?

3 个答案:

答案 0 :(得分: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. 在cPanel
  2. 中创建user_database数据库
  3. 在我的.sql文件中注释掉CREATE DATABASE命令

    要做到这一点,只需更改:

    CREATE DATABASE database;

    -- CREATE DATABASE database;

    您只是将dash-dash-space添加到该行的前面以对其进行注释,以使其不会被执行。

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

答案 1 :(得分: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。

答案 2 :(得分:-1)

使其成为官方......

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