U-style MySQL独学日記  Since2001 メニューに戻る MySQLに戻る サーバー運用日記に戻る
タイトルLINUXにMySQLを入れる(apt-getを使って)
文書管理番号 作成日 備考
MYS0004 2005-10-03 apt-getを使ったインストール(環境Vine3.2)
今回はMySQLをインストールしてみます。VineLinuxに入っているapt-getが便利なのでコンソール(端末)からインストールします。以前はソースコードからコンパイルして利用する方法をとっていましたが、私(初心者)には難しく現在は必要なプログラムと設定がセットになっているパッケージ、RPMを利用することが多いです。RPMを管理するものがapt-getです(と思います)

まずコンソールを開きます。Vineの画面から右クリックするとメニューが開きます。そのなかの端末を開きます。GUI(グラフィカルユーザーインターフェース)を利用していない場合はrootでログインして作業を進めてください
管理者権限で行いますので必要に応じて(個人ユーザーでログインした場合画面は ユーザー名$ と表示されています。)
su と入力してエンターを押すとその後パスワードが聞かれますのでrootパスワードを入力して下さい。するとユーザー名 #
に変更されると思います。MySQLを動かす為にはいろいろなパッケージを必要に応じてインストールする必要があります。詳しくはここを参考にして下さい。今回はとりあえず必要そうなものだけをインストールします。
  1. apt-updateの実行
    これは最新バージョンがないかどうか調べるコマンドです。インストール前に必ず確認します。必要に応じてapt-checkも実行します。これはパッケージの構成に不具合がないかどうか調べるコマンドです。何も表示されなければ問題ないと思います。
    Last login: Fri Oct 7 14:22:27 2005 from 192.168.1.101
    [ustyle@serredli ustyle]$ su
    Password:
    [root@serredli ustyle]# apt-get update
    取得:1 http://updates.vinelinux.org 3.2/i386 release [2535B]
    2535B を 0s 秒で取得しました (12.7kB/s)
    ヒット http://updates.vinelinux.org 3.2/i386/main pkglist
    取得:1 http://updates.vinelinux.org 3.2/i386/main release [158B]
    ヒット http://updates.vinelinux.org 3.2/i386/devel pkglist
    取得:2 http://updates.vinelinux.org 3.2/i386/devel release [165B]
    ヒット http://updates.vinelinux.org 3.2/i386/plus pkglist
    取得:3 http://updates.vinelinux.org 3.2/i386/plus release [166B]
    ヒット http://updates.vinelinux.org 3.2/i386/updates pkglist
    取得:4 http://updates.vinelinux.org 3.2/i386/updates release [170B]
    ヒット http://updates.vinelinux.org 3.2/i386/main srclist
    ヒット http://updates.vinelinux.org 3.2/i386/devel srclist
    ヒット http://updates.vinelinux.org 3.2/i386/plus srclist
    ヒット http://updates.vinelinux.org 3.2/i386/updates srclist
    659B を 0s 秒で取得しました (3124B/s)
    パッケージリストを読みこんでいます... 完了
    依存情報ツリーを作成しています... 完了
    [root@serredli ustyle]# apt-get check
    パッケージリストを読みこんでいます... 完了
    依存情報ツリーを作成しています... 完了
    [root@serredli ustyle]# apt-get upgrade
    パッケージリストを読みこんでいます... 完了
    依存情報ツリーを作成しています... 完了
    アップグレード: 0 個, 新規インストール: 0 個, 削除: 0 個, 保留: 0 個
    [root@serredli ustyle]#
  2. MySQL関係のインストールコマンドの実行(インストール内容については下記備考を参考にしてください。)
    [ustyle@serredli ustyle]$ su
    Password:
    [root@serredli ustyle]# apt-get install MySQL-server MySQL-Max MySQL-client MySQL-shared M
    ySQL-embedded
    パッケージリストを読みこんでいます... 完了
    依存情報ツリーを作成しています... 完了
    以下の追加パッケージがインストールされます:
    MySQL-devel
    以下のパッケージが新たにインストールされます:
    MySQL-Max MySQL-client MySQL-devel MySQL-embedded MySQL-server MySQL-shared
    アップグレード: 0 個, 新規インストール: 6 個, 削除: 0 個, 保留: 0 個
    14.9MB のアーカイブを取得する必要があります。
    展開後に 32.6MB のディスク容量が追加消費されます。
    続行しますか? [Y/n]y
    取得:1 http://updates.vinelinux.org 3.2/i386/plus MySQL-server 4.0.25-0vl0 [7395kB]
    取得:2 http://updates.vinelinux.org 3.2/i386/plus MySQL-Max 4.0.25-0vl0 [1630kB]
    取得:3 http://updates.vinelinux.org 3.2/i386/plus MySQL-shared 4.0.25-0vl0 [276kB]
    取得:4 http://updates.vinelinux.org 3.2/i386/plus MySQL-client 4.0.25-0vl0 [2666kB]
    取得:5 http://updates.vinelinux.org 3.2/i386/plus MySQL-devel 4.0.25-0vl0 [930kB]
    取得:6 http://updates.vinelinux.org 3.2/i386/plus MySQL-embedded 4.0.25-0vl0 [2048kB]
    14.9MB を 26s 秒で取得しました (572kB/s)
    変更を適用しています...
    準備中... ########################################### [100%]
    1:MySQL-server ########################################### [ 16%]
    Preparing db table
    Preparing host table
    Preparing user table
    Preparing func table
    Preparing tables_priv table
    Preparing columns_priv table
    Installing all prepared tables
    051007 17:28:41 /usr/sbin/mysqld: Shutdown Complete


    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    To do so, start the server, then issue the following commands:
    /usr/bin/mysqladmin -u root password 'new-password'
    /usr/bin/mysqladmin -u root -h serredli password 'new-password'
    See the manual for more instructions.

    Please report any problems with the /usr/bin/mysqlbug script!

    The latest information about MySQL is available on the web at
    http://www.mysql.com
    Support MySQL by buying support/licenses at https://order.mysql.com

    2:MySQL-Max ########################################### [ 33%]
    Restarting mysqld.
    3:MySQL-shared ########################################### [ 50%]
    4:MySQL-client ########################################### [ 66%]
    5:MySQL-devel ########################################### [ 83%]
    6:MySQL-embedded ########################################### [100%]
    完了
    [root@serredli ustyle]#
    いろいろ書きましたが結局のところMySQL-develも依存関係のせいかインストールされてしまうんですね。何はともかく無事インストールが終了しました。
  3. 初めのセキュリティを設定する。
    これだけはMySQLを利用するしないいに限らず設定します。そうでないと万一自分の環境に誰かが入られた場合データベースにアクセスされるばかりか乗っ取られてしまいます。流れは
    1. mysqlのrootパスワードを変更
    2. mysqlデータベース上の不要なユーザー削除
    です。
    赤字は注釈です。入力しないで下さい
    [root@serredli ustyle]# /usr/bin/mysqladmin -u root password 'pass1234'
    (管理者のパスワードが設定されていないのは危険なのでここでmysqlのrootユーザーのパスワードを入力します)

    *もしここでエラーが発生するようであれば一度 reboot コマンドで再起動をかけてください。(ただ単に私が設定前のMySQLの再起動の仕方がわからないだけです。知っていれば教えていただければ幸いです)


    [root@serredli ustyle]# mysql -u root -p
    (mysqlを利用する環境を開始します)
    Enter password:
    (パスワードをにゅうりょくします)
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 2 to server version: 4.0.25-Max

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql> use mysql
    (利用するデータベースを指示します。今回はユーザーに関する設定を行うのでデータベースの管理情報がはいっているmysqlデータベースを開きます。)
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed
    mysql> select user from user;
    (どんなユーザーがいるのか確認してみます)
    +------+
    | user |
    +------+
    | |
    | root |
    | |
    | root |
    +------+
    4 rows in set (0.01 sec)
    (4名のユーザーがいますがそのうち二人は名前がありません。これが不要なユーザーです。パスワードも設定されていないので簡単にデータベースに入られてしまいます)
    mysql> delete from user where user = '';
    Query OK, 2 rows affected (0.00 sec)

    mysql> select user from user;
    (もう一度確認してみます。今度は管理者が二人いることがわかりますが、これはひとつは操作しているパソコン上rootでもう一人はネットワーク上のrootです。)
    +------+
    | user |
    +------+
    | root |
    | root |
    +------+
    2 rows in set (0.00 sec)

    mysql> delete from user where password = '';
    (しかしネットワーク上のrootはやはり危険なのでこれも削除してしまいます)
    Query OK, 1 row affected (0.00 sec)

    mysql> select user from user;
    (もう一度確認してみます。今度はパスワードが設定されているrootのみが残りようやく安心できました)
    +------+
    | user |
    +------+
    | root |
    +------+
    1 row in set (0.00 sec)

    mysql>
    コマンドの説明
    • mysqladminコマンドはmysqlデータベースの管理をするコマンドです。今回はパスワード設定に利用しました。
      mysqladmin -u ユーザー名 password '設定するパスワード'
    • mysqlコマンドはmysqlをSQL文を利用して対話(コマンドを入力しながら)的に操作できる環境を開始するコマンドです。
      mysql -u ユーザー名 -p パスワードを利用しますというオプション
      を入力するとパスワードが聞かれますので入力して下さい。-pのあとパスワードを入力することもできるのですが後ろでだれか見ているかもしれません。ここは上記の通りがよいと思います。
    • SQL文については今後学習していきますがここではデータベースを利用する為に少し使います。MySQLデータベースの管理情報も実はデータベース内にあり、そこに対してSQL文を発行して操作します。書き方はいくつかあると思うのですが今回は不要なユーザーを削除するということで上記のような流れで進めました
    • SQL文の注意として最初のデータベースをしていするuse文を除いて「;」セミコロンをつけます。つけないとエンター押しても作動しませんので注意してください。

  以上でとりあえずMySQLデータベースのインストールは終了します。

