※代表的なターミナルエミュレータ
apt-getからパッケージインストールを実行します。
$ sudo apt-get install mysql-server mysql-common
下記確認が出るので、インストール内容を確認し”y”を入力してください。
Do you want to continue [Y/n]?y
インストール途中でパスワード設定画面に切り替わります。
| New password for the MySQL “root” user: | rootユーザでのMySQLログインパスワードを任意で指定します。 |
| Repeat password for the MySQL “root” user: | パスワードを再入力します。 |
入力後、インストールが再開しエラーなく終了すれば完了です。
MySQLサーバのインストールによって、mysqlとしてサービスに登録されています。
インストール完了と同時にMySQLサーバが起動しているので確認します。
$ sudo service mysql status
下記出力が確認出来れば問題なく、起動しています。
* /usr/bin/mysqladmin Ver 8.42 Distrib 5.1.37, for debian-linux-gnu on x86_64 Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license Server version 5.1.37-1ubuntu5.1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 26 sec Threads: 1 Questions: 312 Slow queries: 0 Opens: 285 Flush tables: 2 Open tables: 23 Queries per second avg: 12.0
apt-getからのインストール時に自動起動は有効になります。
自動起動が有効(ランレベル2,3,4,5でON)となっている事を確認します。
$ sysv-rc-conf --list | grep mysql mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQLサーバインストール時に作成される”my.cnf”をバックアップしておきます。
$ sudo cp -p /etc/mysql/my.cnf /etc/mysql/my.cnf.org
各テンプレートファイル一覧
$ ls /usr/share/doc/mysql-server-5.1/examples/my-* /usr/share/doc/mysql-server-5.1/examples/my-huge.cnf.gz /usr/share/doc/mysql-server-5.1/examples/my-innodb-heavy-4G.cnf.gz /usr/share/doc/mysql-server-5.1/examples/my-large.cnf.gz /usr/share/doc/mysql-server-5.1/examples/my-medium.cnf.gz /usr/share/doc/mysql-server-5.1/examples/my-small.cnf
※テンプレートは圧縮されているため解凍して使用します。
設定ファイルテンプレートでmy.cnfを上書きします。
テンプレートは、下記のプラン別推奨テンプレート一覧を参考にし、ご契約プランに合ったものをご利用下さい。
$ sudo gunzip /usr/share/doc/mysql-server-5.1/examples/my-[下記より選択].cnf.gz $ sudo cp -p /usr/share/doc/mysql-server-5.1/examples/my-[下記より選択].cnf /etc/mysql/my.cnf
プラン別推奨テンプレート一覧
| ZLV-256 | my-small.cnf or my-medium.cnf |
| ZLV-512 | my-medium.cnf or my-large.cnf |
| ZLV-768 | my-large.cnf |
| ZLV-1024 and ZLV-2048 | my-huge.cnf |
※my-innodb-heavy-4G.cnfについては、当マニュアルでは言及致しません。
コマンド例(ZLV-512をご契約の場合のテンプレートの適用例)
$ sudo gunzip /usr/share/doc/mysql-server-5.1/examples/my-medium.cnf.gz $ sudo cp -p /usr/share/doc/mysql-server-5.1/examples/my-medium.cnf /etc/mysql/my.cnf
上記組み合わせ以外でも、サーバ規模によりカスタム可能です。
ここでは設定ファイルテンプレートにmy-medium.cnfを利用した場合で説明していますが
各テンプレート共通の設定を載せています。
MySQL設定ファイルを編集します。
$ sudo vi /etc/mysql/my.cnf
... [mysqld] port = 3306 socket = /var/run/mysqld/mysqld.sock ... #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M ...
以下のように”default-character-set=utf8”を追記します。
... [mysqld] port = 3306 socket = /var/run/mysqld/mysqld.sock ... #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 default-character-set=utf8 [mysqldump] quick max_allowed_packet = 16M ...
MySQL設定ファイルを編集します。
$ sudo vi /etc/mysql/my.cnf
下記の追記を行うと、クライアントの文字コードに関係なく、サーバ側の設定(UTF-8)を適用します。
... [mysqld] port = 3306 socket = /var/run/mysqld/mysqld.sock ... #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 default-character-set=utf8 [mysqldump] quick max_allowed_packet = 16M ...
以下のように”skip-character-set-client-handshake”追記します。
... [mysqld] port = 3306 socket = /var/run/mysqld/mysqld.sock ... #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 default-character-set=utf8 skip-character-set-client-handshake [mysqldump] quick max_allowed_packet = 16M ...
$ sudo service mysql restart
MySQLデータベースのmysqlユーザ用ログインパスワードは下記手順に従って設定します。
なお、既存のパスワード変更についても同手順で可能です。
MySQLデータベースにrootユーザでログインします。
$ mysql -u root -p Enter password:<インストール時に指定したパスワード>
| -u | ユーザ指定オプション |
| -p | パスワード使用オプション |
下記の様にmysqlプロンプトへ遷移します。
Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
パスワード設定(変更)コマンドを実行します。
mysql> SET PASSWORD FOR <ユーザ名>@<ホスト名>=password('<新規パスワード>');
コマンド実行例(rootユーザにパスワード”rootpass”を設定)
mysql> SET PASSWORD FOR root@localhost=password('rootpass');
ホスト名は自サーバのMySQLサーバに接続している為、localhostとなります。
コマンド実行後、下記出力が確認出来れば設定できています。
Query OK, 0 rows affected (0.03 sec)
一度ログアウトして、再度ログインを試みます。
mysql> \q Bye
$ mysql -u root
| \q | mysqlプロンプト終了コマンド |
パスワード使用が有効になっている場合、下記のような出力が確認出来ます。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
パスワードオプションを使用して、MySQLデータベースにログインします。
設定したパスワードでログイン出来るか確認します。
$ mysql -u root -p
Enter password:<指定パスワード>
ログイン出来れば成功です。
Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
rootユーザにてMySQLデータベースへログインします。
$ mysql -u root -p ... mysql>
ユーザ作成コマンドを実行します。
GRANT <許可権限> ON *.* TO <ユーザ名> IDENTIFIED BY '<任意のパスワード>' WITH GRANT OPTION;
| <許可権限> | 許可するSQL操作をカンマ区切りで指定 |
| <ユーザ名> | MySQLユーザとして追加するユーザ名を指定 |
| <任意のパスワード> | 追加するユーザに対しての任意のパスワードを指定 |
コマンド例(ユーザ:test,パス:testtestにINSERT,SELECT文のみ許可)
mysql> GRANT INSERT,SELECT ON *.* TO test IDENTIFIED BY 'testtest' ; Query OK, 0 rows affected (0.03 sec)
コマンド例(ユーザ:test,パス:testtestに全権限・権限書き換え許可)
mysql> GRANT ALL PRIVILEGES ON *.* TO test IDENTIFIED BY 'testtest' WITH GRANT OPTION;
| ALL PRIVILEGES | 全ての権限を許可 |
| WITH GRANT OPTION | 権限の書き換えを許可 |
デフォルトのMySQLデーモンのログの出力先は下記のパスとなります。
/var/log/mysql.log
my.cnfに”log-error = “を追加することによって、任意のパスにログ出力が可能です。
... [mysqld] port = 3306 socket = /var/run/mysqld/mysqld.sock ... #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 default-character-set=utf8 log-error=/var/log/mysql/mysql.err [mysqldump] quick max_allowed_packet = 16M ...
ログ出力パスを変更した場合は、ディレクトリの作成および、パーミッションの設定を忘れずに実施してください。
また、my.cnfに”log = “と”log-slow-queries = “を追記することによって、ログ出力を強化することができます。
... [mysqld] port = 3306 socket = /var/run/mysqld/mysqld.sock ... #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 default-character-set=utf8 log-error=/var/log/mysql/mysqld-error.log log = /var/log/mysql/mysql.log log-slow-queries = /var/log/mysql/slow.log [mysqldump] quick max_allowed_packet = 16M ...
ここでの、ログの設定は下記の通りです。
| log-error=/var/log/mysql/mysqld.err | mysqld起動時のログ |
| log = /var/log/mysql.log | 一般ログ(MySQLデータベースログインログなど) |
| log-slow-queries = /var/log/mysql/slow.log | クエリログ |
$ sudo service mysql restart
PHPとMySQLを連携させるためaptからパッケージインストールします。
PHP+MySQLは各種CMS等のインストールに求められます。
$ sudo apt-get install php5-mysql
インストール完了後、apache2を再起動します。
$ sudo service apache2 restart
$ service mysql status
$ sudo service mysql start
$ sudo service mysql stop
$ sudo service mysql restart