我最近设置了带有cPanel的VPS。
我创建了一个用户并创建了一个数据库,现在我想将数据库导入其中。
然而,当我尝试时,我收到错误消息
#1044 - 用户'用户'@'localhost'拒绝访问数据库'数据库'
我怀疑这可以通过WHM修复,但我还不觉得是试错。 我该如何解决这个问题?
答案 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本身内创建数据库。
以下是纠正这个问题的步骤:
user_database
数据库
在我的.sql文件中注释掉CREATE DATABASE
命令
要做到这一点,只需更改:
CREATE DATABASE database;
到
-- CREATE DATABASE database;
您只是将dash-dash-space
添加到该行的前面以对其进行注释,以使其不会被执行。
登录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)
使其成为官方......
您尝试导入的文件可能包含您没有权限的文件。我会检查权限,然后检查您要导入的文件。