我不得不将我的 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
运行:mysql
root
root@tux:~$ echo "CREATE DATABASE wordpressDB;" | mysql
root@tux:~$ mysql < backup.sql
注意:做不是指定localhost
您想要通过 Debian 系统上默认设置的 unix 域套接字进行连接。无需指定用户名/密码,因为有权访问 unix 域套接字的每个人(默认情况下应该只有系统用户root
)自动拥有root
MariaDB 中的权限。