我想請問為什麼連線成功 卻無法連接上資料庫
要做的內容是將Navicat for MySQL中的資料庫的內容
輸出至myeclipse
連接至資料庫錯誤
連線是成功的
MySQL也可以看到有我新增的pythonstock
使用到的程式
myeclipse 2020.9.16
python3.9
Navicat 15 for MySQL
mysql-8.0.24
因為有點急 所以能幫忙解決的人 匯款200元以示感謝
mysql-8.0.24 :
connect 加入參數 auth_plugin='mysql_native_password'
請參閱 : Python讀取mysql出現Authentication plugin 'caching_sha2_password' is not supported解決方法
出來的結果還是一樣
1.database='pythonstock'
2.PyMySQL 可能未安裝或版本有問題
參數用 database 是完整的,用db 也是可以的.
https://pymysql.readthedocs.io/en/latest/modules/connections.html
db – DEPRECATED Alias for database.
passwd – DEPRECATED Alias for password.
#!/usr/bin/env python3
import pymysql
try:
db = pymysql.connect(
unix_socket = "/tmp/mysql.sock",
user="miku",
databse="miku",
password="wrongpass"
)
except pymysql.Error as e:
print("連線錯誤 pymysql %d: %s" %(e.args[0], e.args[1]))
else:
print("連線成功")
finally:
print("離開")
補充了 except 部分, 會將錯誤代號及說明顯示. 執行結果如下:
例如這是密碼不正確的.建議你先將 except 部分改一下,才好做後續處理.
1.你兩次的密碼(password,123456)和 db 名稱(pythonstock,stockinfo) 不一樣,你自己要確認這兩項資料的正確性
2.把
except:
print("Error when Connecting to the DB")
改成
except pymysql.err.OperationalError as oe:
print("Error:", oe)
可看出更明確的錯誤原因
1.問題解決就好, 選個最佳解答以結案
2.200 元很有誠意,轉給創世基金會比較有意義 https://www.genesis.org.tw/official/faq
沒有問題 非常感謝您
你真是我近十年來在這裡看過
最守信用又動作最快的人了,按三個
[回覆更新] pyMySQL 不支援 python3.9.x ,試著用另一台電腦安裝3.8版,你的程式在3.8跑看看
我測試要這樣寫才可以,
如果還是不行,
要不要試著印出錯誤訊息看看,
看是沒有裝套件,
還是裝錯地方(裝錯地方也會顯示沒有裝)...
import pymysql
try:
conn = pymysql.connect(host = '127.0.0.1', user = 'root', passwd = "mysql", db = 'test')
except pymysql.Error as e:
print("連線錯誤 pymysql %d: %s" %(e.args[0], e.args[1]))
sys.exit()
cur = conn.cursor()
cur.execute( "SELECT * FROM employee" )
for r in cur:
print (r)
cur.close()
conn.close()
(1, 'Joe', 70000, 1)
(2, 'Henry', 80000, 2)
(3, 'Sam', 60000, 2)
(4, 'Max', 90000, 1)
(5, 'Janet', 69000, 1)
(6, 'Randy', 85000, 1)