カテゴリー: Linux

Home / カテゴリー: Linux

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

2015-02-27 | Linux, MySQL, MySQL, Vagrant | コメントはまだありません

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

流行りの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

かいけつかいけつ。

参考書は、

これを使っています。

ランレベルを理解した

2014-05-08 | Linux, サーバ構築 | コメントはまだありません

ぴこぴこプログラムを打つまではなんとかなるけど、箱だの線だのは全く理解ができない、自分の分野にだけロックインしてるダメグラマーをやっております。
なので基礎的なことも知らないまま生きてるわけです。
ランレベルとは結局なんなのか。
某日、チャットルームの会話を抜粋。登場人物は、HP-UXが得意なサーバやさん、Oracleが主戦場のDBやさん、そしてあたし。

DB屋: 自動起動の為に# chkconfig –level 35 portmap on
を打てば良いっぽいんだが、35の意味を調べないとなのだ
鯖屋: ランレベルのことだな。ランレベル3と5で起動してねってことさ
DB屋: ランレベルなのか。しかし35の間にスペースはいらんの?
鯖屋: いらん。ランレベル35ってないからね。6でおわり
DB屋: あれか。0:off 1:off とかズラズラ出て来るところの3と5をonにしろってやつか!
鯖屋: んだ。いまの状態をみたいなら、
chkconfig –list | grep portmap
とかやればでてくる
DB屋: 見てみる。0~6まで全部OFFだったわ。
鯖屋: んじゃぁ、3と5をonかな
鯖屋: 2で上げてもいいけど、意味ないな。
鯖屋:

0がしゃっとだうん
1がしんぐる
2がネットワークなしのマルチ
3がマルチ
4が未使用。HP-UXは使うけどな。
5がGUI
6がリブート

DB屋: これコピーするw
鯖屋: http://www.atmarkit.co.jp/flinux/rensai/linuxtips/156whatrunlv.html
鯖屋: 綺麗に書かれてまっせ・・・
あたし: それ見ていつも不思議に思うわ うっかり6とか指定すると、永久に再起動し続けるゴミができるんだろ?
鯖屋: うん
あたし: 何に使うんだ。。。
鯖屋: システム起動したとたんに init 0で停止とかな。
あたし: あ、とちゅうで止める方法あるにはあるのか
鯖屋: 止められないなw
鯖屋: ソフトウェアが使うんだよ。 不正な状態で固まりかけたら、最後の断末魔で6発動www おまえら死ねやあああああwwww みたいな
あたし: もしかしてなにかね、たとえば
あたし: shutodown -h なうwww とかやってる中身は
あたし: ランレベルを変更している、みたいな話なの
鯖屋: そうですな。
あたし: ははー ラップされてたのかあれは
鯖屋: うらでは、init ってコマンドが動いてる。
あたし: すごく納得した。。。
鯖屋: init ランレベル番号指定で、ランレベル変わるのだ。
あたし: さっそくやってみる
あたし: wwwwwwwwwwwwwwwwww
あたし: なにもおきねえじゃんwww
あたし: とおもたら
あたし: 確かに再起動したwwwwwwwwww
鯖屋: 現在のランレベルみたいなら who -rかな
あたし: いままでshutdown -h なうwとかやってたのアホじゃんか
あたし: init 0でサーバ落とせたんだな
鯖屋: まぁ^^;
あたし: でもそうしないってことは行儀悪いんだな
鯖屋: メッセでないんだよねー なうw のほうがいいよ。
あたし: えーと、とあるサーバに二人(AさんBさん)つないでます
あたし: Aさんがinit0やっておとしたら、Bさんからは急に死んだように見えるが、
あたし: なうwってやると、おとすよーしぬよーってメッセージが両者に届くという話?

# shutdown -h now
Broadcast message from root@localhost
        (/dev/pts/0) at 11:37 ...
The system is going down for halt NOW!

鯖屋: まぁw そういう感じw なうwは、waitつけられるのだ
鯖屋: 60secでしんじゃいますーとか
あたし: おおーなるほど、あれ全員に届いてるメッセージなんだ
鯖屋: システムおちますよは、全員に届くけど死ぬ寸前の断末魔なのだ。
鯖屋: なので、init系だといきなり死ぬ寸前にメッセでておいおいってなる
鯖屋: なうw だと、あとxx秒でおちるよー とかメッセおくれるのね。ログインユーザ全員に。 そういった意味では親切コマンドではある

ストンとハラに落ちた。

channel 2: open failed: connect failed: Connection refused

2014-01-24 | Linux, Nginx | コメントはまだありません

ポートフォワードというのがたまに便利なので、自宅でもいろいろ試し中

ローカルのPCから、VirtualBox上にアレしたDebianにアレして、
ssh -C -L 10201:localhost:8080 hogeuser@192.168.56.110

こんな塩梅に叩いて、ブラウザから
http://localhost:8080/

と叩くとVM上のNginxさんとこに見に行ってページが表示される・・・!つもりだったんだけど、
channel 2: open failed: connect failed: Connection refused

と言われてソレっきり。うまくいかない。

あららーまたなんかいろいろアレですよー
とっちらかった頭のままいろいろにとりかかっちゃって、状況を整頓できてない感もある。
いちおう困った状況にはなったので、行動ログとして置いとく。そのうち解決方法も見つかるだろ。

ETAって何

2013-11-12 | Linux | コメントはまだありません

CentOS

yumとかああいうので、ダウンロード中にピコピコなっとるあれよ。
ETA。
なんとなく残り時間のことなんだろうとは思ってるんだけど、それならremainだかなんだか、そういう単語使うんじゃないの?
なんの略なのETAって。気になる。
どうせセットアップ中で暇なので調べてみる。

「ETA」は「estimated time of arrival」の略語で、「到着予定時刻」という意味になります。「ETA」はよく飛行機や船に対して使われています。
via 「ETA」の意味とは ー 英語の略語の解説 | 英語 with Luke

そのものズバリが即見つかった。

こんなのも。
ETS、ETD、ETAの意味を教えて下さい。 – Yahoo!知恵袋
へええ。勉強になりました。