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