[英]PythonAnywhere error trying to access MySQL database (Access denied)
按照所有指南和教程,我已經在PythonAnywhere中設置了一個具有簡單數據庫(new_db)的環境。
我有一個簡單的python Flask應用程序,它正在嘗試使用以下代碼連接到數據庫:
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config["DEBUG"] = True
SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://{username}:{password}@{hostname}/{databasename}".format(
username="WazzalJohn",
password="my_password_here",
hostname="WazzalJohn.mysql.pythonanywhere-services.com",
databasename="WazzalJohn$new_db>",
)
app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI
app.config["SQLALCHEMY_POOL_RECYCLE"] = 299
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True
db = SQLAlchemy(app)
但我不斷收到錯誤:
ProgrammingError:(mysql.connector.errors.ProgrammingError)1044(42000):用戶'WazzalJohn'@'%'對數據庫'WazzalJohn $ new_db>的訪問被拒絕
我嘗試創建一個新的數據庫,但是遇到了同樣的問題。 我以為PythonAnywhere處理了所有這些類型的問題,所以不知道該怎么辦……有人在PythonAnywhere上有同樣的問題嗎?
我現在嘗試通過BASH控制台登錄,並收到類似的消息-屏幕截圖在此處
在原始代碼中,數據庫名稱有錯誤:
databasename="WazzalJohn$new_db>",
...應該:
databasename="WazzalJohn$new_db",
...沒有多余的“ >
”。
屏幕快照中的問題是您沒有在命令行上指定數據庫; 您需要執行以下操作:
mysql -u TWarren -h TWarren.mysql.pythonanywhere-services.com -p 'TWarren$default'
...其中“ TWarren$default
”應替換為實際的數據庫名稱。 BTW數據庫名稱周圍的單引號很重要-如果您不使用它們,Bash會將“ $default
”解釋為環境變量,而mysql將嘗試連接到錯誤的數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.