Docker安装并使用MySQL(Windows下)

下载镜像
docker pull mysql

查看是否下载成功
docker images
看到mysql相关字眼则下载成功

运行 密码为123456 端口为3306
docker run --name mydb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

查看时候执行成功
docker ps
看到mysql相关字眼则说明正在启动

映射到主机启动
执行 docker images  看到mysql字眼
执行 docker run -itd -P mysql bash 进行映射
执行 docker ps  看到mysql映射信息,某端口到3306
执行 docker exec -it ID bash 连接到mysql镜像(ID为mysql ID号)
执行 service mysql status 看到mysql没有启动的信息
执行 service mysql start 启动mysql
执行 mysql 查看是否启动成功,此时进入mysql内

如何在外部访问?
此时用navcat连接,输入localhost及上面生成的端口号等
会报出错误:
2003——can't connect to mysql server on localhost(10061)
解决办法:
如果可以拿到my.ini文件
将bind-address = 127.0.0.1
改成
bind-address = 0.0.0.0
如果没有就加上

linux下
docker exec -it ID bash 进入容器,注意ID
cd 到/etc/mysql/mysql.conf.d/mysqld.cnf
cat mysqld.cnf 查看文件确认bind-address是否不正确
如不正确进行修改
sed 's/#bind-address/bind-address/g' mysqld.cnf>mysqlid.cnf.tmp
mv mysqld.cnf.tmp mysqld.cnf (覆盖原文件)
sed 's/127.0.0.1/0.0.0.0/g' mysqld.cnf mysqld.cnf>mysqlid.cnf.tmp
mv mysqld.cnf.tmp mysqld.cnf (覆盖原文件)

查看下文件是否修改正确

停止并删除容器
docker stop ID
docker rm ID

重新启动容器,命令在上方写过

依旧连不上,这段就当记录linux如何修改文件了...

发表评论

电子邮件地址不会被公开。 必填项已用*标注