BLOGTIMES
«Prev || ... 756 · 757 · 758 · 759 · 760 · 761 · 762 · 763 · 764 ·... | | Next»
2013/11/21

MySQL の View や Stored Procedure がダンプできない

mysql 

MySQL でリモート接続で定義したストアドがローカルから接続するとダンプできないという不思議な問題にどっぷりとハマってしまったのでメモ。

ユーザーが root だったりすると強制的にダンプできるので気づかないことも多いですが、MySQL の View や Stored Procedure には DEFINER という特性がついていて、誰がそれを定義したのかというのを覚えておくようになっています。これによって他のユーザーから View やストアドの内容を勝手に書き換えられるのを防ぐことができるので、この機能自体はセキュリティ的に有用です。

ちなみに DEFINER のデフォルト値は CURRENT_USER です。

これだけだと、ユーザーが同じであれば接続元をリモートからローカルに変えても問題なさそうという感じがしますが、ここにちょっとした落とし穴があります。というのも MySQL の CURRENT_USER はuser_name の値とhost_name がセットになったものだからです

MySQL :: MySQL 5.1 リファレンスマニュアル :: 17.2.1 CREATE PROCEDUREおよびCREATE FUNCTION 構文

user 値を附与する場合、それを ' user_name'@' host_name ' フォーマット(GRANT ステートメントに使用したと同じフォーマット)の中にあるMySQLアカウントにすべきです。user_name の値とhost_name の値が両方共必要です。CURRENT_USERをCURRENT_USER()として附与することもできます。DEFINER の初期値はCREATE PROCEDUREもしくはCREATE FUNCTIONもしくはステートメントを実行するユーザです。(これはDEFINER = CURRENT_USERと同じです。)

実際にローカル接続とリモート接続の時の CURRENT_USER を SELECT してみると分かりますが、こんな感じになります。
つまり、ローカル接続のときとリモート接続の時で違う DEFINER になっているわけです。

【ローカル接続: 】 mysql> select CURRENT_USER; +-------------------+ | CURRENT_USER | +-------------------+ | hogeuser@locahost | +-------------------+ 【リモート接続】 mysql> select CURRENT_USER; +--------------+ | CURRENT_USER | +--------------+ | hogeuser@% | +--------------+

つまり、このホスト名の部分は MySQL の認証機構の根幹に関わっているため省略することができません
また、DEFINER の値は View の呼出に時に SQL の実行ユーザーとして使われることもあります*1

とりあえず、ストアドについては下記の SQL で DEFINER を一括してアップデートすることができることが分かりました。

UPDATE `mysql`.`proc` SET definer = 'hogeuser@%' WHERE definer='hogeuser@localhost' AND db='fugadb';
  • *1: SQL SECURITY { DEFINER | INVOKER } が DEFINER と指定されている場合(INVOKER の場合は呼び出したユーザーの権限で実行となる)。

at 22:28 |
2013/11/21

さよなら Winamp

mp3  eol 
Winamp - さよなら Winamp

90年代にパソコンで mp3 を聞いていた人は一度は使ったことがあるであろう、Winamp ですが 16年の歴史に幕を閉じるようになったようです。懐かしくなって、まだ PC に残っていた Winamp を久しぶりに起動してみました。スクリーンショットは Winamp 5 で撮っていますが、Classic スキンを使っていたので見た目は全盛を誇った Winamp 2 そっくりになっています。当時はこの見た目じゃないと落ち着かなかったんですよね。

さよならWinamp、16年の歴史に幕。来月でダウンロード終了&サイト閉鎖 - Engadget Japanese

