问题描述
我想使用flask-sqlalchemy连接我的SQL数据库,但是我无法连接到SQL,因为SQL数据库的密码就像“ qUa%d6”。 这很奇怪,因为我可以使用“ password”之类的密码正常连接到SQL。 更改SQL密码可能可以解决问题,但是我认为也应该修复此错误。
我的SQL信息是:
DIALECT = 'mysql'
DRIVER = 'mysqldb'
USERNAME = 'xxx'
PASSWORD = 'qUa%d6'
HOST = 'xxx'
PORT = 'xxx'
DATABASE = 'xxx'
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)
unicode错误是:
Traceback (most recent call last):
File "sqldemo.py",line 37,in <module>
db.create_all() # 真正建立模型到数据库
File "/usr/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py",line 1039,in create_all
self._execute_for_all_tables(app,bind,'create_all')
File "/usr/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py",line 1031,in _execute_for_all_tables
op(bind=self.get_engine(app,bind),**extra)
File "/usr/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py",line 962,in get_engine
return connector.get_engine()
File "/usr/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py",line 556,in get_engine
self._engine = rv = self._sa.create_engine(sa_url,options)
File "/usr/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py",line 972,in create_engine
return sqlalchemy.create_engine(sa_url,**engine_opts)
File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/__init__.py",line 500,in create_engine
return strategy.create(*args,**kwargs)
File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/strategies.py",line 98,in create
(cargs,cparams) = dialect.create_connect_args(u)
File "/usr/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py",line 184,in create_connect_args
database="db",username="user",password="passwd"
File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/url.py",line 216,in translate_connect_args
if name is not None and getattr(self,sname,False):
File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/url.py",line 134,in password
return util.text_type(self.password_original)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd6 in position 3: ordinal not in range(128)
环境
- Python版本:2.7
- Flask-SQLAlchemy版本:2.4.4
- SQLAlchemy版本:1.3.18
我在Writing a connection string when password contains special characters中尝试过解决方法
虽然ascii解码错误消失了,但是程序卡住了,我的席特尔无法连接到SQL
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)