今回は、MySQLをインストールしてみます。
ただ、CentOS 5 の場合、yumを使って デフォルトでインストールされるのは、MySQL5.0系です。
また、CentOS 6 Scientific Linux 6 の場合、デフォルトでMySQL5.1系がインストールされます。
ここでは、いずれにせよ MySQL 5.1 系をインストールする方法について簡単に解説してみます。
あえて、ここでは、5.1系のインストールにこだわっていますが、今後のサポート等々考慮すれば、できる限り MySQL 5.5系をインストールされることをおすすめいたします。
- 目次
- 履歴
2010年7月17日 初版
MySQL5.1系をインストール
CentOS 5
- MySQL5.1系のあるリポジトリをインストールします。
以下の作業は、 あえてphp5.2系をインストールする(CentOS 5,CentOS 6,Scientific Linux 6) でphp5.2系をインストールする際のリポジトリ設定と同じです。 あえてphp5.2系をインストールする(CentOS 5,CentOS 6,Scientific Linux 6) に続けて作業を行っている方は、下記の作業は不要です!!
もしもphp5.2系のインストールをせずに、このページをみている方は、以下の作業が必要になるでしょう。
$ wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/ius-release-1.0-10.ius.el5.noarch.rpm $ wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/epel-release-5-4.noarch.rpm $ rpm -Uvh *-release*rpm Preparing... ########################################### [100%] 1:epel-release ########################################### [ 50%] 2:ius-release ########################################### [100%]
64bit版は、上記のwgetで指定しているURLのi386をx86_64として同じ操作を行います。
また、ファイル名は、
- ius-release-x-x.ius.el5.noarch.rpm
- epel-release-x-x.ius.el5.noarch.rpm
※32bit版と64bit版では、ファイル名が異なることがあります。
(以下のサイトでファイルの一覧表示が確認できます。)
32bit版:http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/
64bit版:http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/
一つ一つ確実にインストールしたいなら、以下の順番で行います。
CentOSのバージョンによっては、以下のような警告がでることがあります。
特にこの警告は、致命的な問題ではないので、先へ進みましょう。
$ rpm -Uvh epel-release-1-1.ius.el5.noarch.rpm 警告: epel-release-1-1.ius.el5.noarch.rpm: ヘッダ V3 DSA signature: NOKEY, key ID 9cd4953f 準備中... ########################################### [100%] 1:epel-release ########################################### [100%] $ rpm -Uvh ius-release-1-4.ius.el5.noarch.rpm 警告: ius-release-1-4.ius.el5.noarch.rpm: ヘッダ V3 DSA signature: NOKEY, key ID 9cd4953f 準備中... ########################################### [100%] 1:ius-release ########################################### [100%]
- 現在、インストール済のMySQLをアンインストールします。
- 現在のインストール済MySQLパッケージを確認する。
$ rpm -qa | grep mysql mysql-5.0.77-4.el5_5.3 php52-mysql-5.2.13-3.ius.el5
- インストール済mysqlパッケージをすべて削除する。
※php系は、除きます。
$ yum erase mysql Loaded plugins: fastestmirror Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package mysql.x86_64 0:5.0.77-4.el5_5.3 set to be erased --> Processing Dependency: libmysqlclient.so.15()(64bit) for package: dovecot --> Processing Dependency: libmysqlclient.so.15()(64bit) for package: php52-mysql --> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15)(64bit) for package: dovecot --> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15)(64bit) for package: php52-mysql --> Running transaction check ---> Package dovecot.x86_64 0:1.0.7-7.el5 set to be erased ---> Package php52-mysql.x86_64 0:5.2.13-3.ius.el5 set to be erased --> Finished Dependency Resolution Dependencies Resolved ========================================================================================== Package Arch Version Repository Size ========================================================================================== Removing: mysql x86_64 5.0.77-4.el5_5.3 installed 8.1 M Removing for dependencies: dovecot x86_64 1.0.7-7.el5 installed 3.7 M php52-mysql x86_64 5.2.13-3.ius.el5 installed 191 k Transaction Summary ========================================================================================== Remove 3 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : dovecot 1/3 Erasing : php52-mysql 2/3 Erasing : mysql 3/3 Removed: mysql.x86_64 0:5.0.77-4.el5_5.3 Dependency Removed: dovecot.x86_64 0:1.0.7-7.el5 php52-mysql.x86_64 0:5.2.13-3.ius.el5 Complete!
ここで、php52-mysqlまで、一旦、削除していることに注意してください。
後で、phpからつながらないなども問題が発生します。
mysqlのインストールを終えたら、再度、php52-mysqlをインストールしておきましょう。
- 現在のインストール済MySQLパッケージを確認する。
- MySQL5.1系をインストールする。
$ yum -y install mysql51 mysql51-devel mysql51-server mysqlclient15 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * addons: ftp.iij.ad.jp * base: ftp.iij.ad.jp * epel: ftp.iij.ad.jp * extras: ftp.iij.ad.jp * ius: ius.linux-ninja.com * updates: ftp.iij.ad.jp Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package mysql51.x86_64 0:5.1.47-2.ius.el5 set to be updated --> Processing Dependency: mysql51-libs = 5.1.47-2.ius.el5 for package: mysql51 --> Processing Dependency: libmysqlclient_r.so.16(libmysqlclient_16)(64bit) for package: mysql51 : : : : : Installing : mysql51-devel 14/14 Installed: mysql51.x86_64 0:5.1.47-2.ius.el5 mysql51-devel.x86_64 0:5.1.47-2.ius.el5 mysql51-server.x86_64 0:5.1.47-2.ius.el5 mysqlclient15.x86_64 0:5.0.91-1.ius.el5 Dependency Installed: e2fsprogs-devel.x86_64 0:1.39-23.el5 keyutils-libs-devel.x86_64 0:1.2-1.el5 krb5-devel.x86_64 0:1.6.1-36.el5_5.4 libselinux-devel.x86_64 0:1.33.4-5.5.el5 libsepol-devel.x86_64 0:1.15.2-3.el5 mysql51-libs.x86_64 0:5.1.47-2.ius.el5 mysqlclient15-devel.x86_64 0:5.0.91-1.ius.el5 openssl-devel.x86_64 0:0.9.8e-12.el5_4.6 perl-DBD-MySQL.x86_64 0:3.0007-2.el5 zlib-devel.x86_64 0:1.2.3-3 Complete!
- 最後にバージョンチェック
$ mysql --version mysql Ver 14.14 Distrib 5.1.47, for redhat-linux-gnu (x86_64) using readline 5.1
Distrib 5.1.xx と出力されれば、OKですね。
|
CentOS 6 Scientific Linux 6
CentOS 6 Scientific Linux 6 の場合は、先にも記述したとおり
MySQL 5.1 系がデフォルトでインストールされますから、何もしないで、yum でインストールするだけです。
|
インストールを終えたら、バージョンチェックしておきましょう。
|
Distrib 5.1.xx と出力されれば、OKですね。
MySQL5.1系の初期設定
MySQLの初期設定は、初期設定(/etc/my.cnf)で行います。
|
上記内容は、あくまで参考までに。各サーバーの環境によって設定する内容も異なりますから、確認の上、編集しましょう。
編集を終えたら保存します。
※table_cacheは、5.1系から、table_open_cache とtable_definition_cacheへ変更されています。
MySQL5.1系を起動する
ここまでできたら、MySQLを起動しましょう。
|
起動が正しくできたら、再起動しても起動するように設定しましょう。
|
ユーザとデータベースを作成
ここまででMySQLは、使えます。
ここからは、簡単ながら、データベースをユーザを作成してみましょう。
- mysqlサーバーの管理者でmysqlへログインする
$ mysql -u root ... mysql> use mysql; mysql>
mysql> のプロンプトが表示されてばOKです。
以降の説明は、mysql>のプロンプトから、mysqlのsql分を発行して、mysqlサーバーの設定を行っていきます。 そのため、必ず最後に;の文字列を入力することをお忘れなく。
- mysqlサーバーの管理者パスワードを設定する
mysql> set password for root@localhost=password('hogehoge');
上記では、hogehogeがパスワードになります。
- 不要なmysqlのデフォルトユーザを削除する
mysql> select user,host from mysql.user; +------+-----------------+ | user | host | +------+-----------------+ | root | 127.0.0.1 | | | localhost | | root | localhost | | | host.hoge.orz | | root | host.hoge.orz | +------+-----------------+ 5 rows in set (0.00 sec) mysql> delete from mysql.user where user='';
最初のselect user … で、現在登録されているユーザをすべて表示しています。
この中で、userの欄に空白があるものがありますから、この空白のユーザは、まず、削除しておきます。
delete from mysql.user … で、実際に削除しています。
※特に空白のユーザ名がない場合は、この操作は不要です。
- mysqlのユーザを追加する
mysql> insert into user set user="hoge", password=password("hogehoge"), host="localhost";
hoge@localhostで、hogehogeでログインできるようになります。
また、他のホストからのアクセスを許可したい場合は、ここで指定している host=”localhost” の localhostを変更し、上記のイメージでSQLを発行します。
例)
host2.exmapl.com というホストから許可したい場合は、以下のようにすれば良いです。
mysql> insert into user set user="hoge", password=password("hogehoge"), host="host2.exmapl.com";
また、このホスト名は、IPアドレスを指定することもできます。
例えば、ローカルLAN内の”192.158.1.128″からのアクセスを許可したい場合は、以下のようにすれば良いです。
mysql> insert into user set user="hoge", password=password("hogehoge"), host="192.158.1.128";
- データベースを追加する
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec) mysql> drop database test; mysql> CREATE DATABASE hogedb;
最初にshow databases;で、現在登録されているデータベースを確認します。
この中で、testがあれば、それは、デフォルトで設定されているテスト用のデータベースなので、ここでは、次のdrop database test;で削除しています。
最後にCREATE DATABASE hogedb;で、hogedbというデータベースを作成しています。
- mysqlの新規ユーザが新規データベースを操作できるようにする
mysql> grant all on hogedb.* to hoge; ... mysql> grant all on hogedb.* to hoge@192.158.1.128; ...
上記の設定で、hogedbへのフルアクセスをhoge@localhostが行えるようになります。
以下のようなエラーが発生したら、
ほとんどの場合、データが更新されていないので、そんなデータありません・・・みたいなエラーなので、mysql> grant all on hogedb.* to hoge@192.158.1.128; ERROR 1133 (42000): Can't find any matching row in the user table
のようにFLUSH PRIVILEGES を実行してあげてデータを更新してあげるとうまくいくことがほとんどです。お試しを。mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.04 sec) mysql> grant all on hogedb.* to hoge@192.158.1.128; Query OK, 0 rows affected (0.00 sec)
- 最後に今まで編集したmysqlの情報を更新する
mysql> flush privileges;
この作業で、現在動作中のサーバーの情報も更新されます。
例えば、query_cache_sizeなどは、同じクエリが発行されることが多い場合は、非常に効率的にそのクエリをさばいてくれます。
ここに記述のある設定例以外にも、いろいろとパラメータはありますので、試されると良いと思います。
それらの設定によっては、高速になることもありますし、逆に低速になることもあります。いろいろと試せるのも自宅サーバーの面白味ですよね。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
2010年12月12日, 1:45 PM
とても参考になるサイトで助かっています。
[root@linux ~]# yum erase mysql
これで削除するといっしょに「dovecot」も削除されてしまいますよね、削除されないでインストールする方法はございませんか?
2010年12月13日, 3:57 AM
Rennigebさん
こんにちわ、管理人です。
コメントありがとうござます。
dovecotが削除される・・・とのことで、dovecot自身がどのような処理を行っているのか、それほど詳しくはないのですが、
$ yum erase mysql
で削除されてしまうということなら、依存関係があるということでもあると思うんですよね。
だから、無理に削除しないのは、むしろ、良くないことじゃないかなぁと思いますけど、どうでしょうか?
devcotでの設定は、/etc/devcot.conf ぐらいだと思いますので、もしも、先に設定してしまったのなら、一旦、/etc/devcot.conf を退避させて、あえて、ここでmysqlと同時に削除してしまって、再インストールされてはいかがでしょうか?
簡単なdevcotのインストールは、
http://sakura.off-soft.net/centos/dovecot.html
でも説明していますので、ご参考までに。
2010年12月15日, 10:40 PM
設定に必要な /etc/dovecot.conf は /etc/dovecot.conf.rpmsave として保存されていたので再インストール後元に戻すだけでいけました。
質問した当初は何度テストしてもメール送信出来なかったのですが、クライアント側のメールソフトを再起動したら解決という落ちで、ろくに調べもしないで質問してしまい申し訳ありませんでした^^;
2011年2月24日, 3:55 PM
この記事を見てMySQLをインストールさせて頂きました。
PHP-5.3系モジュールやphp53u-mysqlもインストールしているため、
インストールしてMySQLとApacheを再起動してみましたが、
phpinfo()におけるMySQLのバージョン表示が
Client API version 5.0.91
Client API header version 5.0.77
のままで、インストールしたはずの5.1系が表示されません。
このケースは仕様なんでしょうか???
ご存知であれば教えて頂けないでしょうか。
2011年2月24日, 5:49 PM
仕様ではないと思います。たぶん、うまくインストールできていないじゃないかなと思います。
ちなみに、自分とこのバージョンは、以下のような感じです。
mysql
Client API version 5.1.52
mysqli
Client API library version 5.1.52
Client API header version 5.1.52
2014年7月23日, 8:37 AM
この記事をみてご質問をお願いします。
CentOS6.5
PHP5.3でphpMyAdminを更新したところ、
mySqlが古いということでmySql5.6にアップデートしました。
Server version: 5.6.19 MySQL Community Serverになっているのを確認してるのですが、
phpinfo()にはClient API version 5.1.72との表示がでています。
php53u-mysqlとかもインストールする必要があるのでしょうか?
もともとPHP5.3なので不要なのか?とは思っています。
phpMyAdminにはまだエラーが表示されております。
お使いになっている PHP の MySQL ライブラリのバージョン 5.1.72 が MySQL サーバのバージョン 5.6.19 と異なります。これは予期しない不具合を起こす可能性があります。
お分かりになりましたらお教えいただけませんでしょうか?
2014年7月23日, 9:40 AM
Becky さん
コメントありがとうござます。管理人です。
さて、結論から言うと、phpとmysqlのバージョンは、非常に大事で、同じレベルのものをインストールすべきです。おそらくは、Client API version 5.1.72とのことですから、今インストールされている phpがビルド(コンパイル)された時のmysqlのバージョンは、5.1系ということなのでしょう。すると、phpは、mysqlが5.1系だと思って動作しているけど、mysqlは、5.6系が動作しているので、バージョン不一致が発生していて、動作が不安定になる可能性が大きいです。
想像しますに、mysql5.1系がインストールされている場合、本来、phpMyAdmin の最新は、4.0.10.1 ですが、4.1系以上のバージョンをインストールされたのではないでしょうか?
例えば、
phpMyAdmin 4.2.6
Current version compatible with PHP 5.3 and MySQL 5.5. Currently recommended version.
詳しくは、http://www.phpmyadmin.net/home_page/downloads.php を参照。
なので、mysqlは5.5系以上が求められます。
phpMyAdminの更新するバージョンを間違われた?のかなぁ・・・と思いました。もし、そうであるなら、phpMyAdmin のバージョンとmysqlのバージョンを戻すのが正しいとは思います。それが、無理であれば、mysql5.6系に対応したphpへアップグレードすべきなのではないかと思います。
誤ってましたら、想像ですので、ご容赦ください。
2014年7月24日, 8:52 AM
管理人様
詳細なご説明ありがとうございました。
まさに仰るとおりです。phpMyAdmin 4.2.6 (最新版)にアップデートしました。
なるほどですね。整合性があっていないことがよくわかりました。
実は先日サーバを立ち上げたのですが、BlueOnyxというホスティング用のソフトを入れ込みました。
最近はこのアプリの情報が少ないのでもがいていました。
なので、システムを管理してるのでPHP5.3以上はあげないほうがいいかと思っているわけです。
このCurrent versionをみると、
phpMyAdmin 4.2.6+PHP5.3+ MySQL5.5で問題なく動作するのであればMySQLだけをダウングレードしようとおもいますが、それでもまだエラー表示がでるのかな?と思ってしまいます。
逆に phpMyAdmin4.0.10.1まで落として入れ替える方がいいのでしょうか?
現在は不具合のコメントが出てますが、一応使えてるのでこれでも差し支えないのでしょうか?
たくさん質問してしまいすみません。
でもこの事でもう10日間以上も悩んでおりました。
本当に感謝しております。
2014年7月24日, 10:22 AM
Becky さん
コメントありがとうござます。管理人です。
MySQL5.5へダウングレード?というより、phpとMySQLを同じリポジトリからインストールすることが大事だと思います。
先にも書いたようにphpとMySQLのバージョン不一致が問題ですから、今のmysql5.6の環境にあったphpをインストールすれば良いことになります。そのphpのバージョンが、5.3ではないので困っている?ということでしょうか?
phpをそのままにしたいということであれば、デフォルトのリポジトリですかね?だとしたら、mysql5.1まで戻して、 phpMyAdmin4.0.10.1まで落とすのが間違いないかと思います。
また、mysql5.5にする場合は、そのリポジトリで提供されているphpをインストールすれば、おそらくは、Becky さんの思惑通りになるのかなぁと思います。たぶん・・・。