¿Por qué MariaDB rechaza mi copia de seguridad SQL?

¿Por qué MariaDB rechaza mi copia de seguridad SQL?

Tuve que reconstruir mi Linode a Debian 9 ya que no pude hacer funcionar las fuentes de mi pregunta anterior.

solíaesta guía de configuraciónpara reconfigurar y reinstalar todo en la nueva distribución Debian.

Sin embargo, antes de hacer esto, hice una copia de seguridad usando

$ mysqldump --add-drop-table -h vps.sensation-experience.com -u wordpress -p wordpressDB > backup.sql

y lo guardé en mi disco duro externo.

Después de configurar MariaDB y ejecutar el script seguro para crear una contraseña de root, cambiar el nombre de host y los archivos de host y negar el acceso desde localhost, intenté ejecutar esta línea:

mysql --user wordpress --password < backup.sql

Tenga en cuenta que ya estaba en el directorio donde se encontraba la copia de seguridad. El error que me sale es

 ERROR 1698 (28000): Access denied for user 'wordpress'@'localhost'

¿Hay alguna manera de solucionar esto, o debería crear una nueva base de datos y simplemente usar un XML que exporté previamente e importarlo en su lugar?

Respuesta1

Dar acceso al usuario de respaldo como se muestra a continuación,

MariaDB [(none)]> GRANT LOCK TABLES, SELECT ON *.* TO 'wordpress'@'localhost' IDENTIFIED BY 'your-password';

MariaDB [(none)]> flush privileges;

Y después de eso inténtalo de nuevo.

Respuesta2

Probablemente aún no tengas un wordpressusuario en MariaDB. Y es posible que necesite permisos más amplios que los que wordpresstiene su usuario para restaurar una copia de seguridad. Recomiendo restaurar como usuario de la base de datos root. En los sistemas Debian, la forma más fácil de iniciar sesión en MariaDB es rootejecutar mysqlsin ningún argumento mientras se inicia sesión en el sistema como usuario root:

root@tux:~$ echo "CREATE DATABASE wordpressDB;" | mysql
root@tux:~$ mysql < backup.sql

Nota: hacernoEspecifique localhostcómo desea conectarse a través del socket de dominio Unix que se configura de forma predeterminada en los sistemas Debian. No es necesario especificar un nombre de usuario/contraseña ya que todos los que tienen acceso al socket del dominio Unix (que de forma predeterminada deberían ser solo los usuarios del sistema root) automáticamente tienen rootpermisos en MariaDB.

información relacionada