我已阅读并分析了无数问题和答案,主要围绕以下错误消息:
“用户'root'@'localhost'拒绝访问(使用密码:是)。”
其中大多数都处理丢失/遗忘/损坏的密码,并且有很多关于如何解决问题的建议。然而,它们似乎都没有适用于我的情况,但这并没有阻止我尝试一切。
历史:
我在我的Ubuntu 17.10上安装了LAMP,我刚刚放弃了Windows和WAMP。 MySQL安装了一个“root”密码,我可以使用它来登录phpMyAdmin和MySQL-Workbench,在那里我可以不受限制地执行。一切都很好,我没有收到任何错误。 Apache也正常运行,我已经用一些当前的web项目填充了系统,这些项目都按照预期在“localhost”下运行。
最后,今天我尝试启动一个使用PHP访问MySQL的项目,这是我在Ubuntu下编码数百次的事情我无法通过mysqli_connect()请求生成的上述错误。我已经更改了密码,创建了其他用户,摆弄了IP地址等等。一切都运行良好,正如phpMyAdmin和MySQL Workbench中预期的那样,但在使用PHP时却没有。
必须有一个简单的解释,但我对Linux不够流利,不知道那是什么。
我希望有人可以推荐一些尝试。
设定:
数据库服务器
Server: Localhost via UNIX socket
Server type: MySQL
Server version: 5.7.21-0ubuntu0.17.10.1 - (Ubuntu)
Protocol version: 10
User: root@localhost
Server charset: UTF-8 Unicode (utf8)
网络服务器
Apache/2.4.27 (Ubuntu)
Database client version: libmysql - mysqlnd 5.0.12-dev - 20150407 - $Id: 38fea24f2847fa7519001be390c98ae0acafe387 $
PHP extension: mysqliDocumentation curlDocumentation mbstringDocumentation
PHP version: 7.1.15-0ubuntu0.17.10.1
成功运行
Version information: 4.6.6deb5
答案 0 :(得分:0)
正如我所说,我是Linux的新手,默认的用户安全功能需要一些时间来适应。显然,当我安装MySQL时,我的用户名和密码(以root身份?)用于限制对/ var / lib下三个MySQL文件夹的访问。
一旦我想到这一点,我使用相同的名称/传递在phpMyAdmin中构建了一个MySQL用户,突然我的所有后端例程都工作了。也许这与使用root用户密码安装MySQL有关,但我很困惑为什么我的root / pass在phpMyAdmin中工作但不能从代码中工作。
当然,对所有这些都有一个简单的解释,也许有人可以解释它。但就目前而言,如果你是像我这样缺乏Linux知识的人,你就会遇到这个问题,希望这对你有用。