MySQLを手動インストール

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;
 → データベース名、テーブル名は*が可能

 

■参考文献