所有分类
  • 所有分类
  • 未分类

Docker-安装mysql8-方法/步骤

简介

本文介绍如何使用docker安装mysql8。

查看mysql版本

https://hub.docker.com/_/mysql/tags

我选择8.0,点击右侧箭头处直接复制命令。

拉取镜像

拉取镜像的命令

docker pull mysql:8.0

查看是否拉取成功

docker images

如下便是拉取成功

创建文件夹(配置、数据等)

此处不是必须的,因为下边使用docker run运行容器时会自动根据-v参数创建没有的文件夹。

mkdir -p /work/docker/mysql/conf
mkdir -p /work/docker/mysql/data
mkdir -p /work/docker/mysql/log

创建配置文件

创建文件:/work/docker/mysql/conf/my.cnf

内容如下:

[client]
default-character-set=utf8mb4
 
[mysql]
default-character-set=utf8mb4
 
[mysqld]
#服务端口号 默认3306
port=3306
 
datadir = /work/docker/mysql/data
 
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
 
# 最大连接数
max_connections=200
 
# 连接失败的最大次数。防止有人从该主机试图攻击数据库系统
max_connect_errors=20
 
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

启动容器

启动容器的命令

docker run -p 3306:3306  \
--name mysql8 \
--privileged=true \
-v /work/docker/mysql/log:/var/log/mysql \
-v /work/docker/mysql/data:/var/lib/mysql \
-v /work/docker/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0
  • –privileged=true
    • 设置MySQL 的root用户权限, 否则外部不能使用root用户登陆。
  • -e MYSQL_ROOT_PASSWORD=123456
    • 设置MySQL数据库root用户的密码

其他参数参考此文:Docker-安装Redis-方法/步骤 – 自学精灵

查看启动后的容器

docker ps

设置密码等

实际原来的123456仍然有效,只不过只能localhost机器能用(在MySQL服务器上的mysql命令直连时可以使用)Navicat不能用。

1.进入容器内部

docker exec -it mysql8 /bin/bash

2.连接mysql

mysql -u root -p

输入前边设置的密码:123456,然后回车。

3.修改访问主机以及密码

设置为所有主机可访问

ALTER USER 'root'@'%' IDENTIFIED BY '新密码';

Mysql8.0 默认采用 caching-sha2-password 加密,有可能旧的客户端不支持,可改为 mysql_native_password; 

CREATE USER 'root'@'%' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '222333';

4.刷新权限

FLUSH PRIVILEGES;

测试Navicat连接

密码为222333。连接成功。

0

评论3

请先

  1. 镜像拉取失败按照这篇文章解决了https://blog.csdn.net/sunyuhua_keyboard/article/details/139865169
    能小责小 2024-07-24 0
    • 拉取失败可能是没有配置镜像地址,可以看这个:https://way2j.com/a/2662。你发的这个链接里,只有一个地址是能用的。
      自学精灵 2024-07-24 1
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录