cloudpackエバンジェリストの吉田真吾@yoshidashingo)です。

EC2上に構築したmysqlのデータファイルを格納するディスクが不足したので移動。

  • EC2はAmazon Linux 2014.03
  • mysqlは5.5.36

バージョン確認

$ cat /etc/system-release
Amazon Linux AMI release 2014.03
$ mysql -u -p
Enter password:
(中略)
mysql> SELECT version();
+-----------+
| version() |
+-----------+
| 5.5.36 |
+-----------+
1 row in set (0.00 sec)

ディスクの追加

追加のEBSを容易してアタッチ&マウント。

  • 追加のEBSを作って/dev/sdbにディスクをアタッチ
  • マウント

以下のリンクが役に立ちます。
EC2 に EBS をマウントするメモ | TECH BLOG

データの移動

  • mysql 停止
$ sudo service mysqld stop
Stopping mysqld: [ OK ]
  • my.cnf の編集
$ ls -l /etc/my.cnf
-rw-r--r-- 1 root root 480 3月 20 23:09 /etc/my.cnf
$ sudo cp -p /etc/my.cnf /etc/my.cnf.bk
$ ls -l my*
-rw-r--r-- 1 root root 480 3月 20 23:09 my.cnf
-rw-r--r-- 1 root root 480 3月 20 23:09 my.cnf.bk
$ sudo vi /etc/my.cnf
(移動先のパスを編集)
  • /etc/init.d/mysqld の編集
$ sudo vi /etc/init.d/mysqld
get_mysql_option mysqld datadir "/var/lib/mysql" → ""
  • データの移動
$ sudo cp -pR /var/lib/mysql/* 
  • mysql 開始
$ sudo service mysqld start
Starting mysqld: [ OK ]

あとは元のデータファイルを消せばOK。
うちの運用手順だともう少し作り込まれているのですが、今回は手元の環境ということでこんな感じで。

こちらの記事はなかの人(yoshidashingo)監修のもと掲載しています。
元記事は、こちら