pymysql.err.operationalerror:(1045,“拒绝访问用户'myid'@'localhost'(使用密码:no)”)

w41d8nur  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(612)

我正在服务器a上运行flask web服务器,需要访问远程服务器b中的sql数据库。
我得到这个错误。
pymysql.err.operationalerror:(1045,“拒绝访问用户'myid'@'localhost'(使用密码:no)”)
有人能帮我吗??
下面是我的代码:

from flask import Flask, render_template, request
from flask.ext.mysql import MySQL

app = Flask(__name__)

app.config['MYSQL_HOST']='IP OF SERVER B'
app.config['MYSQL_PORT']='SERVER B PORT NUMBER'
app.config['MYSQL_USER']='MYID'
app.config['MYSQL_PASSWORD']='MYPW'
app.config['MYSQL_DB']='DBNAME'
mysql=MySQL(app)
mysql.init_app(app)
@app.route('/')
def index():
    cur = mysql.get_db().cursor()
    cur.execute('''SQLQUERY;''')
    rv=cur.fetchall()
    return str(rv)
zbwhf8kr

zbwhf8kr1#

试着改变你的习惯

app.config['MYSQL_HOST'] = ...

app.config['MYSQL_DATABASE_HOST'] = ...

这也适用于其他人:

MYSQL_DATABASE_HOST default is ‘localhost’
MYSQL_DATABASE_PORT default is 3306
MYSQL_DATABASE_USER default is None
MYSQL_DATABASE_PASSWORD default is None
MYSQL_DATABASE_DB   default is None
MYSQL_DATABASE_CHARSET  default is ‘utf-8’

我也有同样的问题,但这帮我解决了。希望这对你也有帮助。请看这里的参考资料

vlju58qv

vlju58qv2#

使用mysql客户端或控制台,您应该执行如下操作:

grant all privileges on DBNAME.* to MYID@localhost identified by 'MYPW';

使用具有授予权限的用户(通常是 root ).
当然,您可以缩小您授予的特权范围: all privileges 比如说: select,insert,update,delete ,视情况而定。
要使用root访问控制台,请打开终端窗口并写入:

mysql -uroot -p

并为无密码根用户提供密码或:

mysql -uroot

如果您不知道根密码,请遵循以下指南:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
如果您所在的公司/大学工作站没有执行上述操作的权限,请请求管理员授予权限。

相关问题