簡體   English   中英

嘗試訪問MySQL數據庫的PythonAnywhere錯誤(訪問被拒絕)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM