mysql.connector.errors.NotSupportedError: Authentication plugin ‘caching_sha2_password’ is not supported
出现该原因的问题是mysql8.0后加密方式改变了。
import mysql.connector
connection = mysql.connector.connect(
host="localhost",
user="root",
passwd="password"
)
print(connection)
不支持身份验证插件“ caching_sha2_password”,
import mysql.connector
connection = mysql.connector.connect(
host="localhost",
user="root",
passwd="password",
auth_plugin='mysql_native_password'
)
print(connection)
TypeError: ‘module’ object is not callable
class User(object):
def __init__(self, username, password):
self.__username = username
self.__password = password
def getUserName(self):
return self.__username
def setUserName(self, username):
self.__username = username
return None
def getPassword(self):
return self.__password
def serPassword(self, password):
self.__password = password
return None
import mysqlTest.User
if __name__ == "__main__":
user = mysqlTest.User('zhangsan', 123456)
print(user.getUserName())
print(user.getPassword())
Python导入模块的方法有两种:
import module
和 from module import
区别是前者是导入包的模块即包下的py文件,后者是深入模块即可以导入py文件定义的类和方法。
# 将import改为from...import深入内部
from mysqlTest.User import User
mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement
def method():
cursor.execute('insert into user(username,password) values(%s,%d)',("zhansan1","123456"))
values = cursor.rowcount
print(values)
cursor.close()
try:
#num = 5 / 0
conn.commit()
except Exception:
conn.rollback()
finally:
conn.close
cursor的sql语句中使用了python%d
占位符。以上代码会执行出错,因为无论是数字(包括整数和浮点数)、字符串、日期时间或其他任意类型,都应该使用%s
占位符。
Duplicate entry ‘zhangsan’ for key ‘username’
出现该错的原因是username字段设置了unique键,表示该键不可重复,所以插入重复的键是会报错。解决方法,删除unique键drop index username on table_name
sqlalchemy.orm.exc.FlushError: Instance <User at 0x3a8e7a8> has a NULL identity key
出现该错误的原因是:id是字符串类型,无法自增长
# 定义User对象:
class User(Base):
# 表的名字:
__tablename__ = 'user'
# 表的结构:
id = Column(String(20), primary_key=True)
username = Column(String(20))
password = Column(String(11))
def __init__(self, username, password):
self.username = username
self.password = password
如代码所示id应该是Iterger类型,却写成了String类型故报错。id = Column(Integer, primary_key=True)
修改即可。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/156280.html