徒然なるままに

個人の備忘録を中心としたブログです

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
MySQL5.6.10のインストールが完了(前の記事)したら、データベースを使うために
mysqlユーザとmysqlグループを作成します。

$ sudo groupadd mysql
$ sudo useradd -r -g mysql mysql

useraddの-rオプションはホームディレクトリを作成しないという意味です。システムアカウントを作成する時によく使われます。-gは所属するgroupの指定ですね。


次にmysqlディレクトリの所有権を先ほど設定したmysqlユーザ及びmysqlグループに設定します。
$ cd /usr/local/mysql
$ sudo chown -R mysql:mysql


ログファイルの前準備をしておきます。error.logにはエラーの解決法が乗っている可能性があるので、ここから先に何か途中でエラーがおきたらこのファイルを一度覗いてみましょう
$ sudo mkdir /var/log/mysql/
$ sudo touch /var/log/mysql/error.log
$ sudo touch /var/log/mysql/query.log
$ sudo touch /var/log/mysql/slow.log
$ sudo chown -R mysql. /var/log/mysql/



ソケットディレクトリの所有者設定
sudo chown -R mysql:mysql /var/run/mysqld


mysqlの設定ファイルであるmy.confの作成。
sudo cp support-files/my-default.cnf /etc/my.cnf
sudo vi /etc/my.cnf

my.cnf
---------------------------------------------------
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
tmpdir = /tmp
skip-external-locking


----------------------------------------------------
これは以前upt-getでmysqlをインストールしたときに残っていたmy.cnfを編集しなおしたものなので、環境によってはうまくいかないかもしれない。
うまくいかなかったら、公式の説明を読んで自分で書くか(http://dev.mysql.com/doc/refman/4.1/ja/option-files.html
他の人がちゃんと書いた(おい my.cnfを参考にしてください

最後にmysqlの初期化スクリプトを実行します。
自分はここで詰まりました。問題となったのは以前apt-getでインストールした際に残っていたmy.cnfが残って悪さをしていたからです。この不必要なmy.cnfがapt-getで入れた場合のディレクトリを参照していたのです。

解決方法の鍵は--default-file=/etc/my.cnfです。
--default-fileオプションは指定されたmy.cnf「だけ」を読み込みます。
これで他のmy.cnfを指さなくなり正常に動いてくれるはずです。
--default-fileの代わりに、「--no-defaults」でmy.cnfの設定を全く読み込まないとしてもうまくいきます。

ちなみにmy.cnfの置き場所は/etc/my.cnf・・・グローバルな設定。DATADIR(MySQL データディレクトリで今までの手順通りだと/usr/local/mysql)/my.cnf・・・サーバ固有オプション。~/my.cnf・・・ユーザ固有オプションです。
apt-getでインストールした場合、/etc/mysql/my.cnfに作られていました。


$ sudo ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --defaults-file=/etc/my.cnf

ここでOKが二回出ればやっとmysqlを使う準備が整いました。

なお[WARNING]として--explicit_defaults_for_timestampを指定するように求められると思いますが、無視して構いません。
5.6からの変更として、timestamp型のカラムに暗黙的に属性としてCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMPといったが加えられるのを抑制するためのもののようです。
CURRENT_TIMESTAMPは現在の時刻を返す関数です。
通常、カラムの属性に関数は指定できないのですがTIMESTAMP型のカラムのこの関数は例外的に許されていました。
統一性を高めるために、後にこの機能が廃止になるということらしいです。
とりあえず、現段階ではこのデフォルトの属性がついていたほうが下位verとの挙動の互換性からいっても何かと便利なので
--explicit_defaults_for_timestampは指定せずにインストールしましょう。
なお、このオプションはmy.cnfにて変更できるので深く考える必要はありません。

ディレクトリの所有者等を一部戻します。
sudo chown -R root:root ./
sudo chown -R mysql:mysql ./data


bashrcや/etc/profileにPATHを追加しておきましょう
export PATH="$PATH:/usr/local/mysql/bin"

自動で、mysqlが起動するように設定します。
sudo cp support-files/mysql.server /etc/init.d/mysql.server
update-rc.d mysql.server defaults
sudo sysv-rc.conf --list | grep mysql.server

mysql.server 0:off 1:off 2:on 3:on 4:on 5:on 6:off
このように適切にrun-levelが設定できているのを確認しましょう。

お疲れさまでした。次はmysqlの初期設定です。

(参考にしたサイト)
http://my-life-logs.blogspot.jp/2011/05/mysql-5512-ubuntu-1104.html ←詳細に経過を書いてくれているので、初めてのインストールで同じように苦労する人にはわかりやすいです
http://www.omakase.org/rdbms/mysql-5519_for_ubuntu.html ←シンプルに手順を書いているので一度インストール経験があればわかりやすいです

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://kamiyasu2.blog.fc2.com/tb.php/24-8395e4fb

kamiyasu

Author:kamiyasu

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。