Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Ubuntu で MySQL

More than 5 years have passed since last update.

インストール

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 が表示される事を確認する。

kojionilk
Android, Java, PHP あたりのプログラマ。Python の思想が好み。開発環境として OS X や Ubuntu を使う。
http://www.kojion.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away