tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

mysqlをyum、rpm、ソースでそれぞれインストール(5.1と5.5)

はじめに

タイトルのままですが、mysqlのインストールをメモっておきます。 いれたっきりで忘れちゃうこと多いですしね

ながれ

  1. 環境確認
  2. yumでインストール
  3. rpmでインストール
  4. ソースからインストール

1. 環境確認

念のための環境確認

# cat /etc/redhat-release
CentOS release 6.5 (Final)

2. yumでインストール

インストール
# sudo yum -y install mysql-server
確認

一応my.cnfの確認と、起動後にバージョンの確認

※my.cnf確認
# ls /etc/my.cnf -l
-rw-r--r-- 1 root root 251  2月 13 04:42 2014 /etc/my.cnf

※一応インストールされたversion確認
※の前に当然ながら起動
# sudo /etc/init.d/mysqld status
mysqld は停止しています

# sudo /etc/init.d/mysqld start

# mysqladmin -u root -p version
Enter password:←初期のままなのでそのままEnter
mysqladmin  Ver 8.42 Distrib 5.1.73, for redhat-linux-gnu on x86_64
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
・・・省略・・・
設定

/usr/share/mysqlにcnfの雛形がいくつか用意されているのでそれ使ったり。
今回は共用MySQLサーバなのでmy-medium.cnfをコピって使います また、お試しなので詳細設定は省いて文字関連に絞って設定

※念のためバックアップ
# sudo mv /etc/my.cnf /etc/my.cnf.bk.20140619

# sudo cp -ap /usr/share/mysql/my-medium.cnf /etc/my.cnf

# vi /etc/my.cnf
-- vi追記 --
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
------------

※mysql再起動
# sudo /etc/init.d/mysqld restart

※mysql停止
# sudo /etc/init.d/mysqld stop

※そしてすぐ削除w
# sudo yum remove mysql-server mysql

※MySQL5.5からの[mysqld]は「default-character-set」ではなく「character-set-server」を使う 参考→【MySQL】mysql5.5での文字コード設定

各サンプルファイルの説明はこんな感じ
ファイル名 メモリ 説明
my-small.cnf ~64MB 小規模MySQLサーバ向け
my-medium.cnf ~128MB メモリ32~64MBのMySQメインサーバ or 128MB以下の他との共用MySQLサーバ向け
my-large.cnf ~512MB MySQLメインサーバ向け
my-huge.cnf 1GB~2GB MySQL専用サーバ向け
my-innodb-heavy-4G.cnf 4GB InnoDBメインサーバ向け(ACID、コネクション少なめ、重たいクエリ向け)

3. rpmでインストール

こちらを主に参考にさせて頂いてます

ダウンロード(準備)

http://dev.mysql.com/downloads/からrpmをダウンロードします
MySQL Community Server」をクリック

f:id:tweeeety:20140619232745p:plain

「Looking for previous GA versions?」をクリック

f:id:tweeeety:20140619232754p:plain

「5.5.38」と「Linux - Generic」を選択

f:id:tweeeety:20140619232803p:plain

下記をダウンロードします

  • Linux - Generic 2.6 (x86, 64-bit), RPM Package Client Utilities
  • Linux - Generic 2.6 (x86, 64-bit), RPM Package MySQL Server
  • Linux - Generic 2.6 (x86, 64-bit), RPM Package Compatibility Libraries

f:id:tweeeety:20140619232815p:plain

それぞれDownloadボタンからダウンロードページにいって 「No thanks, just start my download.」リンクを右クリックのリンクアドレスをコピーで行います

f:id:tweeeety:20140619232824p:plain

ってことで

ダウンロード&インストール

※ダウンロード
# cd /usr/local/src
# sudo wget http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-client-5.5.38-1.linux2.6.x86_64.rpm
# sudo wget http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-server-5.5.38-1.linux2.6.x86_64.rpm
# sudo wget http://dev.mysql.com/get/Downloads/MySQL-5.5/MySQL-shared-compat-5.5.38-1.linux2.6.x86_64.rpm