備考
どういう組み合わせにするか?

MySQLのホームページによると(同ホームページより引用)下記のような説明がありますが、正直よく分かりません。とりあえずサーバー利用が目的ですから下記を眺めながら
MySQL-server
MySQL-Max
MySQL-client
MySQL-shared
MySQL-embedded
辺りを選びました。他のものについては開発に利用したり言語との組み合わせに利用したりするようなので省略しました。使わないものをいれるとセキュリティ面でレベルが落ちたり、余分なHDDの領域を使ったりとマイナス面もあるのですが後々不安であれば全ていれてもいいと思います。勉強が目的であればローカル環境下での利用ですからそれほどセキュリティを意識しなくてもすみますし、HDDも最近大容量になりましたからそれほど気にしなくても良いと思います。自分でソースプログラムからコンパイルするとなると整合性が問題になると思いますがRPM自体これらの問題を解決する為にあるものですからこの点も問題ないと思います。ただいろいろ入れることにより不要なものまで動かすとなるとメモリーやCPUを使いますのでそれだけパフォーマンスは落ちると思いますが、しかし自分だけの環境で利用しているのならばよっぽど古いパソコンを使ってない限りそれほど気にはならないと思います。しかしこれはあくまで初心者からの見地なので実際のインストールは自己責任でお願いします。

