バージョンの違うMySQLでmysqldumpエラーを防ぐ

mysqldumpでバックアップしたデータベースを、バージョンの違うMySQLサーバでリストアしようとしたら
シンタックスエラーで停止してしまうことがあります。

mysqldumpは、MySQLのバージョンが変わるとバージョンによっては互換性が失われることがあリます。
その場合は、古い環境に互換性のある形式でdumpし直すと解決できます。

“バージョンの違うMySQLでmysqldumpエラーを防ぐ”の続きを読む

Mac OS X YosemiteへHomebrewをインストール

以前、Mac OS X 10.6 Snow Leopardを使っていた頃からすこしブランクがあき
OS X 10.10 Yosemite で新たに開発環境を構築することになりました。

以前は、MySQLなどの導入のため
パッケージ管理システムとしてMacPortsをインストールしたのですが
なるべく既存のものを活用してくれるという特徴が気に入ったので
今回は、Homebrewのほうをインストールしてみました。

参考:
パッケージ管理システム Homebrew

HomebrewからMySQLをインストールするまで
一気に紹介します。

“Mac OS X YosemiteへHomebrewをインストール”の続きを読む

ローカルサーバへWordPressを構築

WordPressのテンプレートを大幅に改造するための開発環境として
自分の開発マシンのApache、いわばローカルサーバへWordpressを構築する方法です。

実践した環境はこちら。

  • windows 7
  • Apache 2.2
  • PHP 5.3
  • Mysql 5.5

ApacheとPHPの連携、PHPとMySQLの連携は設定済みとします。

下準備が面倒な場合、個別に環境を構築しようとしてハマってしまった場合は
xamppを利用すれば、インストールはウィザードででき、Apache、PHP、MySQLもあらかじめ連携設定済みですぐ稼働できます。

“ローカルサーバへWordPressを構築”の続きを読む

Windows7+MySQL5.5のmy.ini在り処

自宅サーバと、同じく自宅の開発機でサーバ上のデータベースをローカルネットワーク内で共有したくなったので、
MySQLサーバへ外部接続を許可する設定を探し中。

外部接続を許可するには、MySQLのユーザ権限を変更する方法と
MySQLの設定ファイルにある、「ローカルネットワークのみ接続許可」と設定されているロックを外す方法の2種類が見つかった。

そこでハマったのが、設定ファイルの在り処…

結論からいうと、ここにありました

C:\ProgramData\MySQL\MySQL Server 5.5\my.ini

以下、ハマったポイントについてメモ。

“Windows7+MySQL5.5のmy.ini在り処”の続きを読む

MySQLで既存のデータベースを表示

今あるデータベースを確認する方法。

MySQLにログインして、データベースを確認するコマンドを入力。

show databases;

これで、データベースの一覧を表示してくれる。

mysql> show databases;
+-----------------------+
| Database |
+-----------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+-----------------------+
4 rows in set (0.14 sec)

Mac OSX に MySQL をインストール(再々チャレンジ)

(MySQLのインストールは、その後挑戦したMac OS X YosemiteへHomebrewをインストールであっさり成功しました。お急ぎの場合は新しい記事をごらんください。)

最初からやり直し

$ sudo port install mysql5 +server

成功

$ sudo -u mysql mysql_install_db5

ここで失敗。同じ症状だ。

$ sudo -u mysql mysql_install_db5
 mkdir: /opt/local/var/db/mysql5/mysql: Permission denied
 chmod: /opt/local/var/db/mysql5/mysql: Permission denied
 mkdir: /opt/local/var/db/mysql5/test: Permission denied
 chmod: /opt/local/var/db/mysql5/test: Permission denied
 Installing MySQL system tables...
 120511 16:26:25 [Warning] Can't create test file /opt/local/var/db/mysql5/localhost.lower-test
 120511 16:26:25 [Warning] Can't create test file /opt/local/var/db/mysql5/localhost.lower-test
 /opt/local/libexec/mysqld: Can't change dir to '/opt/local/var/db/mysql5/' (Errcode: 13)
 120511 16:26:25 [ERROR] Aborting

120511 16:26:25 [Note] /opt/local/libexec/mysqld: Shutdown complete

Installation of system tables failed! Examine the logs in
 /opt/local/var/db/mysql5 for more information.

アクセス権限がないから、必要なディレクトリを作れないんだろう。
いいかげん焦れてきたので、MacのGUIから一時的にディレクトリのパーミッションを変更した。

改めてクリーンアップのコマンド

$ sudo -u mysql mysql_install_db5

ディレクトリが作れない問題は解消したようだ。
少し警告文が減った。

$ sudo -u mysql mysql_install_db5
 Installing MySQL system tables...
 ERROR: 1005 Can't create table 'db' (errno: 13)
 120511 16:28:01 [ERROR] Aborting

120511 16:28:01 [Note] /opt/local/libexec/mysqld: Shutdown complete

Installation of system tables failed! Examine the logs in
 /opt/local/var/db/mysql5 for more information.

