mysql.connetorで別PCのMySQLに接続できたみたいです。
- 前説:どこにRDBのデータ置くんだと考えたら、自PC内ではあまり都合よくないよな~と思った。
- 設定1:Win10PCにXAMPP入れ、その中のMySQLをつかってみることにしました。
- 設定2:Win11PCのVSCodeで使うPythonに、import mysql.connector をスクリプト先頭に書く。
- 課題:文字コードのエラー理由は不明。DockerとかDBmanagerとか使ってない問題不明。
※Win10PCとWin11PCの2台を例示しています。組み合わせやIPアドレスはご覧のみなさまのご環境にあわせ読み替えてくださいませ。
前説:どこにRDBのデータ置くんだと考えたら、自PC内ではあまり都合よくないよな~と思った。
株式上場している銘柄コードや日々の売買値(四本足)などを自PC内のMySQLに取り込めるメドがたってきました。そこで考え始めたのが、大量のデータどこに置くのか、ということでした。つまり、MySQLサーバをどこに設置するか…というようなことです。
売買データは、前場後場の各四本値、売買株数などなどが4,000近い銘柄コードで日々積み重なっていきます。それで、自PCが重たくならなくてすむように、別PC(別サーバ)の方がいいよね~という判断に至りました。
結構七転八倒しました、他PCのMySQLに接続成功するのに…ええ。その、顛末・備忘録です。
設定1:Win10PCにXAMPP入れ、その中のMySQLをつかってみることにしました。
phpMyAdminを使ってSQL操作するのも必要になるよね~ということで、webサーバーAPACHEも入っているXAMPPをWIN10PCにインストールしました。
www.apachefriends.org
XAMPP起動後、ApacheとMySQLをSTARTさせ、両方が稼働しているのを確認したら、MySQLのAdminボタンをクリックしてphpMyAdminを動かしました。爺は横着して、データベース名とひとつのテーブル名のみ作りました。
同じく、ユーザ名とその権限を設定しました。このとき、WIN10PCのMySQLに接続してくるWIN11PCのIPアドレスも設定しました。
データベースの入れ物とユーザ名・権限を設定したらApacheはその後使わなくても、WIN10PCのMySQLが独力でport3306を窓口にWIN11PCからの接続に対応してくれるようです。
設定2:Win11PCのVSCodeで使うPythonに、import mysql.connector をスクリプト先頭に書く。
Win10PC・MySQLに接続しさまざまな処理をするため、Pythonで接続文や処理分を書きます。その仲立ちをしてくれるのが、mysql.connetorです。これ以外にややこしいものを使う必要がない(とりあえず)というのがわかるまで、結構な時間がかかりました。
この時、Win11PCのVSCodeで最初にするのは、ターミナル画面で「pip install mysql-connector-python」を実行することでした。
python.softmoco.com
Win11PCのPythonスクリプトに、Win10PCへのMySQL接続設定(ユーザ名やホストほか)を書きます。それを実行したらWin11PC側のVSCode・Pythonから、Win10のXAMPP内MySQLに接続し、データベース内のテーブルの項目名設定、書き込み・読み出しなどを行えることになります。
以下、先頭部分のみのスクリプト例です。先頭図もご参照ください。
import mysql.connector #デフォルトでは入っていないので、importしないと使えない # 接続情報述 conn = mysql.connector.connect( user='hoge', # ユーザー名 ←WIN10PCのphpMyAdminで先に設定したユーザ名を使用、事項も同じ password='abc789', # パスワード host='192.168.1.11', # win10PCのIPアドレス使用 database = 'stock', #Win10PCのMySQLで使うdatabaseを指定。 port = '3306', #←無くてもOKでした # charset = 'utf8', #文字コード認証エラー頻発でコメントアウトしました。文字化けは起きてないようです。 )
課題:文字コードのエラー理由は不明。DockerとかDBmanagerとか使ってない問題不明。
Win11側から接続するときのcharsetがエラーになっています。コメントアウトしています。ま、utf8以外を使うことはほとんどないでしょうから、当面問題はないかとは思うのですけど、ちょっとストレスです。
VSCode使っていると、拡張機能のサイドバーに、DockerとかDBmanegerとかの案内が出ます。どうも普通に使うものらしいのですが、爺にはチンプンカンプン。とりあえず、mysql.connectorで用が足りているということで、理解は先送り…。
データ蓄積のために何日分も何日分も東証株式相場表(PDF)を解析しMySQLに流し込む作業をする必要が…あるです…。それができたら、蓄積データからグラフ作成とか相場の見立て(≒ほぼ妄想)をするといった段階になるはず…で・す・が…さて、実際はどうなるのでしょう。
www.jpx.co.jp