当前位置: 首页 > 知识库问答 >
问题:

使用mysql工作台连接到mysql容器

戚晨
2023-03-14

我成功地用commad创建了docker

docker运行--name my-db-d-p 3306:3306-v/e/dockerdata/mysql:/var/lib/mysql-e=“mysql_root_password=null”mysql

只是为了测试我是否必须键入字符串'null'作为密码;)它起作用了。使用

docker exec-it my-db bash

后来呢

MySQL-P

我可以连接到mysql命令行。然而,当我试图通过workbench运行它时,它并不工作。我把工作台和整个MySql的东西都从我的电脑上删除了,因为它可能会引起问题。然后我只重新安装了工作台。这没有帮助。

同样有趣的是,如果我停止并删除映像,并使用以下方法创建容器:

docker运行--name my-db-p 3306:3306-v/e/dockerdata/mysql:/var/lib/mysql-e mysql_root_password=admin-e mysql_database=testdb-d mysql

有人知道吗?也许是抓到的?还是藏在什么地方?我移除镜像,再次拉它,它没有帮助。输入null作为密码有帮助,admin不会马赫数。

日志:

$ 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命令。第一次尝试是password admin second null...也许是因为我运行的第一个命令有“”-e=“mysql_root_password=null”?

共有2个答案

柳俊健
2023-03-14

您的DB没有监听您提供的任何地址,而是监听您发布的图片中的容器名称。

您可以将容器主机名添加到hosts文件中,例如:1326xxxxxxx192.168.99.100(我认为它是运行容器的主机ip地址),也可以在容器运行时传递--hostname mydb并将其添加到hosts文件中。

钱志强
2023-03-14

我找到了解决办法,我希望它能帮助某人:

如果MySQL在Relese8.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
 类似资料:
  • 首先,我需要指出我在我的机器上运行了Wikipedia转储的sql文件,为了能够运行,我需要更新许多关于内存中可用索引大小的设置和一些其他设置。我只想提到那些大型sql查询运行成功,在内存或超时方面没有任何问题。 现在我有了一个表pagelinks(pl_from,pl_title),它显示了出现在每个维基百科页面中的链接,例如,数据可以是(1,“title1”),(1,“title2”),(2,

  • 我在docker容器中使用mysql服务器,可以访问docker内部。如何在本地(主机)上运行的mysql工作台中创建连接。

  • 我在MySQL Workbench上得到了以下查询 因为两个表中的products_id是相同的,并且这些是主键,所以我如何从一个查询输出中编辑两个表。正如它目前所说:只读。

  • 我正在尝试连接到mysql工作台,但遇到以下错误 错误消息无法连接到数据库服务器 用户“root”从主机到服务器的连接尝试失败(位于127.0.0.1:3306:无法打开数据库)。 请:1。检查mysql是否正在服务器127.0.0.1上运行 检查mysql是否在端口3306上运行(注意:3306是默认值,但可以更改) 检查root是否具有从您的地址连接到127.0.0.1的权限(mysql权限定

  • 我试图在我的项目中使用AWS Aurora Serverless for MySQL,但我无法连接到它,尽管我有endpoint、用户名和密码。 我所做的: 从AWS控制台管理中,选择RDS>实例>Aurora>无服务器 保留默认设置 创建数据库 AWS将只创建AWS集群 我打开MySQL工作台,并使用endpoint、用户名、密码连接数据库 结果: 将用户“admin”从主机连接到xxxx.cl

  • 并运行相同的命令,它可以工作。 我如何才能从容器外部登录到MySQL服务器而不会得到任何错误?