Vagrant + MySQL データは外に置きたい

Filed in Linux | MySQL | MySQL | Vagrant Leave a comment

Windowsで使っています。
VagrantのVM上にデータまで置いちまうと何かと不便なので、vagrant氏が勝手に作ってくれる/vagrantディレクトリを通して、ホストOS上にmysqlのdatadirを持ってきちゃおうと思いました。

まずmysql停止。

んでmy.cnfを編集

[mysqld]
#datadir=/var/lib/mysql
#↓こうしてみました
datadir=/vagrant/MYSQL_DATA_DIR
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

んで、
/var/lib/mysql/mysql
にあるファイルをまるっと
/vagrant/MYSQL_DATA_DIR
にコピー。
#実際のとこ/var/lib/mysql/mysqlの中身だけ移し替えてもだめで、他にも必要ぽかった。
#あたしのばあいは空っぽから始めても差し支えなかったので、まるっと作りなおしちゃった。移行するケースの場合はいろいろ考えてあげないとだめぽ。

こう書き換えて、mysqlをスタート。ハイ失敗。まあそうだろうと思っていた。
/vagrantにあるファイルは所有者がユーザvagrantになっちゃうので、ユーザmysqlでは見られない。
あくまでローカルの開発環境の話なので、さしあたり動けばいい。

usermod -G vagrant mysql

というわけでvagrantグループにmysql氏を追加して、再度mysqldのスタート。
OKでーす。ありがとうございましたー。
あれ、

user=mysql

こいつをvagrantユーザにしても良かったのではないか。どっちも違和感あるけどどっちがマシかな。

/var/lib/mysqlに、ibdata1とかいう巨大なファイルがある。

innodb_file_per_tableを有効にしていると、テーブルのデータはそれぞれのテーブルスペースに格納される。しかし共有テーブルスペースには次のようなInnoDBの内部データが格納されている。
データディクショナリ(InnoDBテーブルのメタデータ)
チェンジバッファ
ダブルライトバッファ
UNDOログ

引用元:MySQL ibdata1が肥大化する理由(記事の意訳) | Ore no homepage

へー。知りませんでした。ほっとくとおっかないなあ。こっちはVM上にあるから、知らないうちに圧迫して死ぬとかありそう。

MySQL – 肥大化したibdata1を縮小する – Qiita

, ,

Segmentation Fault or Critical Error encountered. Dumping core and aborting.

Filed in Linux | 仮想環境 Leave a comment

流行りのDockerとかをアレする際の選択肢として、Vagrantの上にLinuxを構築し、その上にDockerを構築するというパターンがポピュラーです。
※あたしはWindowsを使っています

VagrantまではだいたいOK、さあDocker動かすかという時に掲題のエラーメッセージ。
sudo docker info
Segmentation Fault or Critical Error encountered. Dumping core and aborting.

abortってこのやろう。

違うの入れてた

sudo yum info dockerやってみる

Installed Packages
Name : docker
Arch : x86_64
Version : 1.5
Release : 5.el6
Size : 37 k
Repo : installed
From repo : epel
Summary : KDE and GNOME2 system tray replacement docking application
URL : http://icculus.org/openbox/2/docker/
License : GPL+
Description : Docker is a docking application (WindowMaker dock app) which acts as a system
: tray for KDE and GNOME2. It can be used to replace the panel in either
: environment, allowing you to have a system tray without running the KDE/GNOME
: panel or environment.

なんだこれ、と思ってググったら世界中の人がコレぼやいてる。あたしの入れたいDockerとは別のアプリケーションみたいだ。
そうだ、docker-ioじゃないとだめだったんだ思い出した。本にも書いてあった。

sudo yum info docker-ioやってみる

Available Packages
Name : docker-io
Arch : x86_64
Version : 1.1.2
Release : 1.el6
Size : 4.5 M
Repo : epel
Summary : Automates deployment of containerized applications
URL : http://www.docker.com
License : ASL 2.0
Description : Docker is an open-source engine that automates the deployment of any
: application as a lightweight, portable, self-sufficient container that will
: run virtually anywhere.
:
: Docker containers can encapsulate any payload, and will run consistently on
: and between virtually any server. The same container that a developer builds
: and tests on a laptop will run at scale, in production*, on VMs, bare-metal
: servers, OpenStack clusters, public instances, or combinations of the above.

ヘイヘイヘイヘーイ
またvagrantのboxファイル作りなおしねー!もう2万回くらい作りなおしてんじゃないのか。
回数は盛りました。

sudo yum install docker-io -y
sudo chkconfig docker on
sudo service docker start
sudo docker search centos

かいけつかいけつ。

参考書は、

これを使っています。

, ,

TOP