※確認
# ls MySQL* -l
-rw-r--r-- 1 root root 17713894  5月 12 23:38 2014 MySQL-client-5.5.38-1.linux2.6.x86_64.rpm
-rw-r--r-- 1 root root 50535068  5月 12 23:39 2014 MySQL-server-5.5.38-1.linux2.6.x86_64.rpm
-rw-r--r-- 1 root root  5179375  5月 14 14:30 2014 MySQL-shared-compat-5.5.38-1.linux2.6.x86_64.rpm

※デフォルトのmysql-libsを置き換え
# sudo yum localinstall MySQL-shared-compat-5.5.38-1.linux2.6.x86_64.rpm 

※Server、Clientをインストール
# sudo yum localinstall MySQL-server-5.5.38-1.linux2.6.x86_64.rpm

# sudo yum localinstall MySQL-client-5.5.38-1.linux2.6.x86_64.rpm

※shared-compat入れることについては、こちらを参照

確認

初期状態ではmy.cnfは無いので/usr/share/mysql以下にあるmy-medium.cnfとかをコピしてmy.cnfにする
また、rpmでインストール時は/etc/init.d/mysqlしかないので/etc/init.d/mysqldでも起動できるようにリンク張る

※ my.cnf作成
# sudo cp -ap /usr/share/mysql/my-medium.cnf /etc/my.cnf

※ 一応インストールされたversion確認
※ の前に当然ながら起動
# sudo /etc/init.d/mysql status
ERROR! MySQL is not running

※ /etc/init.d/mysqldじゃないよ!ってことでリンク張る
# sudo ln -s /etc/init.d/mysql /etc/init.d/mysqld 

# sudo /etc/init.d/mysql start
Starting MySQL.. SUCCESS! 

# mysqladmin -u root -p version
Enter password:←初期のままなのでそのままEnter
mysqladmin  Ver 8.42 Distrib 5.5.38, for Linux on x86_64
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
・・・省略・・・

# sudo /etc/init.d/mysqld stop
Shutting down MySQL. SUCCESS! 

※ そしてすぐ削除w
# sudo rpm -qa | grep -i mysql | xargs rpm -e
※補足1
オプション 説明
-q パッケージ情報を表示
-a インストールされている全てのパッケージを選択する
-e パッケージをアンインストールする
※補足2

たまにこんなエラーで消せない

# sudo rpm -qa | grep -i mysql | xargs rpm -e
エラー: 依存性の欠如:
  libmysqlclient.so.16()(64bit) は (インストール済み)postfix-2:2.6.6-2.2.el6_1.x86_64 に必要とされています
  libmysqlclient.so.16(libmysqlclient_16)(64bit) は (インストール済み)postfix-2:2.6.6-2.2.el6_1.x86_64 に必要とされています
  mysql-libs は (インストール済み)postfix-2:2.6.6-2.2.el6_1.x86_64 に必要とされています

# sudo rpm -qa | grep -i mysql
MySQL-shared-compat-5.5.38-1.linux2.6.x86_64
MySQL-client-5.5.38-1.linux2.6.x86_64
perl-DBD-MySQL-4.013-3.el6.x86_64
MySQL-server-5.5.38-1.linux2.6.x86_64

※ MySQL-shared-compat-5.5.38-1.linux2.6.x86_64が原因なので、
※ 気にならない場合はそのまま残して残りを消す
# sudo rpm -e MySQL-client-5.5.38-1.linux2.6.x86_64
# sudo rpm -e MySQL-server-5.5.38-1.linux2.6.x86_64

4. ソースからインストール

ダウンロード、の前に下準備

最初は準備から入ります
mysql5.5系からはMakeFileの作成にはconfigureではなくcmakeで行うので、そのために必要な下記をインストールしておきます

  • cmake
  • ncurses-devel

ちなみに、下記のコマンドでインストール済みを検索して入ってればやらなくて良い

