在将我的 vps 升级为 Ubuntu 16.04 后(大约一个月后),我需要使用在那里运行的 MySQL 服务器。实际上它是一个 MariaDB 实例,但似乎没有什么区别。由于我无法像往常一样使用 ssh 隧道连接,我尝试直接从远程 shell 访问并使用mysql
cli 界面,它可以工作。问题是我需要使用本地 IP 的 MySQL 服务器(用于远程隧道或 php 上的 mysqli)。尝试强制使用 tcp 连接时,mysql --protocol tcp
我得到了ERROR 1698 (28000): Access denied for user 'root'@'localhost'
,而 php 给出了此警告:mysqli::__construct(): (HY000/1698): Access denied for user 'root'@'localhost'
。
我尝试清除 MariaDB,重新安装它,尝试使用 MySQL 包本身,删除每个 mysql 配置和文件,但没有结果。
配置总是包含bind-address = 127.0.0.1
相关端口并且没有注释但似乎没用。
有任何想法吗?
答案1
我找到了。有一个unix_socket
与 root 帐户关联的插件。我刚刚运行update user set plugin='';
并重新启动了该mysql
进程,它就起作用了。