調べてみると、このエラーも
「mysql」が必要なディレクトリへの権限を持っていないのが原因らしい。

エラー文中にあった、問題のディレクトリを指定し
mysql:mysqlを所有者として設定。

$ sudo chown -R mysql:mysql /opt/local/var/db/mysql5

エラーが出なかったってことは、上手くいったか?
改めてクリーンアップを実行。

$ sudo -u mysql mysql_install_db5
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'
/opt/local/lib/mysql5/bin/mysqladmin -u root -h localhost password 'new-password'

Alternatively you can run:
/opt/local/lib/mysql5/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /opt/local/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /opt/local/lib/mysql5/bin/mysqlbug script!

いけたくさい!!!!
さっそくパスを通して続きを実行してみる。

$ export PATH=$PATH:/opt/local/lib/mysql5/bin

動けー!

$ sudo mysqld_safe &
 [1] 63336
 $ 120511 21:01:31 mysqld_safe Logging to '/opt/local/var/db/mysql5/localhost.err'.
 mkdir: /opt/local/var/run: No such file or directory
 chown: /opt/local/var/run/mysql5: No such file or directory
 chmod: /opt/local/var/run/mysql5: No such file or directory
 120511 21:01:31 mysqld_safe Starting mysqld daemon with databases from /opt/local/var/db/mysql5
 120511 21:01:37 mysqld_safe mysqld from pid file /opt/local/var/db/mysql5/localhost.pid ended
[1]+  Done                    sudo mysqld_safe

…はい、ソケットソケット。

$ sudo mkdir -p /opt/local/var/run/mysql5
$ sudo touch /opt/loacl/var/run/mysql5/mysqld.sock
$ sudo chown mysql:mysql /opt/local/var/run/mysql5/mysqld.sock

今度は起動できるかな…

$ sudo mysqld_safe &
[1] 63816
$ 120511 21:30:44 mysqld_safe Logging to '/opt/local/var/db/mysql5/localhost.err'.
120511 21:30:44 mysqld_safe Starting mysqld daemon with databases from /opt/local/var/db/mysql5

いけた…?

起動確認してみる。

$ sudo mysql ping
 ERROR 1049 (42000): Unknown database 'ping'

エラーやんけ。
よく分からなくので、rootユーザでもう一度試してみる。

$ sudo mysqld_safe --user=root &
 [2] 63867
 $ 120511 21:33:06 mysqld_safe Logging to '/opt/local/var/db/mysql5/localhost.err'.
 120511 21:33:06 mysqld_safe A mysqld process already exists

[2]+ Exit 1 sudo mysqld_safe --user=root

起動確認

$ sudo mysql ping
 ERROR 1049 (42000): Unknown database 'ping'

内容が変わったけど、エラーやんけ。

$ sudo mysqld_safe --user=root &
 [2] 63908
 $ 120511 21:35:14 mysqld_safe Logging to '/opt/local/var/db/mysql5/localhost.err'.
 120511 21:35:14 mysqld_safe A mysqld process already exists

[2]+ Exit 1 sudo mysqld_safe --user=root

よく見たら、内容がすこし変わっている。
調べてみたら「もう起動してますよ!」とおっしゃっているらしい。
MySQL Workbenchを開いてみたら、確かに起動していた!

ためしにMySQLサーバをシャットダウンしてみたが、一応起動はしていたようだ。

$ sudo mysqladmin -u root shutdown
Password:
120511 22:07:29 mysqld_safe mysqld from pid file /opt/local/var/db/mysql5/localhost.pid ended
[1]+  Done                    sudo mysqld_safe

はぁぁぁ、長かった。
しかし、rootユーザのパスワード変更もできないし違和感あるわ…。
また後日やり直そうか。

Mac OSX に MySQL をインストール(再チャレンジ)

(MySQLのインストールは、その後挑戦したMac OS X YosemiteへHomebrewをインストールであっさり成功しました。お急ぎの場合は新しい記事をごらんください。)

先に行き詰まったところから、MacPortsのアップデートに成功したので
MacPorts で MySQL のインストールを再開。

“Mac OSX に MySQL をインストール(再チャレンジ)”の続きを読む

Mac OSX に MySQL をインストール(失敗編)

(MySQLのインストールは、その後挑戦したMac OS X YosemiteへHomebrewをインストールであっさり成功しました。お急ぎの場合は新しい記事をごらんください。)

検索「mac mysql」で引っかかるいろんなガイドへ載せて下さっている公式サイト(http://mysql.com/)の状態から
2012年5月現在、サイトリニューアルがあったようで
Mac用「MySQLサーバ」のインストーラをなかなか見つけられなかった。
もしかすると、どこかにあるのかもしれないけど、英語が…。

GUIツールの「MySQL Workbench」は見つけられたのでインストールしてみたけど
当然、これだけあっても使い物にならない。

MySQL Workbench:
http://www.mysql.com/downloads/workbench/

もう少し調べてみたら
インストーラの他には、MacPortsでもMySqlサーバがインストールできるもよう。

“Mac OSX に MySQL をインストール(失敗編)”の続きを読む