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
De acuerdo con las instrucciones de destrucción , los argumentos deben tener guiones dobles. ( http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html )
Prueba esto:
mysqldump --user=root --password=psdfas@N$pr!nT --databases app_pro > /srv/DUMPFILE.SQL
Las respuestas hasta ahora evitan el punto en el que no debes poner la contraseña en la línea de comandos. Consulte las Pautas para la seguridad de las contraseñas de los usuarios finales de MySQL para saber cómo hacerlo sin revelar su contraseña.
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 (!)