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

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

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

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

MySQL

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

PyCharm

エディター・開発ツール

Q&A

解決済

1回答

1170閲覧

DjangoからMySQLに接続することができません

ingramzero

総合スコア16

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

MySQL

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

PyCharm

エディター・開発ツール

0グッド

0クリップ

投稿2019/07/18 06:30

Django初心者です。
仮想環境を作り、Anacondaを使いDjangoをインストールし、djangoの勉強をしていたのですが、MySQLを導入する際につまずいてしまいました。

MySQLは↓↓のサイトにてインストール済みです。
https://www.mysql.com/jp/

環境作成に参考にしたサイト↓↓
https://zaihack.com/windows10-python-dev-1/

django勉強に参考にしたサイト↓↓
https://qiita.com/minnsou/items/db69ab931207ffec66ee

Djangoのプロジェクトとアプリのディレクトリ

mysite/ db.sqliste3 manage.py mysite/ __pycache__ __init__.py settings.py urls.py wsgi.py todo/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py urls.py views.py polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py      urls.py views.py

MySQLの作成

Djangoから自分のPCに接続するためにまず

mysql -u root

とターミナルでうつとrootユーザで実行できると記載されていたので、試したところ
'mysql'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されません。

と表示されます。
djangoが存在し、実行するディレクトリ、(djangotest)は仮想環境名↓↓

(django) C:\Users\ユーザー名\PycharmProjects\djangotest

MySQLが存在するディレクトリ

C:\Program Files\MySQL

単純にディレクトリが違うので実行されないのかなと思ったのですが、その場合MySQLフォルダをdjangotest下にMySQLフォルダを移せばいいのでしょうか?
詳しいかたご指導いただけると幸いです。文章力が乏しく、分かりづらいところがありますがどうかお力をお貸しください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Djangoは関係なさそうですね。

'mysql'は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されません。

WindowsですとPathを通さないとそのコマンドは利用できません。
ひとまず実行するだけならMySQLインストールフォルダのbin内に移動してコマンド実行すれば良いです。

ちなみに

単純にディレクトリが違うので実行されないのかなと思ったのですが、その場合MySQLフォルダをdjangotest下にMySQLフォルダを移せばいいのでしょうか?

これはやめてください。
あくまでDBも「サーバー」なので、何かのプログラミング言語内に包括される仕組みではありません。
プログラミング言語からすると外部のアプリケーションです。

MySQLが起動しているか確認して、
プログラムからはホスト、ID、パスワード、接続先DBを指定して接続を行います。
※Djangoに詳しいわけではないですが、Djangoに限らずほとんどのプログラミング言語ではそうやってDBに接続します。

投稿2019/07/18 06:32

編集2019/07/18 06:35
m.ts10806

総合スコア80765

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

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

ingramzero

2019/07/18 06:44

回答ありがとうございます!結構頻繁に使うコマンドと思うのでPATHを通そうと思うのですが、 おっしゃって頂いた通り C:\Program Files\MySQL の下に MySQL Router8.0 , MySQL Server8.0, MySQL Shell8.0 の各3つのフォルダにbinフォルダがありますが、どれをPATHに通せばいいのでしょうか?
m.ts10806

2019/07/18 06:46

私自身XAMPPで入れたのしか今手元にないのですぐ同じ環境が見れるわけではないですが、 mysql.exe があるフォルダだと思います(ちょっと自身でも8.0入れてみます)
m.ts10806

2019/07/18 06:49

ちなみにMySQL Community Server で良いですか?
m.ts10806

2019/07/18 06:55

あぁやっぱり。 ShellはコンポーネントですしRouterはミドルウェアなのでServerのほうで合っていると思います。 ※ただしこれはあくまでPCのコマンドから直接DBにつながったというだけであり、Djangoプログラムからつながったわけではありません。
ingramzero

2019/07/18 07:00

mysql.exeがbinフォルダ内に見当たりません.. MySQL Community Server でOKです。 因みにOSはwindows10の64itのPCを使用しています。
m.ts10806

2019/07/18 07:01

念のためbinフォルダにパスを通してmysqlコマンド実行するとどうなりますか?
m.ts10806

2019/07/18 07:07

ただ、私が先ほどインストールした先にはmysql.exeありました。 MySQL\MySQL Server 8.0\bin bin内でmysqlコマンド実行すると一応通っていることが確認できています
ingramzero

2019/07/18 08:05

先程、システム環境変数(S)の pathにC:¥Program Files\MySQL Server 8.0\bin; を通して mysql -u root を実行しましたが、 ’mysql’は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。とでてしまいます。
m.ts10806

2019/07/18 08:24

んー。mysql.exeがないのがおかしいですね。 コマンドプロンプトでC:¥Program Files\MySQL Server 8.0\bin;に入ってmysqlコマンドを打った場合はどうですか?
ingramzero

2019/07/18 08:46

C:\Program Files\MySQL\MySQL Server 8.0\bin> にうつり、mysql -u root を実行しましたが、 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) というエラーがはかれてしまいます。
ingramzero

2019/07/18 08:52

仮想環境で実行しているからでしょうか?
ingramzero

2019/07/18 09:39

因みに今確認したところ、mysql.exeファイルはmysqlというファイル名で存在していました。
m.ts10806

2019/07/18 11:07

> mysql -u root を実行しましたが、 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) これでひとまずmysqlの確認はできました。 ログインのところはまた別件ですね。 >因みに今確認したところ、mysql.exeファイルはmysqlというファイル名で存在していました。 ん。それは設定で拡張子を表示してないだけでは?
ingramzero

2019/08/11 10:06

返信遅れてしまい申し訳ありません。上記の手順でやり直したら、DJangoからmysqlに接続できました。ご協力ありがとうございました。
m.ts10806

2019/08/11 11:05

解決されたようで何よりです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問