我为这个蹩脚的问题道歉。Debian 9.8 改变了一些东西并且mysql
坏了但我似乎无法修复它。
我在 Debian 9.8 上安装了 MySQL,现在安装了 MariaDB 10.1。安装后我运行mysql_secure_installation
并设置 root 密码,删除临时数据库并禁止匿名用户。我还将我的用户添加到 mysql 组,注销然后重新登录。
以下在带有 MariaDB 10.1 的 Debian 上失败,但在带有 MariaDB 10.1 的 Fedora 29 上有效:
$ mysql -uroot -pXXXXXXXXXXXXXXXXXXXXXXXX
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
$ sudo mysql -uroot -pXXXXXXXXXXXXXXXXXXXXXXXX
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
我认为问题可能是如何允许用户登录 MySQL?所以我就用sudo su -
提升,然后登录mysql执行GRANT
语句root
。
Stack Overflow 修复程序没有解决问题。事实上,我现在似乎无法从 root 登录。叹...
我现在认为问题可能与这个 MariaDB 知识库有关,但我不知道如何解决。仅在新安装时保护无密码根帐户:
仅在新安装时保护无密码根帐户
与 Debian 中的旧 MySQL 软件包不同,Debian 中的 MariaDB 10.0 及更高版本在新安装时使用 unix 套接字身份验证以避免 root 密码管理问题,从而更安全且更易于与云时代的供应系统一起使用。
这只会影响新安装。从旧版本升级将继续使用任何已经存在的身份验证和用户帐户。然而,知道这一点是件好事,因为它会影响依赖系统的升级,通常例如要求用户重写他们的 Ansible 脚本和类似任务。新功能比旧功能容易得多,因此调整它几乎不需要做任何工作。
所以他们记录了他们已经做了一些事情,但他们没有记录如何修复它。叹...
如何使用用户名和密码mysql
从命令行运行?root
Debian 9 需要修复什么?
如果你
sudo su -
root了,你能不用密码登录吗?如果没有,您总是可以通过跳过授权表来登录。请参见本教程中的第 2 步和第 3 步。进入后,您需要将 root@localhost 用户的身份验证插件改回“mysql_native_password”:
请在此处查看相关文档。