1.拉取镜像 (这里拉取镜像版本是8.0.20)
docker pull mysql:8.0.20
2.查看已拉取的镜像
docker images
3.启动容器与挂载
docker run -p 3306:3306 --name mysql8 --privileged=true --restart unless-stopped -v /usr/local/word/mysql/info:/etc/mysql8 -v /usr/local/word/mysql/logs:/logs -v /usr/local/word/mysql/data:/var/lib/mysql8 -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.20
docker run
:运行一个新的容器。
-p 3306:3306
:将容器的3306端口映射到宿主机的3306端口。
--name mysql8
:为容器指定一个名称,这里是mysql8。
--privileged=true
:以特权模式运行容器,允许容器访问宿主机的所有设备。
--restart unless-stopped
:在容器退出时自动重启容器,除非手动停止。
-v /usr/local/word/mysql/info:/etc/mysql8
:将宿主机的/usr/local/word/mysql/info目录挂载到容器的/etc/mysql8目录。
-v /usr/local/word/mysql/logs:/logs
:将宿主机的/usr/local/word/mysql/logs目录挂载到容器的/logs目录。
-v /usr/local/word/mysql/data:/var/lib/mysql8
:将宿主机的/usr/local/word/mysql/data目录挂载到容器的/var/lib/mysql8目录。
-v /etc/localtime:/etc/localtime
:将宿主机的/etc/localtime文件挂载到容器的/etc/localtime文件,使容器使用宿主机的时间设置。
-e MYSQL_ROOT_PASSWORD=root
:设置环境变量MYSQL_ROOT_PASSWORD的值为root,即MySQL的root用户密码。
-d mysql:8.0.20
:使用名为mysql的镜像,版本为8.0.20,并以后台模式运行容器。
4.查看容器
docker ps //查看已启动的容器
docker ps -a //查看已启动和未启动的容器
5.部署服务器上访问mysql
当然也可以通过服务器IP+端口在外部的数据库管理器如navicat、DBeaver访问
5.1,如果想要访问mysql需要进入容器
docker exec -it adee32bc5010 /bin/bash
5.2,登录数据库
mysql -u 账号 -p 密码
6.简单的操作命令
#更新权限(给root所有访问权限)
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
#刷新权限
FLUSH PRIVILEGES;
#创建数据库
CREATE DATABASE 数据库名;
#使用数据库
use 数据库名;
#查看数据库
show databases;
#退出数据库和容器
都为:exit