Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql.connector.errors.ProgrammingError:1045(28000):拒绝用户访问';xpto&x27@';本地主机';(使用密码:是)_Php_Python_Mysql_Mysql Python - Fatal编程技术网

Php mysql.connector.errors.ProgrammingError:1045(28000):拒绝用户访问';xpto&x27@';本地主机';(使用密码:是)

Php mysql.connector.errors.ProgrammingError:1045(28000):拒绝用户访问';xpto&x27@';本地主机';(使用密码:是),php,python,mysql,mysql-python,Php,Python,Mysql,Mysql Python,当我试图使用python mysql.connector版本8.0.15访问mysql服务器(MariaDB v10.1.37)时,我遇到了一个问题。 我正在尝试从数据库读取数据,但在尝试连接到mysql服务器时出错。 python脚本的代码是: import mysql.connector from mysql.connector import errorcode mysql_config = { 'user':'xpto', 'password':'1234', '

当我试图使用python mysql.connector版本8.0.15访问mysql服务器(MariaDB v10.1.37)时,我遇到了一个问题。
我正在尝试从数据库读取数据,但在尝试连接到mysql服务器时出错。
python脚本的代码是:

import mysql.connector
from mysql.connector import errorcode

mysql_config = {
    'user':'xpto',
    'password':'1234',
    'host':'127.0.0.1', # I tried too 'localhost'
    'port':3306,        # I tried too '3306'
    'database':'manta'
}
print(mysql.connector.__version__)
conn = mysql.connector.connect(**mysql_config)
conn.close()
我得到的错误是:

mysql.connector.errors.ProgrammingError:1045(28000):访问被拒绝 对于用户“xpto”@“localhost”(使用密码:YES)

所以我开始调试代码

要检查my mysql是否正在运行,请执行以下操作:

  • 在shell上,我执行'mysql-uxpto-p1234'进入服务器,并在我的数据库中写入
  • 我在lampp上执行了一个php脚本,没有任何错误。该脚本创建与mysqli的连接并在DB上写入。 通过phpAdmin和shell,我检查了这篇文章
我很快向telnet和netstat检查mysql端口是否为3306

我的用户的权限是:

+-----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for xpto@localhost                                                                                                              |
+-----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'xpto'@'localhost' IDENTIFIED BY PASSWORD '*F1D0B735317D750FFFFD3FE51E571EFBF4FFFF1D' WITH GRANT OPTION |
+-----------------------------------------------------------------------------------------------------------------------------------------+
另一种通过python脚本在my db上编写的方法是执行子流程:

from subprocess import Popen, STDOUT

p = Popen(["mysql", "-u", "xpto", "-p1234"],
          stdin=PIPE, stderr=STDOUT)
p.communicate(b"exit")
if p.returncode != 0:
    print('incorrect password')
我执行这个脚本没有任何问题

另一种方法是将python脚本的权限更改为777,但错误仍然存在

更多信息:
我在/opt/lampp/htdocs/context上运行php脚本,在~/Desktop-context上运行python脚本

问题:
因此,我试图理解为什么不能使用mysql.connector连接到mysql服务器。
为什么会发生错误?我正在传递正确的用户和密码。

请您帮助我理解为什么会发生此问题?

我希望
F1D0B735317D750FFFFD3FE51E571EFBF4FFFF1D
不是您的实际密码。只是想确保你没有泄露秘密。你运行的是什么SQL server,MySQL还是MariaDB?以防万一,谢谢你的关注。不。那个散列不是我的实际密码:)但是谢谢。我使用的是MariaDB,版本10.1.37。