Linux(CentOS 6.4)上でMySQLの最新版を使用するために、yumを使わず手動インストールする。
MySQLは公式サイトでRPMが配布されているので、それをダウンロードしてインストールするだけですむ。
以下、基本的にはここを参考に進める。
1. RPMのダウンロード
公式サイトのDwonloadから「MySQL Community Edition (GPL)」のダウンロードに進む。Linux – Genericの以下3パッケージをダウンロードする。
- Linux – Generic (glibc 2.5) (x86, 64-bit), RPM Package, Client Utilities
- Linux – Generic (glibc 2.5) (x86, 32-bit), RPM Package, Compatibility Libraries
- Linux – Generic (glibc 2.5) (x86, 32-bit), RPM Package, MySQL Server
通常、ServerとClientがあれば十分だが、Cent OSの場合、デフォルトで古いmysql-libsがインストールされており、これをバージョンアップするためにCompatibility Librariesが必要。
各パッケージの内容はここを参照。
2. インストール
postfixの依存関係でエラーがでたので、取り敢えずpostfixをアンインストール。
yum remove postfixだと、依存関係があるcronなどもアンインストールされてしまうため、rpmコマンドを使用する。
# rpm -e --nodeps postfix
MySQLのインストール。
#yum localinstall MySQL-shared-compat-5.6.14-1.linux_glibc2.5.i386.rpm #yum localinstall MySQL-server-5.6.14-1.linux_glibc2.5.i386.rpm #yum localinstall MySQL-client-5.6.14-1.linux_glibc2.5.x86_64.rpm
インストールされていることを確認。
$ yum list installed | grep MySQL
mysqlユーザとグループが追加されている。
$ cat /etc/passwd $ cat /etc/group
3. 使用準備
初期化。
# mysql_install_db --user=mysql
サービス開始。
# mysqld_safe &
mysqlにログインしてrootユーザのパスワードを設定。
# mysql -u root mysql mysql> SET PASSWORD FOR root@localhost=PASSWORD('new_password');
access denied for user ‘root’@’localhost’ (using password: NO)
のエラーでmysqlにログインできない場合は、ユーザテーブルの作成がうまくいっていない可能性があるので、ここを参考に以下で対処する。
# mysqld_safe --skip-grant-tables & # mysql -u root mysql mysql> select * from user; → 現在のユーザテーブルを確認 mysql> truncate table user; → ユーザテーブルを空に。 mysql> flush privileges; mysql> grant all privileges on *.* to root@localhost identified by 'パスワード' with grant option; → ユーザを追加 mysql> flush privileges;
以上でインストールは完了。次回からはパスワードありの以下でログインする。
# mysql -u root -p
4. 基本的なコマンド
データベースの一覧
mysql> show databases;
テーブルの一覧
mysql> use テーブル名; mysql> show tables;
テーブルの内容確認
mysql> describe テーブル名;
現在のユーザ情報確認
mysql> select user, host, password from mysql.user;
パスワードがない、匿名ユーザを削除
mysql> delete from mysql.user where password='';
データベース作成
mysql> create database データベース名 character set utf8;
ユーザ作成
mysql> grant all privileges on データベース名.テーブル名 to 'ユーザ名'@'localhost' identified by 'パスワード' with grant option; → データベース名、テーブル名は*が可能
■参考文献