This page will assist you with troubleshooting a MySQL – 1044 “Access Denied” Error Message.
Troubleshooting the MySQL 1044 “Access Denied” Error
When you import a database using phpMyAdmin, generally you are importing a text file with a .sql extension.
Here is a section of code that may be in a .sql database backup. In this example, the database we are trying to import is named employees. — phpMyAdmin SQL Dump — version 22.214.171.124 — 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 employees; — ——————————————————– — — Table structure for table `employee_list` — CREATE TABLE IF NOT EXISTS `employee_list` ( `first_name` text NOT NULL, `last_name` 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 employees; MySQL said: Documentation #1044 – Access denied for user ‘training’@’localhost’ to database ’employees’ In this scenario, my cPanel username is training. Because of cPanel’s database naming conventions, all database names must begin with the cPanel username followed by an _. I cannot create a database named employees, however I can create a database named training_employees. The reason this import failed is because of the following line in the .sql file (shown above) CREATE DATABASE employees Again, I cannot create a database named employees, however I can create a database named training_employees. If I change the line that says: CREATE DATABASE so that it creates: training_employees instead of employees it will again fail with the following message: Error SQL query: CREATE DATABASE training_employees; MySQL said: Documentation #1044 – Access denied for user ‘training’@’localhost’ to database ‘training_employees’ When using cPanel, databases must be created within the cPanel itself. To fix the issue, you will need to: Create the: training_employees database within cPanel Comment out the: CREATE DATABASE command in my .sql file. To do this, simply change: CREATE DATABASE employees; to — CREATE DATABASE employees; 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 training_employees database, and then import as normal