MySQLをインストールする

ダウンロード

PostgreSQL 7.4.16に引き続き、MySQLを勉強しようと思い立った。ZaurusSL-C3000)用のMySQLGoogle検索したところ、以下のURLにMySQL 3.23.49を発見した。
欲しいものがそこにある、非常にありがたいことだ。

http://www.killefiz.de/zaurus/showdetail.php?app=2515

インストール

いつも通り、「ソフトウェアの追加/削除」でインストールを実行した。
PostgreSQL同様に大きいので、完了までに数分間待つ必要があった。

初期設定

取り敢えず起動

先ずは以下のコマンドを実行し、取り敢えず起動することを確認する。

# /etc/rc.d/init.d/mysql start
Starting MySQL database server: mysqld.
# mysqlshow
+-----------+
| Databases |
+-----------+
| mysql     |
+-----------+
# /etc/rc.d/init.d/mysql stop
Stopping MySQL database server: mysqld.
セキュリティ設定

インストール直後のMySQLデータディレクトリは/var/lib/mysqlだが、以下の通りパーミッションが誰でもアクセス可能に設定されているので、オーナーとパーミッションを設定し直す。

# ls -l /var/lib/mysql
drwxrwxrwx    3 root     qpe             0 Dec 31 18:12 ./
drwxr-xr-x    5 root     root            0 Dec 31 18:09 ../
drwxrwxrwx    2 root     qpe             0 Dec 31 18:09 mysql/
# chown -R daemon:daemon /var/lib/mysql
# chmod 700 /var/lib/mysql
# chmod 700 /var/lib/mysql/mysql
# chmod 660 /var/lib/mysql/mysql/*
環境の合わせ込み

インストール直後の環境はSL-5500用のため(だと思われるが)、これをSL-C3000用に合わせ込むために以下の設定を行った。

[debian]
debian_error_log = /var/log/mysql.err
    ↓
debian_error_log = /usr/local/mysql/mysql.log

[mysqld]
pid-file = /var/lib/mysql/mysqld.pid
    ↓
pid-file = /usr/local/mysql/mysqld.pid

datadir = /var/lib/mysql
    ↓
datadir = /usr/local/mysql

# このセクションの最後に追加
    ↓
skip-innodb
  • /etc/rc.d/init.d/mysqlを以下のように変更。
pid_file=/var/lib/mysql/mysqld.pid
    ↓
# 上記行の下に追加(/usr/bin/safe_mysqldからコピー)
if [ -r /etc/mysql/my.cnf ]; then
  tmp=`grep '^pid-file' /etc/mysql/my.cnf | sed 's/.*=[\t ]*//'`
  if [ -n "$tmp" ]; then
    pid_file=$tmp
  fi
fi

動作確認

最後に簡単な動作確認を行って見た。

$ mysqladmin create test
$ mysqlshow
+-----------+
| Databases |
+-----------+
| mysql     |
| test      |
+-----------+
$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13 to server version: 3.23.49-log

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

mysql> use test;
Database changed
mysql> create table test (
    -> id integer,
    -> name char(40),
    -> age integer
    -> );
Query OK, 0 rows affected (0.67 sec)

mysql> insert into test values (1, 'pochy9n', 21);
Query OK, 1 row affected (0.56 sec)

mysql> select * from test;
+------+---------+------+
| id   | name    | age  |
+------+---------+------+
|    1 | pochy9n |   21 |
+------+---------+------+
1 row in set (0.56 sec)

mysql> \q
Bye
$ mysqlshow test test
Database: test  Table: test  Rows: 1
+-------+----------+------+-----+---------+-------+---------------------------------+
| Field | Type     | Null | Key | Default | Extra | Privileges                      |
+-------+----------+------+-----+---------+-------+---------------------------------+
| id    | int(11)  | YES  |     |         |       | select,insert,update,references |
| name  | char(40) | YES  |     |         |       | select,insert,update,references |
| age   | int(11)  | YES  |     |         |       | select,insert,update,references |
+-------+----------+------+-----+---------+-------+---------------------------------+

上記の "mysql>" はmysqlコマンドの入力プロンプトである。

これでMySQLを勉強するモバイル環境も手に入った。

偉大なる先人に感謝する。