MySQLが起動できなくなった件(MacOSX10.6)

ターミナルから

mysql -u root -p

で、MySQLを起動しようとすると

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

っていうエラーが。

このエラーをもとにぐぐってみて、(こことかを参考に)

  • MySQLサーバーが起動していない
  • MySQLサーバーで使っているUNIXソケットとクライアントソフトで使っているUNIXソケットのパスが違う
  • なんらかの理由でソケットファイルが削除されている

特に起動できなくなった直前にmy.cnfとかいじった覚えないし、ソケットファイル格納ディレクトリのパーミンションも問題なさそう...

いろいろ試行錯誤した結果、よくわからんので再インスコ。。。

次にここを見てみた。

とりあえずrootのパスワード設定

mysqladmin -u root password 新しいパスワード

MySQLの生存確認

mysqld is alive
結果
110308 17:45:09 [Warning] Can't create test file /usr/local/mysql-5.5.9-osx10.6-x86_64/data/MacBook-Pro.lower-test
110308 17:45:09 [Warning] Can't create test file /usr/local/mysql-5.5.9-osx10.6-x86_64/data/MacBook-Pro.lower-test
110308 17:45:09 [Note] Plugin 'FEDERATED' is disabled.
mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110308 17:45:09 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110308 17:45:09 InnoDB: The InnoDB memory heap is disabled
110308 17:45:09 InnoDB: Mutexes and rw_locks use GCC atomic builtins
110308 17:45:09 InnoDB: Compressed tables use zlib 1.2.3
110308 17:45:09 InnoDB: Initializing buffer pool, size = 128.0M
110308 17:45:09 InnoDB: Completed initialization of buffer pool
110308 17:45:09  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

ってでた

なんかplugin.frmっていうファイルが見つかりません的なことが言われてるけど...

my.cnfを/etcにコピーする

初期設定ではmy.cnfというファイル自体は存在しないので、/usr/loacl/mysql~~/support-files/my-small.cnfをコピーする

cp /usr/loacl/mysql~~/support-files/my-small.cnf /etc/my.cnf

mysql.sockがないって怒られる

依然mysql.sockがないって怒られていることには変わりはない。

しかし、どうやらMySQLをセーフモードで起動することによってmysql.sockが作成されるらしい。

セーフモードで起動
sudo mysqld_safe

これは通った。が。

MacBook-Pro:~ muramatsut$ sudo mysqld_safe
Password:
110308 18:12:46 mysqld_safe Logging to '/usr/local/mysql/data/MacBook-Pro.local.err'.
110308 18:12:46 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

このままなにも起きず。。。

別のターミナルウインドウを開いて

mysql -u root -p

で、起動できました!

mysqld_safeすると /tmp/mysql.sockが生成されていることも確認。

ひとまずまた動かすことができました。。。

MySQLで日本語が?になることへの対処法

MySQLで日本語が?になってしまうことへの対処法

原因:そのデータベース(またはテーブル)の照合順序が ujis_japanese_ciになっている

対処:照合順序をutf8_general_ciに変更する。照合順序に応じて文字コードが決定されるらしい。

詳しくはこちらを参照

phpmyadminで変更するも良し、

コマンドラインから

alter table (テーブル名またはデータベース名) convert to character set utf8 collate utf8_general_ci;

とすれば、日本語が正しく表示される。

no-ipで取得したドメインをさくらのレンタルサーバに転送するようにしてみた

さくらの500円サーバ借りてて、no-ipとか無料でドメイン取ってリダイレクト先をさくらのサーバにしようとしているエントリくらいあるだろと思ってぐぐってもぱっと出てこなかったので参考程度に。

  • 手順
    • 手順1 no-ipでアカウント作成

no-ipのサイトでアカウントを作成。

ここを見ると画像つきなのでわかりやすいです。

右上の赤枠「Your No-IP」を選んで



Manage Hostsを選択



Add Hostから



こんな感じで入力して登録
※www.hoge.sakura.ne.jp. ←jpのあとに「.」がいります


    • 手順3 さくらサーバの設定をいじる

さくらのコントロールパネルから

ドメイン設定を選択



新しいドメインを追加



赤枠を選択


さっき取得したno-ipのアドレスを入れる


あとの詳細はご自由に。

以上。

引っ越しの見積もりで値切ってみた

インターネットで持って行く家具などの情報を入力すると、引っ越し大手5社くらいに見積もりの依頼をするサービスが会ったので使ってみた。

日通の引っ越しが安いとか言う話を聞いたので、ネットで見積もってみた。
ちなみに浜松→東京(約240km)

送信したとたんに、実際に見積もりに来るって言う電話がいっぱいきて焦ったけど、一番始めに電話が来たアーク引っ越しセンターさんに見積もりをしてもらい、値切った時の会話を以下に記す。

