为什么 MariaDB 拒绝我的 SQL 备份?

为什么 MariaDB 拒绝我的 SQL 备份?

我不得不将我的 Linode 重建为 Debian 9,因为我无法从我之前的问题中获取源代码来工作。

我用了本设置指南重新配置并重新安装所有内容到新的 Debian 发行版。

但是,在执行此操作之前,我使用以下命令进行了备份

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

并将其保存到我的外部硬盘驱动器上。

设置 MariaDB 并运行安全脚本来创建 root 密码、更改主机名和主机文件、拒绝来自本地主机的访问后,我尝试运行以下行:

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

请注意,我已经位于备份所在的目录中。我得到的错误是

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

有没有办法解决这个问题,或者我应该创建一个新数据库并只使用我之前导出并导入的 XML?

答案1

授予备份用户访问权限,如下所示,

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

MariaDB [(none)]> flush privileges;

然后再试一次。

答案2

wordpress您可能在 MariaDB 中还没有用户。您可能需要比您的wordpress用户恢复备份更广泛的权限。我建议以数据库用户身份恢复root。在 Debian 系统上,登录 MariaDB 的最简单方法是以用户身份登录系统时不带任何参数root运行:mysqlroot

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

注意:做不是指定localhost您想要通过 Debian 系统上默认设置的 unix 域套接字进行连接。无需指定用户名/密码,因为有权访问 unix 域套接字的每个人(默认情况下应该只有系统用户root)自动拥有rootMariaDB 中的权限。

相关内容