简体   繁体   中英

Cannot import database using PhpMyAdmin with Cpanel on a VPS?

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:

  1. Create the user_database database within cPanel
  2. 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.

  3. 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM