mysqlのrootのパスワードを初期化

なぜかMySQLにログインできなくなってあたふた。原因がよく分かっていないのですが、直前にパスワード関連でいじったのは、こちらのエントリでの認証プロトコル程度。といっても認証プロトコル変更後も、しばらくはログインできていたので謎です…。


ともかく、パスワードを初期化することにしました。例によってMySQLリファレンス参照です。
http://dev.mysql.com/doc/refman/5.1/ja/resetting-permissions.html

パスワード変更方法

まず適当なディレクトリ以下に、適当なテキストファイルを作成します。今回はC:\以下にmysql-init.txtを作成しました。

# touch mysql-init.txt
# ls mysql*
mysql-init.txt

ちゃんとファイルが作成されていることを確認したら、mysql-init.txtを編集して保存します。必要なのはたった一行。

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('ぱすわーど');


準備が整ったところで、MySQLサーバを停止します。マニュアルに従い、コントロールパネルから落としました。「コントロールパネル>管理ツール>サービス」と進んで、ローカルのサービスからMySQLを選択、「サービスの停止」を指定します。

次に、MySQLのインストールディレクトリ(便宜上"MYSQL_HOME"と表示)へ移動します。続いて、コマンドを入力。

# cd [MYSQL_HOME]
# ./bin/mysqld-nt --init-file=C:/mysql-init.txt


これで初期化完了です!

Ruby/MySQLのインストール

Rubyスクリプトを書いていて、MySQLに接続したくなったため、探してきました。


RubyからMySQLを使おうとした場合、Ruby/MySQLか、あるいはMySQL/Rubyなどといったライブラリが必要になります。すごく…似てます……、と思ったら、どちらもとみたまさひろさんが作者とのこと。
Ruby/MySQL : http://www.tmtm.org/ruby/mysql/
MySQL/Ruby : http://www.tmtm.org/mysql/ruby/


http://www.gesource.jp/programming/ruby/database/mysql.htmlによれば、二つのライブラリの特徴は、以下のように分かれているようです。
MySQL/RubyはCで書かれているため高速ではあるもののコンパイラが必要。
Ruby/MySQLRubyで書かれているため低速ではあるもののコンパイラは不要。


MySQL/Rubyの方が高速とのことで、初めはこちらを使おうと考えていました。ところが、作者の方によれば"MySQL/Ruby終了のお知らせ"とのこと。Ruby/MySQLをインストールすることにしました。
MySQL/Ruby終了のお知らせ : http://www.slideshare.net/tmtm/mysqlruby

インストール方法

公式サイトを参考にインストールしていきます。
http://www.tmtm.org/ruby/mysql/

大きな流れとしては

  1. DL・解凍
  2. 解凍して出てきたtest.rbを用いてMySQLに接続できるか確認
  3. インストール

となっています。

MySQLUNIXドメインソケットを調べるというステップもあるようですが、今回はWindows環境の為、必要がないようでした。

解凍
# cd ruby-mysql-0.2.6
# tar zxvf ruby-mysql-0.2.6.tar.gz
test.rbの実行

・コマンド

# ruby ./test.rb localhost root ぱすわーど

・エラー

「ソケット'/tmp/mysql.sock'を通じてローカルのMySQLサーバーに接続することが出来ません」

"localhost"の部分を"127.0.0.1"にしたことで解決。けれども再び別のエラー
・コマンド

# ruby ./test.rb 127.0.0.1 root ぱすわーど

・エラー

Client does not support authentica
tion protocol requested by server; consider upgrading MySQL client (Mysql::Error
)

サーバとクライアント間のMySQLのバージョン差異から発生したエラーと読めます。パスワードのハッシュの持ち方が違うらしく、認証プロトコルの互換性がないようです。


MySQLのリファレンスを参考に、MySQLにログインした上で以下のコマンドを実行。

mysql> set password = old_password('ぱすわーど');
mysql> flush privileges;


今度こそtest.rbを実行!

# ruby ./test.rb 127.0.0.1 root ぱすわーど
connect.............ok
create_db...........ok
create_table........ok
insert..............ok
select..............ok
update..............ok
drop_table..........ok
drop_db.............ok
close...............ok