注意:以下の文章は、私の記憶をもとに会話を再構成したものであり、会話の内容は事実とは異なる場合がございます。

アーク引っ越しセンターの人(以下「アーク」)「はじめまして、私〜」名刺を渡される。

私「宜しくお願いします。」

私は、本棚とエアコン以外の家具(主なもの:テレビ、冷蔵庫、洗濯機、ベッド、カラーボックス×3、ハンガーにかかった服多数、パソコンデスク、机、テレビ台、プリンタ、イス、こたつ、カーペット、自転車、その他ダンボール数個分)を持って行くことを伝える。

アーク「一番はじめの見積もりは11万です」

私「!?(一番はじめって何だ?)」

アーク「ちなみにご予算はいくらで?」

私「3万です(キリッ」

ネットでの日通の見積もりが4万弱だったので、1万少なめに言ってみた。

アーク「3万!?3万かぁ...安いなぁ...」

アーク「(何やら電卓をいじって)  安くしても6万ですねー」

私「じゃあ、数日検討してみます」

他の引っ越し会社にも見積もりをお願いしているので保留することに

アーク「...。それって他の会社の見積もりも参考にするってことですよね?ちょっと待ってください...」

どうやらネットで大手数社に見積もりをお願いしたことを知っているようだ。

携帯電話を取り出し、(きっと)会社に連絡している。

アーク「実はトラックに他のお客様と一緒に荷物をのせると安くなるんですよ」

私「へぇー(これは値切れるフラグか?)」

アーク「荷物を○日にお預かりして、そこから1週間以内のどこかで荷物を東京の方に持って行く形になります。」

アーク「そうすると、4万数千になります。 こ れ は 安いですよ」

私「.........。どうやったら3万になりますか?」

そこからアークの人の戦いははじまった。

携帯を取り出し、会社に連絡していろいろ調べているようだった。

聞き耳を立てた限り、荷物の引き取りと、東京に荷物を持って行く時に他の客と相乗りさせることができる便を必至で探しているようだった。

そして

アーク「こ れ は 安 い で す よ。税込みで3万6千5百円です。こ れ で ど う で しょ う」

アークの人が言うには他の客の荷物をのせたトラックに荷物を相乗りさせると、あとからのせた方が安くなるとか(本当かどうかは知らない)。他にもこれ以上は、人件費とかなにやらで削れませんって、涙目になった言われたのでこの金額で頼むことにしました。

まあ、私自身に値切る能力とかがあったわけじゃなく、今回見積もりにきてくれたアークの方がすごく親切だったと思います。

□とりあえず値段を低めに言ってみる(多少無茶でも)
□荷物を他の客と相乗りさせられるかやってみる(混載便ってやつですね)
□他社の見積もりもこの後予約している
□値段を譲らない

以上の4点がポイントかな、と感じました。

もし、私と同じような引っ越しをする方は、この記事の内容を参考にするのもいいかもしれまんせんね。

*さくらのサーバでInternal Errorになる

さくらのサーバにPHPファイルをアップロードしていざ見てみるとInternal Errorになった。

エラーメッセージはこんな感じ

The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, support@sakura.ad.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

このサイトに見ると、どうやらパーミッションが原因らしい。

FTPソフトかなんかで(私の場合はWinSCP)でパーミッションを755に変更したらちゃんと動きました。

以下参考として上のサイトから引用

よく使うパーミッションのパターン

・644

rw-r--r--
通常のHTMLファイルなど。自分は読み込み、書き込みができるが、グループメンバや他人は読み込みしかできない。

・666

rw-rw-rw- CGIスクリプトが書き込むファイルなど。自分もグループメンバも他人も、読み込みと書き込みができる。

・755

rwxr-xr-x 通常のディレクトリ、コマンド、CGIスクリプトなど。誰でも読込みと実行はできるが、書き込みは自分だけ。

・777

rwxrwxrwx CGIスクリプトがファイルを作成するためのディレクトリなど。誰でもなんでもOK。セキュリティ上は少々危険。

さくらサーバでCannot modify header informationを解決

さくらのサーバにPHPファイルをアップロードして見てみると、

 Cannot modify header information

というエラーが出た。

どうやら、ソースに余分な空白がある〜とかヘッダーが〜とかいろいろ原因があるらしいです。

さらに調べているとPHP:Warning: Cannot modify header information - headers already sent by ...の解決策という記事があったのでその通りに、

【解決策】
php.iniにて
  output_buffering = Off
となっている箇所を、
  output_buffering = On
にする。

さくらサーバ管理画面の* php.ini 設定ファイル編集 *で上記の

output_buffering = On

を書いて保存したら無事動きました。