JupyterNotebookでMySQL接続_ pymysql

  • このエントリーをはてなブックマークに追加
  • LINEで送る

自分の作業を時系列でメモ。

PyMySQLを使います。

あといろいろ飛ばしていますがAnacondaを使っています。

経緯

そういえばJupyterNotebookでDB接続ってどうやるんだろう→MySQLが一番慣れてるし…あれ?そういえばローカルに入れてたっけ?→Homebrewでインストール済みだった←ここから

以下、ターミナル

$ mysql.server start
Starting MySQL
...... SUCCESS! 
$ mysql -uroot -p

やべ、パスワード忘れた。

#一旦とめて
$ mysql.server stop
#セーフモードで起動
$ mysqld_safe --skip-grant-tables --skip-networking
#ターミナルを別でひらいて(command + N)
$ mysql
mysql> use mysql;
mysql> update user set Password=PASSWORD('パスワード') where User ='root';
Query OK, 3 rows affected, 1 warning (0.00 sec)
#あれ、3行更新された?確認
mysql> select Host,User,Password from user;
Host      | User | Password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *0DF89A2F43F57C658020AB168...... |
| 127.0.0.1 | root | *0DF89A2F43F57C658020AB168...... |
| ::1       | root | *0DF89A2F43F57C658020AB168...... |
+-----------+------+------------------------------------------

うーむ。まあいいか。quitで終了。

#セーフモード終了し、新しく起動
$ mysql.server stop 

$ mysql.server start

$ mysql -uroot -p

入れた。コマンド面倒なので、MySQLWorkbench使おうと思ったら、接続次に以下のようなエラー

Table 'performance_schema.session_variables' doesn't exist

ググったら以下のような方法

$ mysql_upgrade -uroot -p --force
$ mysql.server restart

Workbench動いた、けど触ったの久しぶりで使いにくいなー→Sequel Proにしよう

こちらからダウンロード→ https://www.sequelpro.com/

うむ。UIが大変わかりやすくて良いですね。シンプルだしデフォで日本語だし。アプリが落ちやすい気もするけど(自分だけ?)

データを準備。ちょうどこの本を開いてたので、ユーザーデータをMySQLにインポートしておく。

 

sequel

いざ、接続

以下をターミナルで実行して、mysqlドライバを落としておきます。Anacondaでpymysql。

$ conda install pymysql

 

以下、Jupyter Notebook上で記述。接続内容は適宜。

import pymysql

connection = pymysql.connect(host='localhost',
                             user='root',
                             password='パスワード',
                             db='test_db',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)
connection.commit()
cur = connection.cursor()
cur.execute('select * from users')
users = cur.fetchall()
users

##users出力結果
[{'id': 0, 'name': 'Hero'},
 {'id': 1, 'name': 'Dunn'},
 {'id': 2, 'name': 'Sue'},
 {'id': 3, 'name': 'Chi'},
 {'id': 4, 'name': 'Thor'},
 {'id': 5, 'name': 'Clive'},
 {'id': 6, 'name': 'Hicks'},
 {'id': 7, 'name': 'Devin'},
 {'id': 8, 'name': 'Kate'},
 {'id': 9, 'name': 'Klein'}]

data_access

DB接続して、行を取得できました。

時間はかからなかったけども、触ってないと忘れますよねぇ、こういう接続関連。

 

【参考】

・Table ‘performance_schema.session_variables’ doesn’t existエラー:
http://stackoverflow.com/questions/31967527/table-performance-schema-session-variables-doesnt-exist
・Jupyterからmysql接続
http://qiita.com/shrkw/items/c38def7d60b0099b0c55

・入門Python3

関係ないけどオライリー本って、本棚に並んでるとそれだけでワクワクするよね。全然読んでないけどね。

 

スポンサーリンク

  • このエントリーをはてなブックマークに追加
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください