在进行flask学习时,使用sqlalchemy 框架,在连接数据库(mysql)时报错,错误如下:
sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, “Access denied for user ‘root’@‘localhost’ (using password: YES)”)
(Background on this error at: http://sqlalche.me/e/e3q8)
怀疑是前几天修改了MySQL的加密验证方式导致的,搜集相关资料得到如下解决方案:
1.通过cmd命令行连接MySQL, 使用命令mysql -u root -p
2.进入数据库后更改密码
具体方法是通过命令
use mysql;
select user,host from user;
查看所有用户的权限,
使用命令
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
即可修改成功啦!!
如遇到以下
红框内为‘%’,则使用命令
ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
即可。
MySQL
的
1045
错误
就是数据库帐号、密码
错误
了。一般来说,给
MySQL
设置一个提供指定机器可连接的帐号密码即可。
但是,在使用
Flask
-
SQLAlchemy
时,还有另外一个坑,就是帐号、密码中有特殊字符,比如 ‘%’、 ‘@’等之类的。这个坑卡了几个小时,用其它方式连接数据库都没有问题,只有 基于
SQLAlchemy
的连接出现
错误
,以为是相关驱动依赖的坑。看来包含特殊字符的
解决
sqlalchemy
.
exc
.
Operation
al
Error
: (_
mysql
_
exc
eptions.
Operation
al
Error
) (2006, )问题
engine = create_engine(
'
mysql
+py
mysql
://user:
[email protected]:3306')
con = engine.connect()
Background on this
error
at: http://sql
al
che.me/e/e3q8
【解决方法】
engine = create_engine(
'
mysql
+py
mysql
://user:pass
sqlalchemy
.
exc
.
Operation
al
Error
: (py
mysql
.err.
Operation
al
Error
) (
1045
, "
Access
denied for user 'root'@'loc
al
host' (using password: YES)")
django.
db
.utils.
Operation
al
Error
: (
1045
, "
Access
denied for user 'root'@'loc
al
host' (using password: NO)")
django.
db
.utils.
Operation
al
Error
: (
1045
, "
Access
denied for user 'root'@'loc
al
host' (using password: NO)") django.
db
.utils.
Operation
al
Error
: (2003, ([Win
Error
10061] 由于目标计算机积极拒绝,无法连接。)")django.
db
.utils.
Operation
al
Error
: (2003, ...
sqlalchemy
.
exc
.
Operation
al
Error
: (py
mysql
.err.
Operation
al
Error
) (
1045
, "
Access
denied for user 'jack'@'master' (using password: YES)")
但是
DB
visu
al
连接正常:
查看用户发现jack在外部%访问时和从loc...
在使用hello
flask
第5章数据库中
在pycharm 的termin
al
中建立虚拟环境pip inst
al
l virtu
al
env ,之后在运行
flask
forge之后,在运行
flask
run 。
已解决(pandas+
sqlalchemy
向数据库插入数据失败)
sqlalchemy
.
exc
.
Operation
al
Error
: (pymssql.
Operation
al
Error
) (8152, b’String or binary data would be truncated.
DB
-Lib
error
message 20018, severity 16:\nGener
al
SQL Server
error
: Check messages from the SQL Server\n’)
我使用的是python3.6+py
mysql
+
mysql
8.0
在cmd命令行直接输入
mysql
回车出现:
ERROR
1045
(28000):
Access
denied for user 'O
DB
C'@'loc
al
host' (using password: N
这时在cmd命令行输入
mysql
-u root -p 回车输入密码,就可以成功连接数据库
但用py
mysql
登陆报错...