ver usuarios usuario recuperar crear contraseñas contraseña cambiar mysql bash mysqldump

usuarios - recuperar contraseña root mysql



la contraseña de mysql está estropeando mi volcado (8)

ok, así que necesito hacer un mysqldump de una base de datos y esto es lo que tengo

mysqldump -uroot -psdfas@N$pr!nT --databases app_pro > /srv/DUMPFILE.SQL

pero estoy recibiendo este error

-bash: !nT: event not found

Parece estar teniendo problemas con la contraseña ... de cualquier otra manera a mysql dump


Como ya han dicho otros, nunca debe especificar una contraseña en la línea de comandos ya que cualquier otro proceso en la máquina puede leerla. Una solución simple y efectiva para mysql es usar un archivo .my.cnf en el directorio de inicio del usuario que ejecuta mysql o mysqldump.

Primero crealo de forma segura:

sudo touch /root/.my.cnf sudo chown 0:0 /root/.my.cnf sudo chmod 600 /root/.my.cnf

luego asegúrese de que /root/.my.cnf contenga algo como esto:

[mysql] user=root password=sdfas@N$pr!nT [mysqldump] user=root password=sdfas@N$pr!nT

También puede y debe hacer esto para su cuenta mysql "normal" (no root). Entonces, nunca más tendrá que escribir su contraseña y estar seguro. Simplemente coloque un .my.cnf en su propio directorio de inicio con sus credenciales y asegúrese de que solo usted pueda leer y escribir en el archivo:

touch ~/.my.cnf chmod 600 /root/.my.cnf




Necesitas escapar del ''!'' en la contraseña: -

-psdfas@N$pr/!nT


Ponga -psdfas@N$pr!nT en comillas simples:

mysqldump -uroot ''-psdfas@N$pr!nT'' --databases app_pro > /srv/DUMPFILE.SQL

El problema es que bash está interpretando el ! . Las cadenas en comillas simples no se interpretan.


Puedes desactivar la expansión de la historia:

set +o histexpand


Tratar

mysqldump -u root --password=''sdfas@N$pr!nT'' app_pro > /srv/DUMPFILE.SQL


cuando usas! en una línea de comando, significa, encuentre el último comando de ejecución que comienza con las siguientes letras y colóquelo aquí ... vaya a su línea de comando y ejecute "historial" y luego ejecute algunos otros comandos, cd, ls, lo que sea. luego vaya! h se ejecutará el último comando que ejecutó que comenzó con la letra ''h'' (en este caso, "historial").

tendrás que escapar de esa explosión (!)