Docker安装mysql8.0
本文最后更新于56 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

本文在CSDN原有作者小小小小真的基础上,对其进行修改,整合,原文链接https://blog.csdn.net/a1150499208/article/details/131437199

1、下载mysql8.0.20镜像

docker pull mysql:8.0.20

2、启动镜像

docker run -p 3307:3306 –name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20

备注:

-p:3307:3306:映射端口到外部机器的3307端口

–name mysql8 docker的启动名称为mysql8

–MYSQL_ROOT_PASSWORD=123456 密码为123456

–d mysql:8.0.20 以detached 模式运行容器/后台运行,指定镜像为mysql,版本为8.0.20

查看运行状态

docker ps

3、配置挂载

mkdir -p /docker/mysql8.0.20/

新建文件夹

docker cp mysql8:/etc/mysql /docker/mysql8.0.20/

拷贝配置文件到创建的目录下

docker stop mysql8

停止原有的mysql容器

docker rm -f mysql8

删除原有容器

4、启动mysql挂载配置文件,数据持久化宿主主机

4.1切换到指定路径下:

cd /docker/mysql8.0.20/mysql/conf.d

4.2修改配置文件

vim mysql.cnf

输入内容

这里需要注意,原文件中最下面已经有了[mysqld],我下面的代码是上面下面都有[mysqld]的,看你需要删除上面的还是下面的[mysqld],

[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

[client]
default-character-set=utf8

[mysql]

即保证内容为如下所示:

4.3创建bash脚本

创建一个 sh 脚本、把 docker 启动 mysql 的命令放到脚本里面。因为后续如果想找到当时启动 mysql 时候所设置的一些参数和信息、可以查看这个脚本里面是怎么写的。

vim docker_insert_mysql8.0.20.sh

按键盘i,输入内容

#!/bin/sh
docker run \
-p 3307:3306 \
–name mysql8 \
–privileged=true \
–restart unless-stopped \
-v /docker/mysql8.0.20/mysql:/etc/mysql \
-v /docker/mysql8.0.20/logs:/logs \
-v /docker/mysql8.0.20/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.20

-p 端口映射 【这里有个特殊的地方是把3306映射给了3307、后续链接数据库的时候用3307链接不用3306】

–name mysql8 名称是mysql8

–privileged=true 挂载文件权限设置

–restart unless-stopped 设置 开机后自动重启容器

-v /docker/mysql8.0.20/mysql:/etc/mysql \ 挂载配置文件【路径是上面创建的挂载路径】

-v /docker/mysql8.0.20/logs:/logs \ 挂载日志【路径是上面创建的挂载路径】

-v /docker/mysql8.0.20/data:/var/lib/mysql \ 挂载数据文件 持久化到主机【路径是上面创建的挂载路径】

-v /etc/localtime:/etc/localtime 容器时间与宿主机同步

-e MYSQL_ROOT_PASSWORD=123456 设置密码

-d mysql:8.0.20 后台启动,mysql

4.4运行

bash命令运行

sh docker_insert_mysql8.0.20.sh

4.5查看运行状态

docker ps

5、配置mysql

5.1、进入容器

docker exec -it mysql8 bash

5.2、登录容器

输入密码,密码和前面保持一致,上面是123456,这里也是123456,需要注意的是,输入密码不会有显示的,输入完回车即可

mysql -u root -p

5.3、设置权限(为 root 分配权限,以便可以远程连接)

grant all PRIVILEGES on *.* to root@’%’ WITH GRANT OPTION;

此命令允许 root 用户从任何地点(%)以最高权限操作所有数据库和表,并可进一步分配权限给他人。

use mysql

update user set host=’%’ where user=’root’;

use mysql:切换当前操作的数据库为 mysql 系统数据库。

update user set host=’%’ where user=’root’;MySQL 安装后,root 用户的 host 通常是 localhost,表示仅允许从本机连接。

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