<<以下MySQLホームページより引用>>
  • MySQL-server-VERSION.i386.rpm

    MySQL サーバ。別のマシン上で稼動している MySQL サーバに接続するだけの場合を除いて、このパッケージが必要。注意: MySQL 4.0.10 より前のバージョンでは、このパッケージは MySQL-VERSION.i386.rpm と呼ばれていた。

  • MySQL-Max-VERSION.i386.rpm

    MySQL Max サーバ。このサーバには、MySQL-server RPM のサーバには含まれていない追加機能がある。MySQL-Max RPM は MySQL-server RPM に依存するので、まず MySQL-server RPM をインストールしておく必要がある。

  • MySQL-client-VERSION.i386.rpm

    標準 MySQL クライアントプログラム。ほとんどの場合、このパッケージをインストールする必要がある。

  • MySQL-bench-VERSION.i386.rpm

    テストとベンチマーク。Perl と DBD-mysql モジュールを必要とする。

  • MySQL-devel-VERSION.i386.rpm

    Perl モジュールなど、その他の MySQL クライアントをコンパイルする場合に必要なライブラリとインクルードファイル。

  • MySQL-shared-VERSION.i386.rpm

    このパッケージには、特定の言語とアプリケーションが MySQL を動的にロードして使用するために必要な共有ライブラリ(libmysqlclient.so*)が含まれている。

  • MySQL-shared-compat-VERSION.i386.rpm

    このパッケージには、MySQL 3.23 と MySQL 4.0 の両方の共有ライブラリが含まれている。MySQL 3.23 に動的にリンクされるアプリケーションをインストールしている場合に、ライブラリの依存関係を壊さずに MySQL 4.0 にアップグレードしたいときは、MySQL-shared の代わりにこのパッケージをインストールする。このパッケージは、MySQL 4.0.13 以降のバージョンで用意されている。

  • MySQL-embedded-VERSION.i386.rpm

    組み込みの MySQL サーバライブラリ(MySQL 4.0 以降)

  • MySQL-VERSION.src.rpm

    このパッケージには、これまでのすべてのパッケージのソースコードが含まれている。このパッケージを使用して、他のアーキテクチャ(Alpha や SPARC など)上で RPM を再構築することもできる。