Docker实践(3)部署mysql实例
获取 mysql 镜像
从docker hub的仓库中拉取mysql镜像1
$ docker pull mysql:5.6.40
列出本地镜像1
$ docker image ls
输出镜像列表1
2REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.6.40 5f5ccdc8aedc 6 weeks ago 256MB
运行 mysql 容器
1 | $ $ docker run --name mysql-server -p 3306:3306 -e MYSQL_ROOT_PASSWORD=147258369 -d mysql:5.6.40 |
参数解释
run
运行一个容器--name
后面是指定给这个容器的名称MYSQL_ROOT_PASSWORD
设置mysql中root用户对应的密码-d
表示使用守护进程运行,即服务挂在后台
查看运行的容器1
$ docker container ls
输出容器列表1
2CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2e619f2dfb18 mysql:5.6.40 "docker-entrypoint.s…" 22 seconds ago Up 21 seconds 3306/tcp mysql-server
安装 mysql-client
要访问数据库,需要安装 mysql 客户端1
$ sudo apt-get install mysql-client
登录 mysql1
$ mysql -h127.0.0.1 -uroot -p147258369
执行 mysql 脚本查询数据库列表1
mysql> show databases;
输出结果1
2
3
4
5
6
7
8
9+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
常见问题
ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password’ cannot be loaded
问题描述:
可能安装了最新的 MySQL 版本,导致远程登录时出现如下错误1
2
3
4
5连接Docker启动的mysql出现:ERROR 2059 (HY000): Authentication plugin
‘caching_sha2_password’ cannot be loaded
C:\mysqldata>mysql -h 127.0.0.1 -P 13306 -uroot -p Enter password:
** ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password’ cannot be loaded:
解决方案:
进入 mysql-server 容器
1
$ docker exec -it mysql-server /bin/bash
参数解释:
-i
让容器的标准输入保持打开-t
选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
在 mysql 容器中执行登录 mysql 的命令
1
# mysql -uroot -p147258369
修改密码
1
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '147258369';
使用
exit
命令退出 mysql,再使用exit
命令退出容器。
本文作者 : 王海
原文链接 : https://blog.whai.me/2018/06/20/docker-3-mysql/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!