MySQLのインストール手順
(凡例)
# ・・・ root でログイン時のコマンドプロンプトを表します。
$ ・・・ root 以外 でログイン時のコマンドプロンプトを表します。
(対象OS)
・ Red Hat Linux 8.0
(参考文献)
・ MySQL & PHPでつくるWebデータベース(Spencer K Ogawa 著/エーアイ出版)
・ MySQL 徹底入門(日本MySQLユーザ会 著/翔泳社)
01. 最新のMySQLパッケージを入手する。
02. インストール済みrpmパッケージのアンインストール
03. MySQLのインストール
04. デーモンプロセス実行環境設定
05. MySQLコマンドのシンボリックリンク作成
06. 手動で、MySQLを起動する。
07. MySQL rootユーザ環境設定
08. 手動で、MySQLの停止・起動を確認する。
09. MySQLの自動起動設定
10. MySQL 一般ユーザ登録
◆ 最新のMySQLパッケージを入手する。
・ MySQLパッケージは、ここから最新のものをダウンロードしてください。
・ 上記ページの MySQL 4.0 というリンクをクリックしてください。(画面キャプチャの赤色で示した部分です。)
画面キャプチャ中"Production release"というのは、安定して動作する最新バージョンであることを意味します。
その他のリンクは、旧バージョンや開発中バージョンのものです。
・ 次のページの1番下に Source downloads というカテゴリがあります。そのカテゴリの中にある Tarball (tar.gz) という
ファイルをダウンロードしてください。(画面キャプチャの赤色で示した部分です。)
・ 私が自分のPCにインストールした当時は、バージョン4.0.18が最新だったため、ここではMySQLパッケージとして「mysql-4.0.18.tar.gz」を使用します。
◆ インストール済みrpmパッケージのアンインストール
すでにMySQLのrpmパッケージがインストール済みの場合、それが邪魔になってソースからのコンパイルが上手くいかない事があります。
その場合はrpmパッケージを削除してください。
・ まず root でログインします。
・ インストール済みrpmパッケージの検索を行います。
# rpm -qa | grep mysql
何も出力されなければ、インストールされていません。パッケージ名などが出力された場合は、以下の方法でアンインストールして下さい。
・ rpmパッケージのアンインストール
# rpm -e mysql
上記コマンドを実行した場合、rpmパッケージの依存関係のためにアンインストールできない場合があります。
このような場合は、依存関係でチェックされたパッケージをすべてアンインストールした後で、MySQLをアンインストールしてください。
◆ MySQLのインストール
・ MySQLパッケージファイル 「mysql-4.0.18.tar.gz」 を /usr/local/src 下へコピーし、下記コマンドを実行してください。
# cd /usr/local/src
# tar xfz mysql-4.0.18.tar.gz
# cd mysql-4.0.18
# ./configure --with-low-memory --with-charset=ujis --prefix=/usr/local/mysql
# make
# make install
# ./scripts/mysql_install_db
◆ デーモンプロセス実行環境設定
・ デーモンプロセス実行ユーザ作成
# /usr/sbin/adduser mysql
# passwd mysql
・ インストール先ディレクトリのパーミッション設定
# chown -R mysql:mysql /usr/local/mysql
◆ MySQLコマンドのシンボリックリンク作成
・ さしあたり必要なMySQLコマンド(mysql, mysqladmin, mysqldump)のシンボリックリンクを作成します。
# cd /usr/bin
# ln -s /usr/local/mysql/bin/mysql mysql
# ln -s /usr/local/mysql/bin/mysqladmin mysqladmin
# ln -s /usr/local/mysql/bin/mysqldump mysqldump
◆ 手動で、MySQLを起動する。
・ MySQLサーバが停止していることを確認します。
# ps ax | egrep mysql | egrep -v grep
何も表示しなければ、MySQLサーバは停止しています。
・ MySQLサーバを起動します。
# /usr/local/mysql/bin/mysqld_safe &
正常に起動すると、以下のメッセージを表示します。
Starting mysqld daemon with databases from /usr/local/mysql/var
コマンドプロンプト(#)が戻ってこない場合は、もう一度enterキーを押下してみて下さい。
◆ MySQL rootユーザ環境設定
・ MySQL rootユーザの初期パスワードを設定します。
# mysqladmin -u root password 'パスワード'
・ MySQL rootユーザの初期パスワードを変更したい場合は、以下のとおり行います。
# mysqladmin -u root -p password '新パスワード'
Enter password: 旧パスワード
・ 初期設定で存在する、パスワード無しでもアクセス可能なユーザを削除します。
# mysql -u root -p
Enter password: パスワード
mysql> use mysql
Database changed
mysql> delete from user where password='';
Query OK, 3 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
mysql> exit
Bye
◆ 手動で、MySQLの停止・起動を確認する。
・ MySQLサーバの停止
・ MySQLサーバが起動していることを確認します。
# ps ax | egrep mysql | egrep -v grep
以下のメッセージが表示されれば、MySQLサーバは起動しています。
1239 pts/0 S 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe
1257 pts/0 S 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/
・ MySQLサーバを停止します。
# mysqladmin -u root -p shutdown
Enter password: パスワード
正常に停止すると、以下のメッセージを表示します。
040516 17:36:15 mysqld ended
[1]+ Done /usr/local/mysql/bin/mysqld_safe
・ MySQLサーバの起動
・ MySQLサーバが停止していることを確認します。
# ps ax | egrep mysql | egrep -v grep
何も表示しなければ、MySQLサーバは停止しています。
・ MySQLサーバを起動します。
# /usr/local/mysql/bin/mysqld_safe &
正常に起動すると、以下のメッセージを表示します。
Starting mysqld daemon with databases from /usr/local/mysql/var
コマンドプロンプト(#)が戻ってこない場合は、もう一度enterキーを押下してみて下さい。
◆ MySQLの自動起動設定
・ rc.local ファイルの編集
・ /etc/rc.d/rc.local ファイルに以下の行を追記してください。
/usr/local/mysql/bin/mysqld_safe &
・ 参考までに、私のPCの設定ファイルを掲載しておきます。ここをクリックしてください。
・ ld.so.conf ファイルの編集
・ /etc/ld.so.conf ファイルに以下の行を追記してください。
/usr/local/mysql/lib
・ 参考までに、私のPCの設定ファイルを掲載しておきます。ここをクリックしてください。
・ Linuxマシンを再起動してください。
# /sbin/shutdown -r now
◆ MySQL 一般ユーザ登録
・ ここでは例として、「ユーザID:myuser/パスワード:mypswd」 で一般ユーザ登録を行います。
# mysql -u root -p
Enter password: パスワード
mysql> grant all on *.* to myuser@localhost identified by 'mypswd';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
mysql> exit
Bye
・ 上記操作で登録される一般ユーザには、GRANT文の発行権限がありませんが、それ以外はrootユーザと同じ権限をもちます。