这是我今天将 Lubuntu 版本升级到 18.04 时遇到的问题。更新后,系统删除了我的 MariaDB 包。当我尝试再次安装它们时,安装程序说会将当前安装移动到另一个文件夹(所以我还不担心数据丢失,但在解决这个问题后我需要一种方法来导入数据。)。
然而,在我安装了新的 MariaDB 包之后,它并没有提示我分配 root 密码(我以为它与之前的安装相同)然而我错了。
我在网上搜索了如何重置 root 密码,但是在模式下启动服务--skip-grant-tables
并为我的 MariaDB 数据库分配新密码后,重启后仍然无法登录。(我需要重新启动,因为手动启动服务不起作用)。
~$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
我非常感激任何关于这个问题的帮助,因为它妨碍了我的工作。
答案1
尝试使用 sudo 运行它,并且不使用密码开关,如下所示
sudo mysql -u root
并在 sudo 要求身份验证时正常输入用户密码。
这有一个特定的原因,因为 mariadb 现在默认配置为使用“Unix 套接字”身份验证插件,因此 mariadb 的“root”用户使用与操作系统“root”用户相同的凭据。
您可以从用户配置中更改此行为,但请注意,它可能会破坏依赖于此的其他进程或使用 MariaDB/MySQL 的新软件的安装。
另一种方法是设置一个具有与 root 相同权限的新用户,并将其设置为不使用套接字身份验证插件,这样您就不会改变 root 用户,而是可以使用用户和密码登录。
希望能帮助到你。
参考: