LoginSignup
8
11

More than 5 years have passed since last update.

dockerでmysqlサーバを起動して、ホストサーバから接続する

Last updated at Posted at 2016-12-02

環境

  • 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

参考

8
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
11