簡體   English   中英

Ubuntu MYSQL 無法從 python 腳本連接

[英]Ubuntu MYSQL cannot connect from python script

我需要為我的項目創建一個 mysql 數據庫。 我有一個 ubuntu 服務器,並按照本指南安裝所需的模塊:

https://www.javahelps.com/2018/10/install-mysql-with-phpmyadmin-on-ubuntu.html

安裝所有內容后,我可以使用瀏覽器訪問 phpmyadmin 192.168.3.146/phpmyadmin 工作沒有任何問題: phpmyadmin home screen

但問題是當我嘗試通過 python 代碼訪問數據庫時,它不起作用。 我的程序在 mysql.connector.connect 之后掛起並且永遠不會打印下一個打印語句。

print("trying MYSQL")
myConnection = mysql.connector.connect(host=192.168.3.146, user='test_user', passwd='test_user123', db='test', autocommit=True)
print("Connection ID:", myConnection)
print(myConnection)

我以前已經成功地以這種方式將 mysql 連接到在 Raspbian 上創建的 mysql 服務器,並且沒有任何問題。 看來 UBUNTU 就沒有那么簡單了。

如果我可以通過網絡瀏覽器輕松訪問數據庫但python程序失敗,請有人建議我可能是什么問題

更新

試圖在配置文件中注釋掉綁定地址,但仍然沒有運氣。 配置文件:在此輸入圖片描述

我使用以下命令允許防火牆通過端口 3306:

sudo ufw allow 3306

有一些進展。 現在我的 Python 程序沒有掛在 mysql 連接上,而是給了我錯誤:

ERROR 1130 (HY000): Host '192.168.3.251' is not allowed to connect to this MySQL server

首先,我不確定這個IP是從哪里來的192.168.3.251。 用於連接數據庫的機器配置了靜態 IP,它是 192.168.4.200。 我不知道為什么它說 192.168.3.251

python 腳本是否在另一台機器上運行? 如果是這樣,也許問題在於 mysql 僅在 localhost 接口中偵聽。 您可以通過編輯位於 /etc/mysql/mysql.conf.d/ 文件夾中的文件 mysqld.cnf 並注釋(帶有 #)的行來更改此設置:

綁定地址 = 127.0.0.1。

完成此操作后,以這種方式重新啟動服務:

$ sudo systemctl restart mysql.service

並且,通過以下方式驗證一切正常:

$ systemctl 狀態 mysql.service

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM