LoginSignup
4
3

More than 5 years have passed since last update.

Docker on LinuxにMySQLがソケットがないとかでインストールできない!

Last updated at Posted at 2016-07-28

Mysql公式のリポジトリがあるじゃん

そうなんですけどね。 -> https://hub.docker.com/_/mysql/
でも開発する時は全部のせのDockerfile作って使いたいときありませんか?
そんな使い方邪道ですかね?
今回はそんなときにLinux(Ubuntu15.10,16.10)でMySQLがインストールできない問題に遭遇したので、防備がてら投稿です。

Dockerは Docker for Mac を使用。バージョンは以下です。
Docker version 1.12.0-rc4, build e4a0dbc, experimental

こんなことをしていた

Dockerを動かす

docker run --rm -it ubuntu:16.10

(vimいれておく)

update & upgrade apt-get

apt-get update && apt-get upgrade -y

apt-get mysql-server

apt-get install -y mysql-server

/etc/mysql/my.cnf 見る

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

/etc/mysql/mysql.conf.d/mysqld.cnf 見る

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
...
[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
find /var/run/mysqld/mysqld.sock

ls /var/run/ してみたら...

lock  mount  utmp <- "mysqld" directoryない

こんなことになりましたとさ

解決方法

質問をすると返事が返ってくるウェブサービスで質問したところ
http://stackoverflow.com/questions/38641183/ubuntu-16-10-in-docker-1-12-claims-there-is-no-socket-for-mysql

Dockerを動かす

docker run --rm -it ubuntu:16.10

で、ポートフォワーディングをしてやる必要があるのだそうな。つまり

docker run --rm -it -p=xxxx:3306 ubuntu:16.10

ということ。見事なまでの初見殺しとは思いました。
みなさんは貴重な一週間を無駄にしないでくださいね!!

後付け

でも、同様のsocketない問題が mysql-client で発生しています。
誰か答えがわかる方がいらっしゃいませんか?
いらっしゃらなければまた質問をすると返事が返ってくるウェブサービスに...

4
3
1

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
4
3