首先准备一台云服务器

安装docker

可以参考菜鸟教程

curl -fsSL https://get.docker | bash -s docker --mirror Aliyun

启动 Docker

sudo systemctl start docker

测试一下

sudo docker run hello-world

没问题了

查看MySQL镜像

docker search mysql

拉取MySQL5.7.28镜像(大小437M)

docker pull mysql:5.7.28

查看MySQL镜像

docker images

有两个了,一个就是上面跑的demo,一个就是拉下来的

运行docker容器,设置ROOT用户密码

外网建议设置复杂一些的密码

docker run --name mysql5.7 -p 3307:3306 -v /data/mysql/datadir:/var/lib/mysql -v /data/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.28

参数说明:
–name mysql5.7 容器别名
-p 3307:3306 端口映射(本机3307端口映射容器3306端口)
-v /data/mysql/datadir:/var/lib/mysql 目录映射(mysql数据目录)
-v /data/mysql/conf.d:/etc/mysql/conf.d 目录映射(mysql配置目录)
-d 后台运行

创建自定义用户和数据库

在公司里大家肯定是用自己的账号登录的,不可能给你root账号登录的。
首先进入容器:

docker exec -it mysql5.7 bash

登录root用户

mysql -uroot -p123456;

上面的命令也可以通过alias别名优化

vim ~/.bashrc

加入一行:

alias sql='docker exec -it mysql5.7 mysql -uroot -p123456'

编译生效

source ~/.bashrc

进入MySQL客户端后执行命令:

create user 'jackxu'@'%' identified by '123456';
flush privileges;

create database db0 DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

grant all privileges on db0.* to 'jackxu'@'%' identified by '123456';


flush privileges;

8.0版本的授权语句不一样:

grant all privileges on *.* to 'jackxu'@'localhost' with grant option;

用navicat连接测试

连接名:腾讯云
主机:就是文章开头提到的我购买的服务器的ip
端口:上面在启动mysql的时候设置的端口映射,容器端口是3306,映射到物理机的3307端口
用户名和密码:上面在进入容器以后设置的jackxu和123456,你也可以用root和123456登录

最后看下已经成功连接上了,db0数据库也是上面命令中创建的

感谢收看~

更多推荐

腾讯云CentOS 7 Docker安装MySQL 5.7