如何在不使用密码的情况下连接MySQL? (PyMySQL)

时间:2016-03-09 01:02:38

标签: python mysql

这是我的代码的相关部分:

        try:
            if self.pass_entry.get():
                self.connection = pymysql.connect(
                    host=self.host_entry.get(),
                    user=self.user_entry.get(),
                    password=self.pass_entry.get(),
                    db=self.db_entry.get(),
                    charset="utf8mb4",
                    cursorclass=pymysql.cursors.DictCursor
                )
            else:
                self.connection = pymysql.connect(
                    host=self.host_entry.get(),
                    user=self.user_entry.get(),
                    db=self.db_entry.get(),
                    charset="utf8mb4",
                    cursorclass=pymysql.cursors.DictCursor
                )
        except Exception as e:
            self.console.insert(tk.END, "Error: {err}\n".format(err=str(e)))

这是错误:

Connecting to 127.0.0.1...
Error: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

" root"没有密码在这里,PyMySQL假设它有一个。如何在不使用密码的情况下连接? (当密码字段/字符串为空时,我已尝试省略密码选项,但PyMySQL并未将其考虑在内)。

2 个答案:

答案 0 :(得分:1)

当数据库没有密码时,您需要将“”作为密码传递给函数。

尝试其他方式:

        else:
            self.connection = pymysql.connect(
                host=self.host_entry.get(),
                user=self.user_entry.get(),
                password="",
                db=self.db_entry.get(),
                charset="utf8mb4",
                cursorclass=pymysql.cursors.DictCursor
            )

答案 1 :(得分:0)

在使用mysql.connector库时,我遇到了同样的问题。 除了root用户之外,只需创建一个新的连接用户即可解决此问题。

谷歌搜索一段时间后,似乎可以访问root了,但是在找到上述解决方案后,我放弃了进一步研究。 用户在MySQL中具有与root @ localhost相同的设置。

def mySQLcnx(someVariable):
        dbCnx = mysql.connector.connect(host="localhost", user="pythonCnx", database="someDatabase")
        dbCnxCursor = dbCnx.cursor()
        dbCnxCursor.execute(someStatement)
        DbQueryResults = dbCnxCursor.fetchall()