在 Docker 中安装, 运行 MySQL

Docker-Mysql

1. 在 Docker 中安装 MySQL

  • 使用 Docker Hub 上的 MySQL 镜像安装 Mysql

docker pull mysql

2. 运行 MySQL

2.1 运行 MySQL

docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  • –name my-mysql: 指定当前运行的 Docker 容器名为 my-mysql
  • -e MYSQL_ROOT_PASSWORD=123456 : 指定 root 用户的密码, 如果不指定则无法通过 mysql -u root -p 的方式登录 MySQL
  • -d : 表示后台运行 mysql
  • -p 3306:3306 : 表示将 Docker 容器的3306端口映射到主机的3306 端口,如果不做端口映射则无法在主机的客户端访问到 Docker 容器的 MySQL
  • mysql : 表示启动 mysql 镜像
  • –character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci : 设置 MySQL 的字符集编码

通过上面的配置就可以在 Docker 容器中登录 MySQL 了, 但是依然无法在主机的客户端上访问 MySQL.

2.2 在 Docker 容器中登录 MySQL

  • 进入my-mysql 容器的 Docker bash

docker exec -it my-mysql bash

  • 登录 MySQL

docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端

MacBookProOfDreamLi:~ dreamli$ docker exec -it my-mysql bash
root@7bf94b06a6cf:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 30
Server version: 8.0.15 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

3. 在客户端连接 MySQL

  • 进入 MySQL 的 Docker bash

MacBookProOfDreamLi:~ dreamli$ docker exec -it my-mysql bash
root@7bf94b06a6cf:/# mysql -u root -p

  • 授权用户

ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
---- 123456 为你的密码

  • 通过主机客户端(MySQLWorkbench)连接 MySQL

MySQLWorkbenchConnection
ConnectionSuccess

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值