メディアプレーヤー Winamp の開発元 Nullsoft は、2013年12月20日をもって Winamp の配布を終了することを明らかにしました。公式サイト Winamp.com と付随サービスも同日をもって終了し、16年以上の歴史に幕を下ろすことになります。

    at 22:11 |
    2013/11/20

    bash で超簡易なテストドライバを書く

    sh  testing 

    プログラムをひとつひとつ起動して、いくつかのテストケースを標準出力に放り込むという作業をひたすらやるという一種のルーチン作業を毎週こなしているのですが、いい加減面倒になってきたので bash を使って少し自動化することにしました。今回はあまり時間もかけられないので bash で簡単なスクリプトを組んで済ますことにしました。

    汎用化することを考えると、1つのテストケースがテキスト1行に対応すると分かりやすいので、read を使ってファイルを1行ずつ読んでプログラムの標準入力に放り込むことにします。というわけで、下記のようなコードを書いてみました。これで単純なケースではうまく行ったのですが、問題は下記のようにテストケースの途中に改行が入っていたりするとうまく動かないこと。

    test.sh

    #!/bin/bash while read line ; do echo -e "$line" | awk '{print NR,$0}' echo "---" done <<EOT aaa\nbbb\nccc ddd\neee\nfff ggg\nhhh\niii jjj\nkkk\nlll EOT

    どうやら read が \ をメタキャラクタだと解釈してまうのが問題のようです。

    $ ./test.sh 1 aaanbbbnccc --- 1 dddneeenfff --- 1 gggnhhhniii --- 1 jjjnkkknlll ---

    これまでも read は IFS を変更して TSV を解釈させたりといろいろやっていますが、ちゃんと read のマニュアルを読んだことがなかったので、この機会に bash の read リファレンスに目を通してみます。この read は bash のビルトインコマンドなので、which read としても見つかりませんし、man read とすると bash のビルトインのマニュアルが出てきます。

    すぐに -r が \ をエスケープキャラクタと見なさなくなる設定だということが分かりました。

    test2.sh

    #!/bin/bash while read -r line ; do echo -e "$line" | awk '{print NR,$0}' echo "---" done <<EOT aaa\nbbb\nccc ddd\neee\nfff ggg\nhhh\niii jjj\nkkk\nlll EOT

    これで予想どおり動くようになったので、一件落着。

    $ ./test2.sh 1 aaa 2 bbb 3 ccc --- 1 ddd 2 eee 3 fff --- 1 ggg 2 hhh 3 iii --- 1 jjj 2 kkk 3 lll ---

      at 23:01 |
      2013/11/20

      Bitcasa の容量無制限プランが$99/年から$999/年に

      cloudstorage  priceincrease 

      容量無制限で月額10ドル(年額99ドル)という触れ込みだった、Bitcasa が料金プランを変更して、容量無制限プランの料金が大幅に引き上げられました*1。新プランで月額10ドルで使えるのは 1TB までになっています。

      現在の Google のサブスクリプションが切れたら Bitcasa かなと思っていたので、これは残念すぎる感じですね。昔、Google Drive の正式サービス化の時もストレージが値上げされて困ったわけですが、ストレージサービスのこういう唐突なプラン変更は参ってしまいますね。それ以上に頭が痛いのは Bitcasa は思うように速度が出ないところにもあるわけですが。

      Bitcasaが新料金体系、容量無制限プランは従来の年額99ドルから年額999ドルに -INTERNET Watch

      Bitcasaの特徴でもあった容量無制限の有料プランは、従来は月額10ドルまたは年額99ドルだったが、新料金では月額99ドルまたは年額999ドルとなっている。なお、すでに既存の容量無制限プランを契約・支払い済みのユーザーは、従来通りのプランが継続して適用されるという。
      また、無料プランは容量10GBだったが、新プランでは5GBに半減。ただし、友人を紹介することで最大20GBまで増量される。それより多い容量が必要なユーザーには、1TBで月額10ドルまたは年額99ドル、5TBで月額49ドルまたは年額499ドルの有料プランが新たに用意された。

      というわけで、写真の RAW ファイルの置き場所探しは振り出しに戻ってしまいました。


      at 20:13 |
      2013/11/19

      stone-2.3e を CentOS 上でビルドする

      networking  cli  centos 

      CentOS 上で Simple Repeater `stone' をビルドしようとしたらエラーが出てしまって、そのままの状態ではビルドできなかったので、解決方法をメモ。

      wget http://www.gcd.org/sengoku/stone/stone-2.3e.tar.gz tar zxvf stone-2.3e.tar.gz cd stone-2.3d-2.3.2.7/ vi Makefile # see below make linux-ssl cp -a stone /usr/local/bin

      StoneをLinuxでビルドする - Pieces of Thoughts を参考に Makefile に -D_GNU_SOURCE を追加するだけで OK でした。

      $ diff -u Makefile{.org,}

      --- Makefile.org 2008-02-05 08:00:00.000000000 +0900 +++ Makefile 2013-11-19 21:40:32.675584467 +0900 @@ -97,7 +97,7 @@ $(MAKE) FLAGS="-DNT_SERVICE $(FLAGS)" LIBS="$(LIBS) $(SVC_LIBS) -ladvapi32 -luser32 -lshell32 -lkernel32" $(TARGET) linux: - $(MAKE) FLAGS="-O -Wall -DCPP='\"/usr/bin/cpp -traditional\"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL $(FLAGS)" LIBS="-lpthread $(LIBS)" stone + $(MAKE) FLAGS="-O -Wall -DCPP='\"/usr/bin/cpp -traditional\"' -DPTHREAD -DUNIX_DAEMON -DPRCTL -DSO_ORIGINAL_DST=80 -DUSE_EPOLL -D_GNU_SOURCE $(FLAGS)" LIBS="-lpthread $(LIBS)" stone linux-pop: $(MAKE) TARGET=linux pop_stone

      参考

      Feature Test Macros - The GNU C Library

      — Macro: _GNU_SOURCE
      If you define this macro, everything is included: ISO C89, ISO C99, POSIX.1, POSIX.2, BSD, SVID, X/Open, LFS, and GNU extensions. In the cases where POSIX.1 conflicts with BSD, the POSIX definitions take precedence.

        at 21:42 |

        三菱東京UFJ銀行をかたるフィッシングに注意

        phishing  mufg 

        三菱東京UFJ銀行をかたるフィッシングが発生というニュースを目にしたので、自分のメールボックスを探してみたらうちにも届いていました。

        三菱東京UFJ銀行をかたるフィッシングメール - 三菱東京UFJ銀行をかたるフィッシングに注意

        文面もちょっとアレですし、送信元は @yahoo.com.tw宛先もBCCだったりと怪しさ満載なので見破るのはそれほど難しくありません。テキスト表示の場合には飛び先のURLが偽装されているのがすぐにわかりますが、HTML表示にするとちょっと分かりづらいかもしれません。(Thunderbird は警告してくれます。)


          at 12:55 |
          2013/11/18

          国立天文台の建造物7つが登録有形文化財に

          astronomy 

          先日見学した、三鷹の国立天文台にある建物7つが登録有形文化財になるというニュースを見つけたのでメモ。

          すでに登録有形文化財になっているものもあったはず・・・と思って確認してみると、国立天文台第一赤道儀室国立天文台大赤道儀室国立天文台太陽分光写真儀室の3つは既に登録されていました。この3件は行ってみればわかりますが、いかにも文化財的な雰囲気を醸し出してます。それに対して、今回指定された7件は既に登録されているものに比べるとちょっと新しい建物です。

          これらの建物の大半は常時公開コースでいつでも見学できるので、興味があれば行ってみると良いです。

          国立天文台 | 三鷹キャンパスの建造物7件が登録有形文化財に

          国立天文台三鷹キャンパスにある7件の建造物に対し、2013年11月15日の文化庁の文化審議会にて、有形文化財への登録が文部科学大臣に答申されました。その7件は、1)国立天文台レプソルド子午儀室(子午儀資料館)、2)国立天文台ゴーチェ子午環室、3)国立天文台ゴーチェ子午環第一子午線標室、4)国立天文台ゴーチェ子午環第二子午線標室、5)国立天文台旧図庫及び倉庫(旧図書庫)、6)国立天文台門衛所、7)国立天文台表門です。これらは大正期から昭和初期にかけての近代建築として保存されるべき文化財として貴重なものです。

            at 20:08 |

            xz をマルチコアで行う pxz

            cli 

            以前に並列処理の gzip である pigz というのを取り上げましたが、圧縮にさらに時間がかかる xz の並列版はないのかと思って調べてみたところ pxz というものを見つけたのでメモ。
            似たようなものに pixz もあるのですが、CentOS 5 上ではすんなりビルドできませんでした。

            アーカイブは Makefile と pxz.c だけのシンプルなものなので、とりあえず make ; make install とやればいいみたいです。

            wget http://jnovy.fedorapeople.org/pxz/pxz-4.999.9beta.20091201git.tar.xz xz -d pxz-4.999.9beta.20091201git.tar.xz tar xvf pxz-4.999.9beta.20091201git.tar cd pxz-4.999.9beta make make install # paco -D make install

            試しに Apache のログを圧縮して top を使ってプロセスを見てみるとちゃんと CPU が 199.4% になっているのでマルチコアで動いているようです。

            PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 15734 hsur 25 0 854m 304m 118m R 199.4 15.1 0:49.77 pxz

            xz は bzip2 と比べると時間はかかるものの圧縮率が高くて、bzip2 よりも展開が早いのでログを固めておくのにちょうどよいです。


              at 18:55 |
              2013/11/17

              殿ヶ谷戸庭園の紅葉

              gardens  tokyo  紅葉狩り  mitsubishi 
              芝庭 - 殿ヶ谷戸庭園の紅葉建物にある三菱の紋 - 殿ヶ谷戸庭園の紅葉
              頭上のモミジとカエデ - 殿ヶ谷戸庭園の紅葉芝庭のモミジとカエデ - 殿ヶ谷戸庭園の紅葉
              紅葉亭前 二匹の蛙 - 殿ヶ谷戸庭園の紅葉紅葉亭前から湧水方向を見下ろす - 殿ヶ谷戸庭園の紅葉
              次郎弁天池から紅葉亭を見上げる - 殿ヶ谷戸庭園の紅葉ツワブキの蜜を集めるハチ - 殿ヶ谷戸庭園の紅葉

              日立中研の庭園の後は、国分寺駅の反対側にある殿ヶ谷戸庭園*1へ。ここも都立9庭園の1つに含まれているので、先日買った都立9庭園共通年間パスポートで入ることができます。

              駅の側であまり大きくない庭園ですが、国分寺崖線を利用して作られているため、他の庭園よりも立体感がある、言うなれば縦に長い庭園になっています。ここも三菱創業家の岩崎家*2の別邸だったようなので、建物の裏口の方にまわると扉に三菱の紋が入っていたりと、在りし日の面影が残っているところも面白いですね。

              概要|殿ヶ谷戸庭園|東京都公園協会

              ここは、大正2年~4年に江口定條(後の満鉄副総裁)の別荘として整備され、昭和4年には三菱財閥の岩崎家の別邸となりました。昭和40年代の開発計画に対し本庭園を守る住民運動が発端となり、昭和49年に都が買収し、整備後、有料庭園として開園しました。

              ちょうど園内は紅葉で色づき始めていて、日立中研とはしごしているひとも多いのか狭い園内はお客さんでいっぱいでした。


              at 14:41 |

              日立中央研究所の秋の庭園開放 2013

              gardens  tokyo  紅葉狩り  bridge  hitachi 
              返仁橋 - 日立中央研究所の秋の庭園開放 2013RX-8 パトカー - 日立中央研究所の秋の庭園開放 2013
              大池 - 日立中央研究所の秋の庭園開放 2013ハケの湧水 - 日立中央研究所の秋の庭園開放 2013
              大池の白鳥 - 日立中央研究所の秋の庭園開放 2013羽ばたく白鳥 - 日立中央研究所の秋の庭園開放 2013

              昨年に引き続き、今年も国分寺にある日立製作所中央研究所の庭園開放*1に行ってきました。

              正門をくぐるとすぐに正面に谷があり、そこに橋がかかっているのですが、この橋の名前がちょっと変わっているのです。その名も「返仁橋」*2。昔は本当に「変人橋」だったようです。日立には返仁会という博士学位保持者の集まりがあり、この橋は世の中と研究所を結ぶ橋という願いが込められているのだとか。このイベントは本当に日立色がまったくなくて、もうちょっと科学的なところがあってもいいんじゃないかと思うんですけどね。

              日立返仁会とは:日立返仁会

              この「変人」の由来は、馬場博士の「世上才子と学者は自ら異なり、才子は所謂常識の豊富なるを現すが学者は然らず。是等両者の極端なるものを学者側では変人と云い、才子側では粋人と云う。何れも凡俗を脱し居るけれども、高度の発明を為すものは変人以外は期待し難い。」との持論によります。これより会員は変人と呼称することにしました。
              「変人会」は1959年 (昭和34年)に「返仁会」と改称しました。馬場大変人は、改称の理由として「社外会場での入口立看板を道往く人に珍妙な会と立ち留まって見られたり、(一番体裁が悪かったのは)『日立変人会の皆様』と呼ばれるので、コレは如何に弟子共であるにせよ、余りの迷惑は拙い」と述べています。

              庭園の木々の紅葉具合は昨年並み。池の白鳥が大人気で、白鳥にあわせて人が移動している感じでした。また、今年で退役といわれている*3マツダ RX-8 のパトカーも来ていましたね。


              at 13:06 |
              «Prev || ... 756 · 757 · 758 · 759 · 760 · 761 · 762 · 763 · 764 ·... | | Next»