1.进入Docker Hub
Docker Hub Container Image Library | App Containerization
2.无需登录,左上角search搜索Mysql,带有OFFICIAL IMAGE 的是官方提供的容器
进来之后进去mysql,在Tags里面找自己需要的版本,以8.0为例
3.我用的finashell,在命令行输入 docker pull mysql:8
[root@localhost ~]# docker pull mysql:8
4.安装完成之后查看
docker images
5.启动
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name zspmysql --restart=always -d mysql:8.0
#设置端口映射
#设置密码
#设置名字
#设置容器自启动
6.运行mysql
docker ps 查看mysql运行的id,id为2d81960dc52a
运行以下命令
docker exec -it 0c55686eeb36 bash
mysql -u root -p
Enter password: root
7.进入mysql运行:
mysql> show databases;
8.开启远程权限,mysql8.0需要修改东西,依次执行下面步骤
1.给root用户分配远程访问权限
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;
2.更换密码加密方式
mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'zsp123456' PASSWORD EXPIRE NEVER;
3.更新用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'zsp123456';
4.刷新权限
FLUSH PRIVILEGES;
9.外部也可以连接。以Navcat为例,新建连接,服务器ip地址和账户密码就可以直接访问。
10.数据卷,持久化数据到宿主机,容器存储数据的路径在哪?/var/lib/mysql,接下来用-v命令
-v (参数一):(参数二)
参数一:把数据存到哪里
参数二:要存储的数据在哪里
先把docker里面的容器全删除
docker rm -f $(docker ps -qa)
运行以下命令
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name zspmysql --restart=always -v /root/data:/var/lib/mysql -d mysql:8.0
运行之后会自动创建一个名为data的目录。