Flaskでpymysqlを使用してDBにWEBサイトを開く時にエラーが表示されます。→MySQL、pymysqlが起動していない?
解決したいこと
Flask起動した後、WEBサイトを開く時に下記のURLにアクセスしたときにエラーが表示されました。DBにはpymysqlを使用して接続します。解決方法を教えて下さい。
下記に記載していますがもしかしたらMySQL、pymysqlが起動していないのでしょうか?
Flask起動
$ FLASK_APP=flask_app.py FLASK_ENV=development flask run
URL
http://localhost:5000/
発生している問題・エラー
pymysql.err.OperationalError: (1698, "Access denied for user 'root'@'localhost'")
該当するソースコード
from flask import Flask, render_template
import pymysql
app = Flask(__name__)
def getConnection():
return pymysql.connect(
host='localhost',
db='mydb',
user='root',
password='',
charset='utf8',
cursorclass=pymysql.cursors.DictCursor
)
@app.route('/')
def select_sql():
connection = getConnection()
message = "Hello world"
sql = "SELECT * FROM players"
cursor = connection.cursor()
cursor.execute(sql)
players = cursor.fetchall()
cursor.close()
connection.close()
return render_template('view.html', message = message, players = players)
自分で試したこと
こちらのURLを参考にしました。https://teratail.com/questions/103137
・可能性1
host='127.0.0.1'としているのに自分のPCでMySQLが起動していない。
→URLを変更しましたが変わりませんでした。⇒http://127.0.0.1:5000/
・可能性2
port = 3306としているのに3306ではないポートでMySQLが動いている。
MySQL起動確認
$ sudo service mysql status
* /usr/bin/mysqladmin Ver 8.0.33-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 8.0.33-0ubuntu0.20.04.1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 1 hour 35 min 23 sec
Threads: 3 Questions: 34 Slow queries: 0 Opens: 471 Flush tables: 3 Open tables: 53 Queries per second avg: 0.005
mysql ポート番号確認→起動していない?
$ lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
flask 474 hfuob 3u IPv4 1387 0t0 TCP localhost:5000 (LISTEN)
python3 476 hfuob 3u IPv4 1387 0t0 TCP localhost:5000 (LISTEN)
python3 476 hfuob 4u IPv4 1387 0t0 TCP localhost:5000 (LISTEN)