Python 接続の mysql エラーを解決します: pymysql.connect(DBHOST,DBUSER,DBPASS,DBNAME) TypeError: __init__() がかかります...

問題の説明

今日初めて Python を使用して mysql に接続したとき、オンライン操作によるエラーを見つけました。

コードは以下のように表示されます:


import pymysql

DBHOST = "localhost"
DBUSER = "root"
DBPASS = "root"
DBNAME = "test"
try:
    pymysql.connect(DBHOST,DBUSER,DBPASS,DBNAME)
    print("mysql connect success")
except pymysql.Error as e:
    print("mysql connect error")

エラーメッセージは次のとおりです。

ここに画像の説明を挿入

Traceback (most recent call last):
  File "D:\Python\PythonWorkSpace\TestWyh.py", line 8, in <module>
    pymysql.connect(DBHOST,DBUSER,DBPASS,DBNAME)
TypeError: __init__() takes 1 positional argument but 5 were given

長い間確認した結果、データベースの基本構成に問題がないことがわかりました。なぜエラーが報告されたのかわかりません

pymysql.Connect()パラメータの説明

まず、このメソッドのパラメータを確認します: pymysql.Connect() パラメータの説明

host(str):      MySQL服务器地址
port(int):      MySQL服务器端口号
user(str):      用户名
passwd(str):    密码
db(str):        数据库名称
charset(str):   连接编码

connection对象支持的方法
cursor()        使用该连接创建并返回游标
commit()        提交当前事务
rollback()      回滚当前事务
close()         关闭连接

cursor对象支持的方法
execute(op)     执行一个数据库的查询命令
fetchone()      取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall()      获取结果集中的所有行
rowcount()      返回数据条数或影响行数
close()         关闭游标对象

最も単純な接続では、IP、ポート、ユーザー名、パスワード、データベース名の基本的な 5 つの項目を設定するだけです。その他はオンデマンドで構成されます

問題を解く

偶然、別の書き方を目にしました。

import pymysql

# DBHOST = "localhost"
# DBUSER = "root"
# DBPASS = "root"
# DBNAME = "test"
try:
    db = pymysql.connect(host='localhost', user='root', password='root', db='test')
    print(db)
    print("mysql connect success")
except pymysql.Error as e:
    print("mysql connect error")

このメソッドは変数を渡す必要はありませんが、connect メソッド内の各変数の値 (主に 4 つの値) を直接示します。

ホスト(IP)、ユーザー(ユーザー名)、パスワード(パスワード)、データベース(データベース名)

ここに画像の説明を挿入

コードは次のとおりで、リンクは正常に再開されます。

ここに画像の説明を挿入

知らせ

注: ポート番号を設定する必要はありません。設定しないとエラーが報告されます。

ここに画像の説明を挿入

要約する

理由はわかりませんが、データベースのバージョンに問題があるようです。私のmysqlバージョンは8.0です。パラメータが指定されていない可能性があり、混乱や失敗が発生します。

おすすめ

転載: blog.csdn.net/weixin_46713508/article/details/131602219