Python pymysql.err.OperationalError:(1045,“用户'MYID'@'localhost'的访问被拒绝”(使用密码:否)

Python pymysql.err.OperationalError:(1045,“用户'MYID'@'localhost'的访问被拒绝”(使用密码:否),python,mysql,sql,flask,webserver,Python,Mysql,Sql,Flask,Webserver,我正在服务器a上运行flask web服务器,需要访问远程服务器B中的SQL数据库 我得到了这个错误 pymysql.err.OperationalError:1045,使用密码“否”拒绝用户“MYID”@“localhost”的访问 有人能帮我吗 下面是我的代码: from flask import Flask, render_template, request from flask.ext.mysql import MySQL app = Flask(__name__) app.con

我正在服务器a上运行flask web服务器,需要访问远程服务器B中的SQL数据库

我得到了这个错误

pymysql.err.OperationalError:1045,使用密码“否”拒绝用户“MYID”@“localhost”的访问

有人能帮我吗

下面是我的代码:

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)

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

grant all privileges on DBNAME.* to MYID@localhost identified by 'MYPW';
使用具有授予权限的用户通常是root用户

当然,您可以将您授予的权限从:所有权限缩小到:选择、插入、更新、删除,具体取决于具体情况

要使用root访问控制台,请打开终端窗口并写入:

mysql -uroot -p
并为无密码根用户提供密码或:

mysql -uroot
如果您不知道root密码,请遵循以下指南:

如果您在公司/大学工作站上没有执行上述操作的权限,请向管理员请求授予权限。

尝试更改您的

app.config['MYSQL_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’
我也有同样的问题,但这帮我解决了。希望这对你也有帮助。
查看Flask MySQL参考

您是否已授予模式DBNAME的用户MYID权限?谢谢您的评论!!这就是我应该做的吗?mysql>授予DBNAME.*的所有权限要使用具有授予权限的帐户“MYID”@“localhost”是,请参阅下面的答案感谢获得帮助!尝试此操作时,将DBNAME.*上的所有权限授予MYID@localhost以“MYPW”标识;我收到以下错误1044 42000:拒绝用户“MYID”@“%”对数据库“DBNAME”的访问这可能是由于管理员设置造成的吗?是否使用root来执行此操作?否。。我没有根访问权限。否则将无法正常工作,对吗?不,但由于它是本地安装,因此在mysql上具有root访问权限并不困难。只有团队中的管理员具有root访问权限..:所以我不知道;我不知道下面登录mysql-uroot-p的密码。在这种情况下,我应该联系管理员用户,对吗?多谢各位,;D
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’