環境
- Vagrant上のUbuntu14.04
手順
# dockerでmysql(5.5)を起動
sudo docker run -p 3306:3306 --name mysqld -e MYSQL_ROOT_PASSWORD=hoge -d library/mysql:5.5
# mysqlに接続
mysql -u root -h localhost -P 3306 --protocol=tcp -p
# または、mysql -u root -h 127.0.0.1 -P 3306 -p
ハマリどころ
- mysqlに接続する時に、
protocol=tcp
を指定するか、ホストをIPで指定する必要がある - railsからmysqlに接続する場合は、database.ymlに以下のように記述する(database.ymlではprotocolは指定できないようだ)
database.yml
development:
adapter: mysql2
encoding: utf8
reconnect: true
database: mysql_app_development
pool: 5
username: root
password: hoge
host: 127.0.0.1
補足
Vagrantfileのconfig.vm.provision "docker"
を使う場合
Vagrantfileに以下のように記述します。
# Vagrantfile:
Vagrant.configure(2) do |config|
config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
config.vm.box = "ubuntu-1404"
config.vm.provision "docker" do |d|
d.run "db",
image: "library/mysql:5.5",
args: "-p 3306:3306 -v /var/host_lib/mysql:/var/lib/mysql --name mysqld -e MYSQL_ROOT_PASSWORD=password -d"
end
end