* Windows10のWSL2とUbuntu(Linux)の間でMySQLのデータベースを共有

:LOGBOOK:
CLOCK: [2020-08-05 水 10:48]--[2020-08-05 水 11:18] => 0:30
:END:

:CATEGORIES: パソコン

〉〉〉:Emacs: 2020-08-05(水曜日)10:48  〉〉〉

 昨夜,次のようにファイルを作成するスクリプトを作成しました。前回実行時の最新idを記録しデータベースの更新部分をダンプしたファイルになります。


mysqldump -u hirono-hideki-01 -t benngosi_twitter tw_user_tweet --where 'id>481903' > /mnt/ubuntu/sql/benngosi_twitter-tw_user_tweet.sql
mysqldump -u hirono-hideki-01 -t blog blogger_hirono2014sk --where 'id>64522' > /mnt/ubuntu/sql/blog-blogger_hirono2014sk.sql
mysqldump -u hirono-hideki-01 -t blog hatena201912 --where 'id>735' > /mnt/ubuntu/sql/blog-hatena201912.sql

 データベースのテーブルに更新がないと何もしないのですが,次のように記録しておいたテキストファイルと照合し,更新の有無をチェックしています。


benngosi_twitter tw_user_tweet 481903
benngosi_twitter tw_hirono_tweet 18646
benngosi_twitter tw_user_tweet_MOF 611
blog blogger2016k 1165
blog blogger_hirono2014sk 64522
blog cocolog 1252
blog hatena 5799
blog youtubes 1106
blog blogger_hirono2017kk 756
blog hatena201912 735
blog blogger_hironokk2020 12
hirono2016k_wpcom wp_posts 5289
hirono2016kk_wpcom wp_posts 38

 スクリプトRubyで作成していますが,「local_id = `grep "#{d} #{t}" /home/a66/tmp/db`.split(' ')[2].to_i」とやって記録しておいたローカル環境の最新idを取得しています。

 これまではローカルネットワークでデータベースを自動更新させるスクリプトを使っていたのですが,WSL2には,IPアドレスのサブネットが通常のものとは違っているのです。外部からWSL2にネットワーク接続させる必要も考えていないので別の方法を模索しました。

 NTFSでフォーマットしたパーティションがあって,これをWindows10とUbuntuで共有させています。WSL2の環境ではパーミッションを設定させるという面倒もあるのですが,一応,2つの環境からファイルの読み書きが出来ています。

 例えばUbuntuでのデータベースの更新をWindows10のWSL2のMySQLに反映させるわけです。

 さきほどはWindows10のWSL2での更新をUbuntuに反映させました。1つの処理は,「mysql -u hirono-hideki-01 blog < bloghatena201912.sql」という感じです。

 昨夜は他にも,Windows10のWSL2で,Ubuntuと同じようにスクリプトのコマンドが実行できるように環境を整えました。今朝になりますが,一太郎のアウトラインモードでコピペしたプロットをはてなブログに投稿しました。

▶▶▶ kk_hironoのリツイート ▶▶▶

> 2020-08-05-093337_Windows10一太郎からはてなブログへの投稿.jpg https://t.co/jTXb18gbOP

〈〈〈:Emacs: 2020-08-05(水曜日)11:18  〈〈〈