Ubuntu で MySQL

  • 76
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

インストール

sudo apt-get install mysql-server

インストール手順中、 root に対するパスワード設定画面が表示されるので、 適切に設定しておく。

日本語 (UTF-8)

以下を入力してみる:

mysql -u root -p  # ユーザとしてrootを指定し、パスワードを要求する
Enter password:  # 先ほど設定したパスワードを入力
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 41
Server version: 5.5.28-0ubuntu0.12.10.2 (Ubuntu)

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> status;  # 左記のようにコマンド入力
--------------
mysql  Ver 14.14 Distrib 5.5.28, for debian-linux-gnu (x86_64) using readline 6.2

Connection id:      41
Current database:   
Current user:       root@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.5.28-0ubuntu0.12.10.2 (Ubuntu)
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    latin1  # サーバ内で扱う文字コードがlatin1(iso8859-1)になっている
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:        /var/run/mysqld/mysqld.sock
Uptime:         1 min 26 sec

これだと、サーバサイドアプリ側 (PHP, Java, etc...) から日本語を含んだデータを投入したりすると文字化けが発生してしまう。 全て UTF-8 で統一すれば良いので、まず MySQL から抜けて以下を書く:

sudo vi /etc/mysql/my.cnf  # MySQLの設定ファイルを変更する

以下のように各ディレクティブに記述を追加する:

[mysqld]
character-set-server=utf8
skip-character-set-client-handshake
default-storage-engine=INNODB

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8

MySQL を再起動し、 全て UTF-8 に変更されている事を確認する。

sudo /etc/init.d/mysql restart
mysql -u root -p
...
status;
...
Server characterset:    utf8  # UTF-8になっている事を確認する
Db     characterset:    utf8

ユーザ作成

開発環境であれば root ユーザのみでも良いかもしれないが、 全て同じユーザで作業をするのはセキュリティ上宜しくないので、 各個人のユーザを作成して作業をする。 MySQL に root でログインし、 以下のように入力しユーザを作成する:

-- 全ての権限を与える. 制限を加える場合は変更する
GRANT ALL PRIVILEGES ON *.* TO (ユーザ名)@localhost IDENTIFIED BY '(パスワード)' WITH GRANT OPTION;
FLUSH PRIVILEGES;

作成したユーザで MySQL にログインできるか確認する。

mysql -u (ユーザ名) -p
Enter password:  # 先ほど設定したパスワードを入力

PHPMyAdmin

有名な Web アプリ型の MySQL クライアント。 便利なので開発環境等では入れておいても損はないが、 本番には入れないか、 若しくは Basic 認証などを入れておいた方が良い。

sudo apt-get install php5-mysql phpmyadmin

これで /usr/share/phpmyadmin に PHPMyAdmin がインストールされるのだが、 Apache に /usr/share/phpmyadmin を有効な URL として設定しなければならない。 が Ubuntu の場合既に apt-get した時にこの設定ファイルが作成されているので、 以下のように mods-enabled にリンクを張ってやれば良い:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/mods-enabled/phpmyadmin.conf
sudo service apache2 reload  # 設定ファイルを読み込む

http://localhost/phpmyadmin/ にアクセスし、 正しく PHPMyAdmin が表示される事を確認する。