请先参考 Windows10安装VirtualBox及Vagrant、CentOS7安装Docker 2篇文章安装好CentOS7和Docker
sudo docker pull mysql:5.7
#注意:如果遇到错误:Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:43902->[::1]:53: read: connection refused
#可能是网络不稳定,多重试几次。如果一直报这个错,请参考这篇文章(https://blog.csdn.net/baidu_21349635/article/details/104328556) 修改dns配置
su root #切换root用户,默认的密码是vagrant
#创建mysql5.7容器,挂载外部文件并设置好root密码
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
#链接进入mysql容器内部,查看msyql安装路径
docker exec -it mysql /bin/bash
whereis mysql
exit
创建mysql配置文件
cd /mydata/mysql/conf
vi my.cnf
,mysql配置文件内容为:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation_server=utf8_unicode_ci
skip-name-resolve
skip-character-set-client-handshake
重启mysql服务器:
docker restart mysql
配置mysql使其它ip地址能连接上mysql
docker exec -it mysql /bin/bash
mysql -uroot -p #密码root
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
#退出mysql命令行
exit
#退出docker容器内部
exit
#查看当前服务器ip地址,找到192.168.xx.xx的ip地址
ip addr
#在宿主机(windows系统)测试mysql端口是否能正常连接
telnet 192.168.xx.xx 3306
#若能正常连接,则在外部可以使用192.168.xx.xx:3306访问到mysql数据库