¿Cómo conectar y crear una base de datos en MySQL?

17

Quiero instalar MySQL y crear una base de datos con el siguiente código:

sudo apt-get install mysql-server
mysqladmin -h localhost -u {username} -p create lrs

Recibo el siguiente mensaje después de ejecutar la segunda línea:

    Enter password:
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user '{username}'@'localhost' (using password: YES)'

¿Cuál es el problema?

usuario543489
fuente
1
Si realmente utilizó estos 2 comandos, ¿dónde OTORGÓ PRIVILIGIOS para {nombre de usuario} (si no es admin / root) para poder acceder a una base de datos?
Rinzwind

Respuestas:

26

Después de haber instalado MySQL, debe configurar la contraseña de root de mysql . Para hacerlo:

  1. Ingrese el siguiente comando en una terminal:

    mysql -u root

  2. Ahora debería abrir la consola mysql . Y escriba la siguiente línea:

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

Para salir de la consola mysql , ingrese exit.

Ahora debe crear la base de datos con el usuario root . Para hacerlo:

  1. Abra mysql desde la terminal:

    mysql -u root -p

  2. Ingrese la contraseña creada anteriormente.

  3. Ingrese la siguiente línea:

    CREATE DATABASE yourdatabasename;

Si ingresa SHOW DATABASES;, debería verlo en la lista. Si es así, ¡tiene una base de datos lista para usar!

Lucio
fuente
mysql -u rootme daERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Nicolas Raoul
Ese error significa que ya tiene un rootusuario y que tiene una contraseña. Si olvidó la rootcontraseña, lea la documentación de MySQL .
Lucio
1

Debe conectarse a MySQL utilizando el usuario raíz y la contraseña asociada. Si necesita configurarlos, use el siguiente comando:sudo mysqladmin -u root -h localhost password 'mypassword'

A partir de ahí, puede configurar cuentas adicionales siguiendo este documento: Cómo crear un nuevo usuario y otorgar permisos en MySQL

Bert
fuente
1
Copié sudo mysqladmin -u root -h localhost password 'mypassword'y lo pegué en mi terminal y recibí el mensaje Access denied for user 'root'@'localhost' (using password: NO).
user543489
@Bert Este código no funcionará. El password 'mypassword'es un error, que debería ser-password 'mypassword'
Lucio
¿Debería reemplazarse algo con 'mypassword'?
user543489
Ejecuté sudo mysqladmin -u root -h localhost -password 'mypassword', pero lo consigo Access denied for user 'root'@'localhost' (using password: YES).
user543489
@ user543489 ¿Qué sucede si ingresas mysql -u root?
Lucio
1

Esto es extraño porque desde 12.04 (suponiendo que está ejecutando Kubuntu 12.04), MySQL ha sido predeterminado. Parece que te faltan algunos pasos intermedios, así que veamos esto:

Primero, como mencionaste, hagamos una instalación,

sudo apt-get install mysql-server

Después de instalarlo, intentemos una pequeña prueba,

sudo netstat -tap | grep mysql

Cuando ejecute esto, debería ver esta respuesta,

tcp        0      0 localhost:mysql         *:*                LISTEN      2556/mysqld

Si esto no se ejecuta correctamente, ejecute este comando de reinicio,

sudo service mysql restart

Ahora para configurar el servidor.

Vamos /etc/mysql/my.cnfa configurar los ajustes básicos. Esto incluye el archivo de registro, el número de puerto, etc. Por ejemplo, para configurar MySQL para que escuche las conexiones de los hosts de la red, cambie la directiva bind-address a la dirección IP del servidor:

bind-address            = 192.168.0.5

Después de esto, reinicie el demonio MySQL,

sudo service mysql restart

Si desea cambiar la contraseña de root de MySQL, ejecute esto:

sudo dpkg-reconfigure mysql-server-5.5

El demonio se detendrá y se le pedirá una nueva contraseña.

Una vez que haya terminado, debería estar configurado y algunas búsquedas en Google le enseñarán cómo crear una base de datos.

Fuente: La Guía del Servidor Ubuntu

sharksfan98
fuente
0

Ejecute este comando:

sudo dpkg-reconfigure mysql-server-5.5

(5.5 es el número de versión, adapte si tiene una versión diferente)

Esto le permitirá establecer su contraseña de root de MySQL, que luego puede usar con mysqladminy mysqlcomandos.

Nicolas Raoul
fuente
-1

Después de haber instalado MySQL, debe configurar la contraseña de root de mysql. Para hacerlo:

Enter the next command in a terminal:

mysql -u root -p

Enter Password: (Enter your password here).
Swathi S
fuente
Esto no aporta nada que no se haya dicho ya en la respuesta aceptada.
guntbert
-1

Sé que esto tiene 3 años, pero también tuve este problema y quería publicar mi respuesta en caso de que alguien más haga la misma búsqueda que yo.

mysqladmin: connect to server at 'localhost' failed

Esto indica que su usuario no tiene permiso para conectarse a la base de datos en sí, incluso antes de iniciar sesión; no el usuario de la base de datos, tu usuario real de Linux. Ejecuta todo como superusuario: sudo mysql -u root -p

Solo root (el usuario de Linux, o un usuario con privilegios de sudo) puede iniciar sesión en mysql como root (el usuario de la base de datos). No pude encontrar ningún lugar que documentara esto, pero la experimentación demostró que era el caso. Puede crear un nuevo usuario con los mismos derechos que el usuario raíz y eso no estará restringido.

sudo mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

Ahora "newuser" (o cualquier nombre que elija) puede iniciar sesión como sin la necesidad de sudo y puede usarlo para todas las necesidades administrativas de su base de datos.

WizardStan
fuente
1
Usar la palabra probablyen una respuesta aquí está mal visto.
WinEunuuchs2Unix
Bueno, ciertamente no puedo decir que es sin probarlo, ¿ahora puedo?
WizardStan