質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

504閲覧

Python MySQL OperationalError

saito5940

総合スコア63

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/11/28 19:55

編集2021/11/29 15:52

環境ubuntu 20.04
python3.9
Anaconda3
Vscode
Mysql8.0.27

MysQLとPythonの勉強で書きこコードを書きました。
pythonからデーターベースを作りました。

import sqlalchemy import sqlalchemy.ext.declarative import sqlalchemy.orm engine = sqlalchemy.create_engine('mysql+pymysql:///testmysql_database:', echo=True) Base = sqlalchemy.ext.declarative.declarative_base() class Person(Base): __tablename__ = 'persons' id = sqlalchemy.Column( sqlalchemy.Integer, primary_key=True, autoincrement=True) name = sqlalchemy.Column(sqlalchemy.String(14)) Base.metadata.create_all(engine) Session = sqlalchemy.orm.sessionmaker(bind=engine) session = Session() p1 = Person(name='Mike') session.add(p1) p2 = Person(name='Nancy') session.add(p2) p3 = Person(name='Saito') session.add(p3) session.commit() p4 = session.query(Person).filter_by(name='Mike').first() p4.name = 'Michel' session.add(p4) session.commit() p5 = session.query(Person).filter_by(name='Nancy').first() p5.name = 'Nancy' session.delete(p5) session.commit() persons = session.query(Person).all() for person in persons: print(person.id, person.name)

あらかじめ、mysqlをターミナルからログインして、testmysql_databaseを作りました。
コードを実行したら以下のエラーが発生しました。

例外が発生しました: OperationalError (pymysql.err.OperationalError) (1045, "Access denied for user 'saito'@'localhost' (using password: NO)") (Background on this error at: https://sqlalche.me/e/14/e3q8) The above exception was the direct cause of the following exception: File "/home/saito/python/lesson.py", line 15, in <module> Base.metadata.create_all(engine)

普通にログインできるので、なぜpythonからログインできないのか分かりません。

mysql5.7の情報はあるのですが8.0は中々ググっても見つからないで困っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

technocore

2021/11/29 00:29

>sqlalchemy.create_engine('sqlite+pymysql:///test_sqlite2:', echo=True) sqlalchemyは詳しくないのですが、mysqlに接続するのにsqliteを指定しているのは正しい書き方ですか?
saito5940

2021/11/29 15:44

すいません。誤字です。修正させていただきました。sql+pymysqlでも同じ症状でした。
saito5940

2021/11/29 15:46 編集

sqliteからmysql+pysqlを記述してから上記のエラーが発生しました。 pysqlはインストールしています。 何かテストして直すを忘れました。
saito5940

2021/11/29 15:57

別途ファイルを作成して、ユーザ名とパスワードを指定しないとダメなのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問