あった場合
# rpm -qa | grep cmake
cmake-2.6.4-5.el6.x86_64

# rpm -qa | grep ncurses-devel
ncurses-devel-5.7-3.20090208.el6.x86_64
ない場合(はインストール
# sudo yum install cmake

# sudo yum install ncurses-devel

ダウンロード(準備)

http://dev.mysql.com/downloads/からrpmをダウンロードします
MySQL Community Server」をクリック

f:id:tweeeety:20140619232745p:plain

「Looking for previous GA versions?」をクリック

f:id:tweeeety:20140619232754p:plain

「5.5.38」と「Source Code」を選択

f:id:tweeeety:20140623200957p:plain

  • Generic Linux (Architecture Independent), Compressed TAR Archive

を選択する (ダウンロードボタンで次の画面いって、「No thanks, just start my download.」リンクのアドレスをコピー)

f:id:tweeeety:20140623201006p:plain

ってことで

ダウンロード&インストール

# cd /usr/local/src

# sudo wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.38.tar.gz

# sudo tar zxvf mysql-5.5.38.tar.gz

# cd mysql-5.5.38

# sudo cmake . -DDEFAULT_CHARSET=utf8mb4 \
-DWITH_EXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1

# sudo make

# sudo make install
※補足1

cmakeオプションについて

オプション 説明
-DDEFAULT_CHARSET デフォルトのキャラクターセット
-DWITH_EXTRA_CHARSETS 追加の文字セット(allで全部入り)
-DDEFAULT_COLLATION デフォルト照合順序
-DCMAKE_INSTALL_PREFIX インストール先ディレクトリ
-DWITH_INNOBASE_STORAGE_ENGINE =1InnoDB有効(デフォルトではMyISAM, MERGE, MEMORY, CSV のみ)
※補足2

「5.5.38」 > 「Linux - Generic」 > 「Linux - Generic 2.6 (x86, 64-bit), Compressed TAR Archive」を選ぶと
CMakeLists.txtが無いのでcmakeのところでこんなエラーで怒られます

CMake Error: The source directory "/usr/local/mysql-5.5" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

mysqlユーザ追加

※ useraddで指定するグループ作っておく
# sudo groupadd mysql

※ MySQL専用でログインさせないので -s /sbin/nologin をつける
※ -M オプションをつけることでホームディレクトリを作成しないでユーザを追加する
※ 参考: http://www.revulo.com/blog/20080421.html
※ 参考: http://blog.jicoman.info/2012/12/mysql_source/
# sudo useradd mysql -M -g mysql -s /sbin/nologin

# sudo passwd mysql
ユーザー mysql のパスワードを変更。
新しいパスワード: ←パスワード入力

mkdir /usr/local/mysqlでディレクトリ作る手順を入れる記事もありますがmake install時に作られます

初期設定&起動確認

# cd /usr/local

※ 所有権変更
# sudo chown -R mysql:mysql /usr/local/mysql

# cd ./mysql

※ データベースの初期化
# sudo ./scripts/mysql_install_db --user=mysql

※設定ファイルの作成
# sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

※起動ファイルをシンボリックリンクで作成
# sudo ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

※起動確認
# sudo /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!

# /usr/local/mysql/bin/mysql -u root -p
Enter password:←パスワード変更してないのでそのままEnter

削除

削除は簡単で物理的に消しちゃいます
とは言え、念のため落とすところから

# sudo /etc/init.d/mysqld stop
Shutting down MySQL. SUCCESS!

※ DB削除
# sudo rm /var/lib/mysql/mysql*

※ my.cnf削除
# sudo rm /etc/my.cnf

※ 起動ファイル削除
# sudo rm /etc/init.d/mysqld

※ インストールしたディレクトリ削除
# sudo rm -r /usr/local/mysql

おわり

よくありがちな入れたっきりで忘れてしまうことも多いインストール作業を自分用にメモってみました。
いずれメモしたことすら忘れそうですねw