mysql - 使用 Mysql Workbench 连接到 mysql 容器
问题描述
我用 commad 成功创建了 docker
docker run --name my-db -d -p 3306:3306 -v /e/DockerData/mysql:/var/lib/mysql -e="MYSQL_ROOT_PASSWORD=null" mysql
只是为了测试我是否必须输入 String 'null' 作为密码;)它起作用了。使用
docker exec -it my-db bash
接着
mysql -p
我可以连接到 mysql 命令行。但是,当我尝试通过工作台运行它时,它不起作用。我从我的计算机中删除了工作台和整个 MySql 的东西,因为它可能会引起问题。然后我只重新安装了 Workbench。它没有帮助。
我通过 url 0.0.0.0:3306、localhost:3306 和 192.168.99.100:3306 进行连接,但它们都不起作用。(由于 Windows 10 Home,我正在使用 DockerToolbox)。当我尝试连接时,我得到了这个异常:
同样有趣的是,如果我停止并删除图像,并使用以下方法创建容器:
docker run --name my-db -p 3306:3306 -v /e/DockerData/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin -e MYSQL_DATABASE=testDB -d mysql
输入 docker exec -it my-db bash 然后 mysql -p 时我仍然需要使用密码“null”
,我不知道会发生什么。
有人知道吗?也许会抓到?或者它存储在某个地方?我删除了图像,再次将其拉出,但没有帮助。输入 null 作为密码会有所帮助,管理员不会马赫。
日志:
$ docker logs -f 132646ed8949
2018-06-13T17:53:31.961392Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2018-06-13T17:53:31.961823Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.11) starting as process 1
mbind: Operation not permitted
2018-06-13T17:53:32.728416Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2018-06-13T17:53:32.747107Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
2018-06-13T17:53:32.782912Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.infoschema@localhost' ignored in --skip-name-resolve mode.
2018-06-13T17:53:32.783958Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.session@localhost' ignored in --skip-name-resolve mode.
2018-06-13T17:53:32.784429Z 0 [Warning] [MY-010315] [Server] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
2018-06-13T17:53:32.785231Z 0 [Warning] [MY-010315] [Server] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
2018-06-13T17:53:32.786186Z 0 [Warning] [MY-010323] [Server] 'db' entry 'performance_schema mysql.session@localhost' ignored in --skip-name-resolve mode.
2018-06-13T17:53:32.786320Z 0 [Warning] [MY-010323] [Server] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
2018-06-13T17:53:32.786380Z 0 [Warning] [MY-010311] [Server] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
2018-06-13T17:53:32.798621Z 0 [Warning] [MY-010330] [Server] 'tables_priv' entry 'user mysql.session@localhost' ignored in --skip-name-resolve mode.
2018-06-13T17:53:32.799734Z 0 [Warning] [MY-010330] [Server] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
2018-06-13T17:53:32.811232Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.11' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
我删除了容器和图像。再拉一次,运行 docker 命令。第一次尝试是密码 admin 第二个 null ......也许是因为我运行的第一个命令有“” -e="MYSQL_ROOT_PASSWORD=null" ?
解决方案
我找到了解决方案,希望对某人有所帮助:
MySQL 在 relese 8.0 之后改变了他们的身份验证方式运行旧版本解决了这个问题:
docker run --name my-db -p 3306:3306 -v
/e/DockerData/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin -e
MYSQL_DATABASE=testDB -d mysql:5.7.22
推荐阅读
- dataframe - 如何在 pyspark 上的数据帧上使用 fuzz.ratio
- flutter - 如何限制 Flutter 块的创建
- flask - Flask,使用 send_from_directory 提供静态文件时出现 404 错误
- javascript - 多个 setIntervals 和性能
- android - 应用程序关闭或不使用时未显示通知
- javascript - 如何在选择标签中的单个选项上添加链接
- sparql - 在后续 SPARQL 查询中引用来自 SPARQL 查询的结果
- testing - Autosar 一致性测试和验收测试之间的区别
- c# - 为什么我把win32 intptr转换成c#int数组,数据不对
- css - 如何在 bootstrap col 中将图像拉伸到页面的全高?