Databaseの最近のブログ記事

コマンドラインでのデータベース操作もいいのですが、phpMyAdminを導入するとWeb経由でデータベースの管理が出来るようになります。

[root@jiro]/usr/ports# portinstall databases/phpmyadmin

デフォルトでは、/usr/local/www/phpMyAdmin/ にインストールされます。
こういったWeb経由での管理ツール(例えばqmailadminも)は、外部に見せる必要はないので、Webのコーナーでも書いたように、内部用のサイトに置くことをおすすめします。

バーチャル山中家では、/data/Web/lan/ が内部用サイトのディレクトリなので、そこへコピーしました。
すると、ブラウザからは、http://lan.yamanakake.com/phpMyAdmin/ でアクセスできるはずです。
ためしにインストール直後の状態でアクセスしてみると、

phpMyAdmin は、MySQL サーバーに接続しようとしました。そして、サーバーは接続を拒絶しました。
config.inc.php の中のホスト、ユーザー名およびパスワードをチェックし、
MySQL サーバーの管理人から与えられた情報にそれらが相当することを確かめるべきです。

と、丁寧に怒られます(笑)
早速、config.inc.phpを見てみましょう。

[root@jiro]/usr/ports# cd /data/Web/lan/phpMyAdmin/ [root@jiro]/data/Web/lan/phpMyAdmin# ee config.inc.php

/** * Sets the php error reporting - Please do not change this line! */ if (!isset($olderrorreporting)) { errorreporting(EALL); @iniset('displayerrors', '1'); }

変えるな!って書いてあるので、そのままにしておきます。

/** * Your phpMyAdmin url * * Complete the variable below with the full url ie * http://www.yourweb.net/pathtoyourphpMyAdmindirectory/ * * It must contain characters that are valid for a URL, and the path is * case sensitive on some Web servers, for example Unix-based servers. * * In most cases you can leave this variable empty, as the correct value * will be detected automatically. However, we recommend that you do * test to see that the auto-detection code works in your system. A good * test is to browse a table, then edit a row and save it. There will be * an error message if phpMyAdmin cannot auto-detect the correct value. * * If the auto-detection code does work properly, you can set to TRUE the * $cfg['PmaAbsoluteUriDisableWarning'] variable below. */ $cfg['PmaAbsoluteUri'] = 'http://lan.yamanakake.com/phpMyAdmin/';

インストールした先をURLで書いてねとあります。
書かなくても自動的に検出すると思うけど、上手くいかないかもよ、とも書いてあります。
ま、書いておきましょう。

$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?

ここをhttpにしておけば、WebにアクセスするたびにIDとパスワードを入力する認証方式になります。configのままにしておいて、

$cfg['Servers'][$i]['user'] = 'root'; // MySQL user $cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed // with 'config' auth_type)

ここでuserとpasswordを適切に設定しておく方法もあります。
バーチャル山中家では、LANから私しかアクセスしないので、configにしておいてパスワードを設定しました。

さて、上手くDBサーバが起動できたら、接続してみましょう。
インストール後再起動した人は大丈夫ですが、していない人はmysqlコマンドが増えたことをFreeBSDに教えてあげないといけませんね。

[root@jiro]/usr/local/etc/rc.d# mysql mysql: コマンドが見つかりません. [root@jiro]/usr/local/etc/rc.d# rehash [root@jiro]/usr/local/etc/rc.d# mysql ERROR 1045 (28000): ユーザー 'root'@'localhost' を拒否します.uUsing password: NO)

おやおや、「拒否します!」って言われちゃうと、冷たい感じです。
これはパスワードなしで接続できませんってことなので、-pをつけて起動して、パスワードを入力しましょう。

[root@jiro]/usr/local/etc/rc.d# mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 4.1.10-log

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

mysql>

無事起動できました。

インストールが終わったら、/usr/local/etc/rc.d/mysql-server.shが出来ていると思います。これは、MySQLサーバを自動起動するためのもの。
最近のものは、大抵/etc/rc.confに hoge_enable="YES" とか書かないと起動しないタイプになってきています。
インストールが終わって、すぐに再起動するのではなく、/usr/local/etc/rc.d 内にできたスクリプトを確認するようにしましょうね。

[root@jiro]~# ee /usr/local/etc/rc.d/mysql-server.sh (前略) #

Add the following line to /etc/rc.conf to enable mysql:

mysql_enable (bool): Set to "NO" by default.

Set it to "YES" to enable MySQL.

mysql_limits (bool): Set to "NO" by default.

Set it to yes to run limits -e -U mysql

just before mysql starts.

mysql_dbdir (str): Default to "/var/db/mysql"

Base database directory.

#

この部分がそうですね。やはり mysql_enable="YES" が必要のようです。

[root@jiro]~# ee /etc/rc.conf (前略) mysql_enable="YES"

としてから、

[root@jiro]/usr/local/etc/rc.d# ./mysql-server.sh start Starting mysql.

となれば、OKですね。

[root@jiro]/usr/local/etc/rc.d# ps -aux | grep mysql

してみると、

  • mysql 21080 0.0 0.3 1668 1120 p0 I 9:01AM 0:00.02 /bin/sh /usr/local/bin/mysqld_safe --user=mysql --datadir=/var/db/mysql --pid-file=/var/db/mysq
  • mysql 21103 0.0 14.5 328812 55616 p0 S 9:01AM 0:00.87 /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/db/mysql --pid-file=/var/db/mysql

のように表示されて、起動されたことが分かります。

バーチャル山中家では、portsからインストールするのを標準としています。
で、MySQLでは、コンパイル時にキャラクターセットをEUC-JPに指定しておきたいので、まずはその準備。

[root@jiro]/usr/ports# ee /usr/local/etc/pkgtools.conf (前略) MAKEARGS = { 'databases/mysql*' => [ 'WITHCHARSET=ujis'] } (後略)

このように書いておけば、portinstallの時に、ちゃんと指定してくれます。

さて、このままportinstallすると、どうもかなり遠くからソースのtarボールをもってくるようです。見ているとかなり時間がかかりそうだったので、

[root@jiro]/usr/ports# cd distfiles [root@jiro]/usr/ports/distfiles# fetch http://www.softagency.co.jp/MySQL/Downloads/MySQL-4.1/mysql-4.1.10.tar.gz

してから、

[root@jiro]/usr/ports# portinstall database/mysql41-server

としました。

参考

このアーカイブについて

このページには、過去に書かれたブログ記事のうちDatabaseカテゴリに属しているものが含まれています。

次のカテゴリはDNSです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。