vistaでmysqldをサービス登録する
tritonnのWindowsバイナリをd:\mysqlにコピーして、
d:\mysql\bin\mysqld-net --install mysql
とかしようと思ったら、
Install/Remove of the Service Denied!
とかでてサービス登録できない。なぜかと思ったらvistaのUACのせいらしい。コマンドプロンプト自体を明示的に「管理者として実行」して、「管理者:コマンドプロンプト」から実行したら、ふつうに登録できた。
vistaのUACは、自分が管理者アカウントでログインしているときでも、こうやって明示的に「管理者として実行」しないといけないときがあるけど、その仕組みがよくわからん。
で、サービスとして登録できたから、
net start mysql
とかしたらエラーが出て止まる。イベントログを見ると
Can't find messagefile 'C:\mysql\share\english\errmsg.sys'
とか書いてあって、どうやらデフォルトでc:\mysqlを見に行っているせいらしい。コンパネのサービスからmysqlの起動オプションに
--basedir=d:/mysql
とかつけたらようやく動きだした。
コンパネから起動オプションを追加しただけだと
再起動したら起動オプションを忘れてしまうらしい。いったんmysqlサービスを終了してから、
mysqld-nt --remove mysql
してサービスを削除し、
mysqld-nt --install MySQL --basedir=d:/mysql
みたいに起動オプション付きでサービス登録した方がよさそう。
phpmyadmin 3系とmysql 5.0系 on windows
windows(xp or vista)で、xamppのphpmyadminとmysqlを使ってruby on rails(2.3.4)からmysqlを使おうとしたら、gemでインストールしたruby(1.8.7)のmysqlドライバがmysql 5.1で使おうとすると落ちる。どうやらmysql 5.0ならOKらしい。
しょうがないんで、xamppのmysql 5.1系は削除して、mysql 5.0系を入れることにしたんだけど、ちょうどtritonnのwindowsバイナリが5.0系だったんで、それを入れることにした。
すると、phpmyadminが「show pluginsがない」というエラーを出して動かないようになってしまった。
どうやら"show plugin"だか"show plugins"だかは、mysql 5.1以降で追加されたコマンドなんだけど、phpmyadmin 3系の新しいやつはそれを問答無用で使っちゃってるんでエラーが出るらしい。
phpmyadminのソースをgrepしてみたら、"show plugins"を使っているのはlibraries/blogstreaming.lib.phpしか見あたらなかった。
どう直すのが妥当なのかよくわからないけど、どうせサポートしてない機能の情報を得ようとしているんだから、"select null"にしておいた。
副作用があるかどうかは知らん。
