徒然なるままに

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

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
MySQLを使う際には、
1、MySQLのデーモンmysqldの起動
2、mysqlを実行
という二つのプロセスが必要になります。

1のmysqldの起動コマンドは
mysqld_safeを-user=mysqlでバックグラウンド起動させるコマンド
sudo /usr/local/mysql/bin/mysqld_safe -user=mysql &
あるいは、
init.dに仕込んだ自動起動ファイルプログラムを使うコマンド
sudo /etc/init.d/mysql.server start (=service mysql.server start)
を使います。

serviceを使った方が-userとかバッググラウンド指定(&)するとかいちいち考えなくてよいので便利です。

2のmysqldの停止は
mysqladminのshutdownオプションを使ったコマンド
sudo mysqladmin shutdown
あるいは
init.dのプログラムを使うコマンド
sudo /etc/init.d/mysql.server (=service mysql.server stop)
を使います。

バックグラウンドでmysqldを動かしたら、/usr/local/mysql//bin/mysqlを実行します。

MySQLをインストール後に求められているのは
rootユーザのパスワード設定と、匿名ユーザの削除である。
rootユーザのパスワードはmysqladminを使って登録する。
以下のコマンドのnewpasswordを任意のパスワードに変えて実行する。
mysqladmin -u root password "newpassword"
mysqladmin -u root -h hostname password "newpassword"

-hを省略すると自動でlocalhostになるので二行目は必要ないかもしれない。

その後、mysqlにrootでログインする。
mysql -u root -p

-uでユーザ指定,-pがパスワード指定ですが実際にパスワードを入力するのは
Enter passwsord: と表示された後です。

mysqlにログインが出来たら、二つのSQL文で匿名ユーザを削除します。
DELETE FROM mysql.user WHERE Host='localhost' AND User='';
FLUSH PRIVILEGES;


以上で、設定終了。
スポンサーサイト
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 ←シンプルに手順を書いているので一度インストール経験があればわかりやすいです
度重なるエラーに、一度は諦めてapt-getしかけましたがなんとか無事インストールできました。
やはり、初心者は新しいもの(mysql5.6)を使おうとするべきじゃないですね。。

Downloadsなどの適当なフォルダに移ったら公式サイトからソースコードを落としてきます。
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.10.tar.gz/from/http://cdn.mysql.com/
$ tar xzvf mysql-5.6.10.tar.gz
$ sudo mv mysql-5.6.10/ /usr/local/src/ #srcは後で使うので基本残しましょう


5.5以降はCMakeを使ってビルドするので、cmakeやcmakeに必要なパッケージやライブラリをapt-getしておきます。
sysv-rc-confはrun-levelの変更やチェックに使うので、入れていない方はぜひご一緒に。
$ sudo apt-get install install -y cmake bison libncurses5-dev libncursesw5-dev sysv-rc-conf


その後は解凍したディレクトリに移って
$ sudo cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.19 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATIO N=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_PIC=1
$ sudo make
$ sudo make install


オプションの指定でミスった場合は
$ sudo rm CMakeCache.txt

して再度cmakeできます。

これでインストールはひとまず完了しました。
次の記事は各種設定です。

kamiyasu

Author:kamiyasu

QR

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