¿Prueba las credenciales de MySQL desde la línea de comandos de Linux?


Respuestas:


5

@ Phil's Answer y @ Mr.Brownstone's Answer deberían ser suficientes para su pregunta, por lo tanto, +1 para ambos.

Para lo siguiente, supongamos que está iniciando sesión con nombre de usuario myuser

Una vez que se haya conectado a mysql, debe ejecutar la siguiente consulta:

SELECT USER(),CURRENT_USER();
  • USER () informa cómo intentó autenticarse en MySQL
  • CURRENT_USER () informa cómo se le permitió autenticarse en MySQL

A veces son diferentes. Esto puede darle una idea de por qué puede iniciar sesión en mysql.

Aquí hay otra consulta que debe ejecutar:

SELECT CONCAT('''',user,'''@''',host,'''') dbuser,password
FROM mysql.user WHERE user='myuser';

Esto le mostrará las formas en que puede iniciar sesión como myuser.

Si ve 'myuser'@'localhost', puede autenticarse desde el servidor DB.

Si ve 'myuser'@'127.0.0.1'y no ve 'myuser'@'localhost', puede volver a autenticarse desde el servidor DB pero debe especificarlo --protocol=tcpdesde la línea de comandos.

Si ve 'myuser'@'%', puede hacer inicios de sesión remotos desde cualquier servidor.

Si ve 'myuse'r@'10.20.30,%', puede hacer inicios de sesión remotos solo desde 10.20.30.% Netblock.

Una vez que vea lo que 'mysql.user' tiene para su usuario, es posible que desee permitir o restringir que myuser inicie sesión de una manera y no de la otra.

Si simplemente desea verificar si la contraseña myuseres whateverpassword, puede hacer lo siguiente:

SELECT COUNT(1) Password_is_OK FROM mysql.user
WHERE user='myuser'
AND password=PASSWORD('whateverpassword');

Puede verificar desde la línea de comandos de la siguiente manera:

PASSWORDISOK=`mysql -uroot -p... -ANe"SELECT COUNT(1) Password_is_OK FROM mysql.user WHERE user='myuser' AND password=PASSWORD('whateverpassword')"`

Si no lo está rooty desea probar myuser solamente, puede hacer esto:

PASSWORDISOK=`mysqladmin -umyuser -pwhateverpassword ping | grep -c "mysqld is alive"`

Si obtiene 1, la contraseña de myuser se verifica como buena.


13
mysql -h host -u user -p<whatever> -e"quit"

Esto le permite usar la misma cadena de conexión que usa para enviar consultas mediante programación al servidor. Puede agregar || exit 1al final para salir automáticamente en argumentos no válidos. También es posible que desee redirigir stderr a /dev/nullsi no le gusta el mensaje de error MySQL generado automáticamente.


6

Puede usar el siguiente comando (suponiendo que tiene configurado mysql en su RUTA):

mysql -h host -u usuario -p

Solo reemplaza host y el usuario con los valores correctos y luego se le pedirá su contraseña.


2
Quiero comprobar mediante programación. Como algo que devuelve verdadero o falso.
Jake Wilson

2
mysql --user=user_name --password=your_password dbname

¿Su pregunta es tan simple o hay un caso específico que necesita probar?

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.