MB blog

エンタープライズソフトウェアのプリセールス 兼 小さな宿泊施設のマーケターによる、ちょっとテクニカルな話題のメモです。

はじめてのMySQL on RHEL


スポンサードリンク

初めてMySQLRHEL5.4にインストールしてみました。とりあえず入れて、動かして、テーブルつくって、リモートで繋げるようになるまでの覚え書きです。

  • ダウンロード

ここから、最新の5.5.12をダウンロードします。Platformには「Red Hat & Oracle Enterprise Linux」を選択し、MySQL-5.5.12-1.rhel5.i386.tar をゲット。

  • インストール

MySQLLinuxにインストールする際、RPMパッケージ使用が推奨らしい。
http://dev.mysql.com/doc/refman/5.5/en/linux-installation-rpm.html
以下の要領で、サーバーおよびクライアントモジュールをインストールします(要root権限)。

# rpm -ivh MySQL-server-5.5.12-1.rhel5.i386.rpm
# rpm -ivh MySQL-client-5.5.12-1.rhel5.i386.rpm

以上でインストール完了。早い!

  • 起動

インストール直後はMySQLが起動していませんので、まずはSTARTします。こちらも、インストールを実行したroot権限で実行する必要があります。

# /etc/init.d/mysql start
Starting MySQL.. [ OK ]

  • rootパスワード設定

インストール直後は、rootユーザ*1のパスワードが未設定の状態なので、何はさておきパスワードを設定する必要があります。

$ mysqladmin -u root password '新パスワード'

もしくは以下のスクリプトを流して質問に答えながら設定することもできます。

$ mysql_secure_installation

これで、MySQLへログイン可能になりました。以降はroot権限は不要です。

$ mysql -uroot -p新パスワード
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.5.12 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, 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>

プロンプトが登場しました。

  • データベース作成

MySQLでいう「データベース」とは、テーブルの集合をあらわす論理的な単位のことです。OracleでいうところのDBスキーマが近いでしょうか。
以下のコマンドで作成します。

mysql> create database test_db;

作成されたデータベースは、show databases で確認できます。

  • 一般ユーザ作成

一般のmysqlユーザを作成します。CREATE USER.. をしなくても、いきなりGRANT文でユーザーが作れるようです。
GRANTは以下のような形式となります。
GRANT <権限> ON <データベース>.<テーブル> TO <ユーザ>@'<ホスト>' IDENTIFIED BY '<パスワード>';

mysql> grant select,insert,delete,update,create,drop on test_db.* to test_user@'%' identified by 'test_password';

このとき、<ホスト>部分は省略可能ですが、その場合 test_user@localhost として認識され、ローカルでの接続しか許可されなくなってしまいます。なので、リモートホストからの接続を想定している場合は、ワイルドカードを指定します。

作成したユーザでログインします。

$ mysql -utest_user -ptest_password

  • テーブル作成

テーブル作成前に、どのデータベースにテーブルをつくるのかを選択する必要があります。

mysql> use test_db;
Database changed

ここでCREATE TABLEを発行すれば、test_db内にテーブルが作成されることになります。以降は一般的なSQLなので、割愛します。

  • リモートからの接続

MySQLのクライアントモジュールがインストールされたリモートマシンから、以下のようにログインできることを確認します。

$ mysql -utest_user -h<ホスト> -ptest_password

以上。

*1:MySQLのrootユーザ。OSのrootユーザとは関係ない