MySQLをインストールする
ダウンロード
PostgreSQL 7.4.16に引き続き、MySQLを勉強しようと思い立った。Zaurus(SL-C3000)用のMySQLをGoogle検索したところ、以下のURLにMySQL 3.23.49を発見した。
欲しいものがそこにある、非常にありがたいことだ。
インストール
いつも通り、「ソフトウェアの追加/削除」でインストールを実行した。
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用に合わせ込むために以下の設定を行った。
- /varディレクトリは/home/system/varディレクトリへのシンボリックリンクのため、4MBしかない/homeディレクトリ(つまり、/dev/mtdblock3ドライブ)に圧迫を掛けないように、/var/lib/mysqlディレクトリを/usr/localディレクトリに移動。
- /etc/mysql/my.cnfを以下のように変更。
[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コマンドの入力プロンプトである。
偉大なる先人に感謝する。