無事に実行できたようです。

インストール
# ruby ./install.rb

これでインストール完了!

余談

"Can't connect to local MySQL server through socket"に関連して、このページが分かりやすかったです!
http://www.hi-ho.ne.jp/tsumiki/book_sup2.html




おしまい。

2010年参議院選挙公約(マニフェスト)へのリンク集

自分用メモ。こうして見ると、いろいろな書式やあるんですね…。


書式は


以下にまとめ。

新しくブログ始めます。

こんにちは。

istwar改め@moko_istです。

夏季休暇を終えて、新しくWebアプリを作っています。丁度良い区切りですので、今日から学習内容はこちらの方でまとめてようと思います。

しばらくはテーマをちょこちょこ変更する可能性が高いです…。

よろしくお願いします。

phpMyAdminでインポートできない大きなSQLファイルを、BigDumpで簡単インポート

以前そこそこ大きなMySQLのダンプを別サーバにインポートしようとしました。

普段利用しているphpMyAdmin経由でインポートしようとしたのですが、やはりファイルサイズの制限やらタイムアウトやらで引っかかりました。もちろんphp.iniを編集しても良いのですが、以前も設定しなおした記憶が蘇ります…。そんなときBigDumpなるものを耳にしたので、試しに利用してみました。

結果。とっても簡単に扱えてすぐにインポートが終わりました。ご満悦。ということで、今回はBigDumpの使い方をメモしておこうと思います!

ローカルなら

mysql hogedb < hogedb.sql -u root -p

の一行で済んだのに…

BigDumpとは

phpフリーソフトで、巨大なSQLファイルを分割してインポートしてくれます。
公式サイト:http://www.ozerov.de/bigdump.php

使い方目次

  1. DL・解凍
  2. bigdump.php編集($db_server, $db_name, $db_username, $db_password, $db_connection_charset)
  3. サーバ上に任意のディレクトリを作成し、作成ディレクトリ以下にbigdump.phpsqlファイルをアップロード
  4. ブラウザからbigdump.phpにアクセス
  5. "Start Import"クリックでインポート開始
  6. ディレクトリを削除しておしまい

使い方詳細

1. DL・解凍

前述の公式サイトからDLします。
http://www.ozerov.de/bigdump.php
解凍すると、bigdump.phpがこんにちは。

2. bigdump.php編集

bigdump.php を編集しましょう。
編集するといってもたかだか5行程度で事足りました。
38〜41行目付近。

$db_server   = '';    //サーバ名
$db_name     = '';    //DB名
$db_username = '';    //ユーザ名
$db_password = '';    //パスワード

参考サイトさんではこの4行で良いとありましたが、私は文字化けを起こしてしまったので、文字コードも設定しました。
66行目付近。

$db_connection_charset = 'utf8';

設定はたったこれだけ。

3. サーバ上に任意のディレクトリを作成し、作成ディレクトリ以下にbigdump.phpsqlファイルをアップロード

サーバ上に任意のディレクトリを作成します。
そして、作成したディレクトリ以下に、bigdump.phpsqlファイルをアップロードしてください。

例えば…
"bigdump"という名前のフォルダを作成。
http://hogehoge/bigdump/bigdump.php
http://hogehoge/bigdump/hogehoge.sql
といった具合です。

4. ブラウザからbigdump.phpにアクセス

さっきの例ですと、
http://hogehoge/bigdump/bigdump.php
と打ち込みましょう。

5. "Start Import"クリックでインポート開始

設定が正しければ、アップロードしたダンプファイルが一覧に表示されているはずです。
対象ファイルを見ると、"Start Import into 'DB名' at 'サーバ名'"と書いてあるので、Start Importをクリック。
これだけでインポートされます。
どこまでインポートできたか%が表示されるのがちょっと嬉しい。

6. ディレクトリを削除しておしまい

データがちゃんと入っているか確認。
最後に、bigdump.phpとダンプファイルを削除しておきましょう。
おしまい。


所要時間数分。ありがたや、ありがたや。またお世話になるかも。