我已经在这个主题上进行了谷歌搜索,并找到了几个线程。基于这些线程,我已经按照以下步骤操作。但是我遇到了一个问题。
基本上,我想为mysql创建一个docker镜像,然后从我的主机(Mac OS X)连接它。
根据这篇帖子,我必须与主机共享mysql unix套接字。为此,我已经执行了以下步骤。
1. Start docker quick terminal
2. docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -d mysql/mysql-server:latest
3. docker exec -it mysql bash
4. mysql -uroot -p
5. create database MyDB;
6. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
7. exit;
8. mkdir /Users/abhi/host
9. docker run -it -v /host:/shared mysql/mysql-server:latest
现在我遇到了错误
MacBook-Pro:~$ docker run -it -v /Users/abhi/host:/shared mysql/mysql-server
error: database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
但是您看到我已经提供了密码并初始化了我的数据库。
我想要的只是从我的主机上,能够连接到在Docker内运行的MySQL数据库。
编辑:----- 已经解决的方案 -----
感谢RICO。最终对我起作用的步骤是
1. Start docker quick terminal
2. docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql/mysql-server:latest
3. docker exec -it mysql bash
4. mysql -uroot -p
5. create database MyDB;
or:
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
6. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
7. exit;
8. docker-machine env default
使用第8步获取的IP地址,端口为3306,用户名为root,密码为password,数据库为MyDB。
连接成功!