【Docker】简单搭建MySQL8
选择镜像
通过DockerHub我们可以查到MySQL的所有可用镜像,一般来说我们只选官方提供的镜像信息,如下图:
拷贝红框中脚本在命令行下执行即可下载镜像。
镜像下载完毕先启动镜像看看后台输出是否正常(因为部分镜像会受宿主机硬件限制)
Windows系统
docker run -p 3806:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql8 -d --restart=always mysql:8.0
Linux系统
sudo docker run -p 3806:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql8 -d --restart=always mysql:8.0
3. 创建挂载目录
Windows系统
docker cp mysql8:/var/lib/mysql D:\software\Docker\data\mysql8\data
docker cp mysql8:/etc/mysql D:\software\Docker\data\mysql8\config
Linux系统
sudo docker cp mysql8:/var/lib/mysql /data/docker/data/mysql
sudo docker cp mysql8:/etc/mysql /data/docker/config/mysql
sudo vim /data/docker/config/mysql/mysql/conf.d/mysql.cnf
有的时候docker cp没有将mysql.cnf文件拷贝到宿主机(不知道是什么原因,真的就没有这个文件),这个时候也不需要怕,直接自己新建一个就好了。如下图:
5. 之后将当前镜像删除并启动一个新的镜像(指定挂载目录配置)
Windows系统
docker run -p 3806:3306 \
-v D:\software\Docker\data\mysql8\data\mysql:/var/lib/mysql \
-v D:\software\Docker\data\mysql8\config\mysql:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql8 \
-d --restart=always mysql:8.0
Linux系统
sudo docker run -p 3806:3306 \
--network micnetwork \
--ip 192.20.0.8 \
-v /data/docker/data/mysql/mysql:/var/lib/mysql \
-v /data/docker/config/mysql/mysql:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql8 \
-d --restart=always mysql:8.0
MacOS系统
docker run -p 3806:3306 \创建超级账号
--network micnetwork \
--ip 172.20.0.7 \
-v /Users/yuanzhenhui/Documents/docker_data/mysql8/config/mysql:/etc/mysql \
-v /Users/yuanzhenhui/Documents/docker_data/mysql8/data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
--name mysql8 -d \
--restart=always mysql:8.0
在MySQL8.0版本里面已经没有办法直接给root用户进行授权,因此只能够通过新建一个用户之后再对这个用户进行授权
因此只能够创建一个新的来了,如下代码:
CREATE USER 'yzh'@'%' IDENTIFIED BY '0623';
GRANT ALL PRIVILEGES ON *.* TO 'yzh'@'%' WITH GRANT OPTION;
另外,通过MySQL官方提供的MySQL WorkBench软件的旧版本是无法登陆MySQL8.0的,原因在于MySQL8.0的连接方式已经发生改变,因此如果出现宿主机无法对服务器进行连接,可以尝试更新一下客户端再进行连接。
版权声明
本文仅代表作者观点,不代表博信信息网立场。
上一篇:ubuntu中怎么关闭mysql 下一篇:MySQL中explain命令怎么用