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

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

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

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

Python 3.x

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

解決済

1回答

4117閲覧

pythonでmysqlにデータを入れたい

cafe_kanaka

総合スコア9

MySQL

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

Python 3.x

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

0グッド

0クリップ

投稿2017/06/16 14:14

###前提・実現したいこと
mac os10.12.4
MAMP4.1.1
Python3.6
mysql 5.6.35

pythonでmysqlにデータを入れたいです。

###発生している問題・console error.log

[Fri Jun 16 23:03:11 2017] [error] [client ::1] Traceback (most recent call last):, referer: http://localhost:8888/ [Fri Jun 16 23:03:11 2017] [error] [client ::1] File "/Applications/MAMP/htdocs/mysql-test.py", line 2, in <module>, referer: http://localhost:8888/ [Fri Jun 16 23:03:11 2017] [error] [client ::1] import MySQLdb, referer: http://localhost:8888/ [Fri Jun 16 23:03:11 2017] [error] [client ::1] ModuleNotFoundError: No module named 'MySQLdb', referer: http://localhost:8888/

###該当のソースコード

mysql

1#!/Library/Frameworks/Python.framework/Versions/3.6/bin/python3 2import MySQLdb 3conn = MySQLdb.connect( 4 user='root', 5 passwd='root', 6 host='localhost', 7 db='data') 8cur = conn.cursor() 9cur.execute("INSERT INTO data(id,exchange,`datetime`) VALUES(NULL,111,datetime)") 10cur.execute("SELECT * FROM data") 11for row in cur.fetchall(): 12 print(row) 13

###試したこと
ターミナルで
pip3 install mysqlclient

###発生している問題・エラーメッセージ

Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-iuz1vt6l/mysqlclient/

###そのほかに課題に対してアプローチしたこと
sudo install -y libmysqlclient-dev
brew install mysql-connector-c
easy_install -U setuptools
MySQL-python-1.2.4b4のダウンロード(どこに置けばいいかわからなかったです)

独学中の初心者です。宜しくお願いします。

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

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

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

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

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

miyahan

2017/06/16 14:49

エラーメッセージ(Command "python setup.py egg_info" failed)をすべて張って下さい
cafe_kanaka

2017/06/18 13:40

Collecting mysqlclient Using cached mysqlclient-1.3.10.tar.gz Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> File "/private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-w2xryvuh/mysqlclient/setup.py", line 17, in <module> metadata, options = get_config() File "/private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-w2xryvuh/mysqlclient/setup_posix.py", line 54, in get_config libraries = [dequote(i[2:]) for i in libs if i.startswith('-l')] File "/private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-w2xryvuh/mysqlclient/setup_posix.py", line 54, in <listcomp> libraries = [dequote(i[2:]) for i in libs if i.startswith('-l')] File "/private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-w2xryvuh/mysqlclient/setup_posix.py", line 12, in dequote if s[0] in "\"'" and s[0] == s[-1]: IndexError: string index out of range ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/6j/pt_frt1s14n2nz4cyxyryt5c0000gn/T/pip-build-w2xryvuh/mysqlclient/
cafe_kanaka

2017/06/18 13:41

です。宜しくお願いします。
guest

回答1

0

ベストアンサー

mysqlclient-python本家の下記 issue が関連しているように思えます:
pip3 install mysqlclient fails on macOS · Issue #169 · PyMySQL/mysqlclient-python

ちょっと大変そうです...


行き詰まってしまった場合は、他のMySQLドライバーを使うのも検討してみてください

  • PyMySQL: GitHubのスター数を見る限り一番人気の模様。MITライセンス
  • mysql-connector-python: MySQLの開発元Oracle公式のドライバー。GPLv2ライセンス

投稿2017/06/18 14:32

編集2017/06/18 14:33
miyahan

総合スコア3095

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

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

cafe_kanaka

2017/06/18 15:13

素早い回答に感激しました mysqlclientは置いといてpymysqlなるものでやってみたのですが、こちらも繋げませんでした・・・ ターミナル """ pip3 install PyMySQL chmod 755 ../../applications/MAMP/htdocs/testsql.py """ ソースコード """testsql.py #!/Library/Frameworks/Python.framework/Versions/3.6/bin/python3 import pymysql import sys import io sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') print("Content-Type: text/html; charset=utf-8") print("") print(""" <html> <head> <meta charset="utf-8"> </head> <body> <p>疲れた・・・</p> </body> </html> """) db = pymysql.connect("localhost","root","root","base_data" ) cursor = db.cursor() cursor.execute("SELECT VERSION()") data = cursor.fetchone() print ("Database version : %s " % data) db.close() """ コンソール """ [Mon Jun 19 00:05:54 2017] [error] [client ::1] Traceback (most recent call last):, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 916, in connect, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] **kwargs), referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socket.py", line 722, in create_connection, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] raise err, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socket.py", line 713, in create_connection, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] sock.connect(sa), referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] ConnectionRefusedError: [Errno 61] Connection refused, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] , referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] During handling of the above exception, another exception occurred:, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] , referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] Traceback (most recent call last):, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] File "/Applications/MAMP/htdocs/testsql.py", line 21, in <module>, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] db = pymysql.connect("localhost","root","root","base_data" ), referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/__init__.py", line 90, in Connect, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] return Connection(*args, **kwargs), referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 706, in __init__, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] self.connect(), referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pymysql/connections.py", line 963, in connect, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] raise exc, referer: http://localhost:8888/ [Mon Jun 19 00:05:54 2017] [error] [client ::1] pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 61] Connection refused)"), referer: http://localhost:8888/ """
miyahan

2017/06/18 15:53

`Can't connect to MySQL server` というエラーが出ているので、Python側のトラブルというより、MySQL側の問題に見えます。サーバーが起動していないか、ユーザー名・パスワードが間違っているような気がします。 まず、Python 経由ではなく、ターミナルで `mysql -u root -proot` コマンドを実行し、MySQLサーバーに接続できるか確認してください。
cafe_kanaka

2017/06/18 18:10

phpなら同じ環境で接続できているのですが... ターミナルでmysql -u root -prootと打つと”mysql: command not found”です docker環境でならできたんですけど...
cafe_kanaka

2017/06/18 18:14

phpで動いているのでサーバー起動済みでユーザー名、パスワード、データベース名は間違っていないと思いますが、もしかしてmampでインストールしたmysqlはpythonで使えないんですか???
miyahan

2017/06/18 18:33

MAMPは MySQL の Socket ファイルのパスが特殊なため、Python のコードで明示的に指定するか、一般的なパスにシンボリックリンクを張る必要があるようです http://qiita.com/gtaiyou24/items/6d9eee45f40408c7d2bc PHPだとそのまま接続できるのは、MAMP向けの設定が最初から入っているためだと思います。
cafe_kanaka

2017/06/18 18:57

言われてみればそうでした。 phpでwebサイトを作るならmampなように、 pythonでwebサイトを作るならdjangoというものがあるみたいですね そちらでやってみようと思います そのときに躓いたらまたお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問