I have a recently set up VPS with cPanel.
I've made a user and created a database, and now I would like to import a database onto it.
However, when I try I get the error message
#1044 - Access denied for user 'user'@'localhost' to database 'database'
I suspect that this can be fixed with WHM, but I do not feel like trial and error just yet. How would I go about fixing this?
When you import a database using phpMyAdmin, normally you do so by importing a text file with a .sql
extension. Here is a section of code that may be in a .sql database backup. In your example, the database you are trying to import is named 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;
When using phpMyAdmin to attempt to import such a file, you will receive an error message similar to:
Error
SQL query:
CREATE DATABASE database;
MySQL said: Documentation
#1044 - Access denied for user 'user'@'localhost' to database 'database'
In this scenario, the cPanel username is user
. Because of cPanel's database naming conventions, all database names must begin with the cPanel username followed by _
. Using this format you can only creat a database named user_database
.
The reason this import failed is because of the following line in the .sql file...
CREATE DATABASE database;
Again, you cannot create a database named database
, however you can create a database named user_database
.
If you change the line that says: CREATE DATABASE
so that it creates: user_database
instead of database
it will again fail with the following message:
Error
SQL query:
CREATE DATABASE user_database;
MySQL said: Documentation
#1044 - Access denied for user 'user'@'localhost' to database 'user_database'
When using cPanel, databases must be created within the cPanel itself.
Here are the steps to correct thi sissue:
user_database
database within cPanel Comment out the CREATE DATABASE
command in my .sql file
To do this, simply change:
CREATE DATABASE database;
to
-- CREATE DATABASE database;
You are simply adding dash-dash-space
to the front of the line to comment it out so that it will not be executed.
Log into phpMyAdmin, access the user_database
database, and then import as normal.
Before dumping your database, grant full access to your new database user created in Cpanel by the same password of that user: grant all on database_name.* to database_user@localhost identified by 'password';
Then you need to modify your .sql file (can use notepad++), comment out the part where says create and use the new database:
-- Database:
dbname
--
-- CREATE DATABASE IF NOT EXISTS dbname
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
-- USE dbname
;
then you should be able to import it to your Cpanel.
To make it official...
The file you're attempting to import probably has something that you don't have permissions for. I would check permissions, then the file you're importing.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.