Docker 安装 mysql
拓展阅读
安装流程
测试环境为 mac。
友情提示:下面的安装遇到了坑,如果想跳过,直接到 mysql 5.7 安装
下载 mysql
- 拉取镜像
$ docker pull mysql
- 查看镜像
$ docker image list | grep mysql
mysql latest 6a834f03bd02 3 days ago 484MB
运行
sudo docker run --name first-mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
- 参数说明
--name first-mysql 设置名称
-p 13306:3306 映射端口为 13306
-e MYSQL_ROOT_PASSWORD=123456 设置密码
-d 守护进程,后台运行
- 查看状态
$ docker ps | grep mysql
a502ef8fce79 mysql "docker-entrypoint.s…" 8 seconds ago Up 7 seconds 33060/tcp, 0.0.0.0:13306->3306/tcp first-mysql
mysql-client
我本地以前安装过 mysql,所以这一步跳过。
访问
$ mysql -h127.0.0.1 -P13306 -uroot -p123456
然后报错如下:
promote:~ houbinbin$ mysql -h127.0.0.1 -P13306 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
promote:~ houbinbin$ mysql -h127.0.0.1 -P13306 -uroot -p
Enter password:
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
问题解决
docker-mysql-auth 和 mysql-auth 两个帖子看了一下。
- 原因
最新版 8.0 可能存在这方面的问题。主要是不会配置 T_T
决定使用 mysql 5.7
。
- 当前 container 的处理
停止并且删除
$ docker stop ${container_id}
$ docker rm ${container_id}
mysql 5.7 安装
查询
$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 6898 [OK]
mariadb MariaDB is a community-developed fork of MyS… 2201 [OK]
...
下载
- 指定版本为 5.7
$ docker pull mysql:5.7
- 查看镜像
$ docker image list | grep mysql
mysql 5.7 563a026a1511 3 days ago 372MB
运行
sudo docker run --name first-mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
- 查看状态
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fa101df40fe2 mysql:5.7 "docker-entrypoint.s…" 5 seconds ago Up 3 seconds 33060/tcp, 0.0.0.0:13306->3306/tcp first-mysql
表名大小写敏感
mybatis 大小写敏感会出问题,可以使用如下配置:
sudo docker run --name first-mysql -p 13306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1
访问
$ mysql -h127.0.0.1 -P13306 -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.23 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
参考资料
- mac
how-do-i-install-command-line-mysql-client-on-mac
- docker mysql