MySQL: 1044 Access Denied for user… to database

1044 Access Denied for user… to database

Mensaje de error de MySQL

Este artículo te ayudará a solucionar el problema que reporta el mensaje 1044 Access Denied for user. Cuando importas una base de datos utilizando phpMyAdmin, por lo general importas un archivo de texto con extensión .sql . A continuación tenemos una porción del código en respaldo .sql de base de datos. En este ejemplo, la base que tratas de importar lleva el nombre de empleados.

— phpMyAdmin SQL Dump
— version 2.11.9.5
— http://www.phpmyadmin.net

— Host: localhost
— Generation Time: Apr 02, 2012 at 08:01 AM
— Server version: 5.0.81
— PHP Version: 5.2.6
SET SQL_MODE=»NO_AUTO_VALUE_ON_ZERO»;
CREATE DATABASE empleados;
— ——————————————————–

— Table structure for table `lista_empleados`

CREATE TABLE IF NOT EXISTS `lista_empleados` (
`nombre` text NOT NULL,
`apellido` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Cuando le pides a MySQL que importe el archivo, recibirás un mensaje similar al siguiente:

Error
SQL query:
CREATE DATABASE empleados;
MySQL said: Documentation
#1044 – Access denied for user ‘usuario1’@’localhost’ to database ‘empleados’

En este caso, el usuario de cPanel es usuario1. Debido a las convenciones de nombrado en las bases de datos con cPanel, todas las bases de datos deben iniciar con el usuario asignado a cPanel seguido de un _ . No puedo crear una base de datos que se llame empleados, pero sí puedo crear una base de datos que se llama usuario1_empleados.

Entonces, la razón por la que falla es que CREATE DATABASE empleados;
no es posible, pero sí será posible la siguiente línea:
CREATE DATABASE usuario1_empleados;

Sin embargo, al editar la línea del archivo volveremos a tener un mensaje de error al intentar importar:

Error
SQL query:
CREATE DATABASE usuario1_empleados;
MySQL said: Documentation
#1044 – Access denied for user ‘usuario1’@’localhost’ to database ‘usuario1_empleados’

La razón de esto es:

Cuando se utiliza cPanel, las bases de datos deben crearse dentro del cPanel, antes de ingresar al phpMyAdmin.

  1. Entra a MySQL dentro de cPanel y crea la base usuario1_empleados.
  2. Asigna usuario y permisos a la base.
  3. Comenta o elimina la línea: CREATE DATABASE en el archivo extensión sql. Eso lo puedes hacer colocando dos guiones enfrente del inicio mismo de la línea — CREATE DATABASE empleados; Con eso será suficiente para que el comando no se ejecute.
  4. Ahora sí, entra a phpMyAdmin, accesa la base usuario1_empleados y realiza la importación de manera normal.

TIP: El archivo extensión sql puedes editarlo con Notepad de Windows.