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

如何连接mysql工作台在docker内运行mysql?

温镜
2023-03-14

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

共有3个答案

壤驷承
2023-03-14

假设您有docker-compose文件的下一个内容:

database:image:mysql:5.6卷:-dbdata:/var/lib/mysql环境:-“mysql\u database=homestad”-“mysql\u USER=homestad”-“mysql\u PASSWORD=secret”-“mysql\u ROOT\u PASSWORD=secret”端口:-“33061:3306”

段干子晋
2023-03-14

您必须在docker容器中执行一些配置。请按照以下步骤操作。

>

  • 在您的docker-compose.yml.中指定mysql配置块我在docker-compose.yml文件中的服务对象下有以下mysql块。

    services:
        db:
            image: mysql
            volumes:
                - "./.data/db:/var/lib/mysql"
            environment:
                MYSQL_ROOT_PASSWORD: root
                MYSQL_DATABASE: mydb
                MYSQL_USER: user
                MYSQL_PASSWORD: pass
            ports:
                42333:3306
    

    重新启动docker容器并运行以下命令以访问mysql容器中的bash shell

    docker ps
    docker exec -it <mysql container name> /bin/bash 
    

    在容器内部,要连接到mysql命令行类型,

    mysql -u root -p
    

    使用docker compose中指定的MYSQL\u ROOT\u密码。yml。执行以下命令以创建新用户。

    create user 'user'@'%' identified by 'pass';
    grant all privileges on *.* to 'user'@'%' with grant option;
    flush privileges;
    

    百分号(%)表示所有ip。重新启动docker容器。

    在MySQL工作台中,提供连接详细信息。使用docker compose中指定的MYSQL_密码。yml文件。

    https://imgs.xnip.cn/cj/n/76/f90e3904-b95d-4e24-9b63-2c444698e046.jpg" width="100%" height="100%" />

    您现在应该能够连接到mysql容器。

  • 蒋联
    2023-03-14

    默认情况下,部署后MySQL具有以下连接限制:

    mysql> select host, user from mysql.user;
    +-----------+---------------+
    | host      | user          |
    +-----------+---------------+
    | localhost | healthchecker |
    | localhost | mysql.session |
    | localhost | mysql.sys     |
    | localhost | root          |
    +-----------+---------------+
    4 rows in set (0.00 sec)
    

    显然,出于安全考虑,您将无法在docker映像之外连接到它。如果您需要更改它以允许root从任何主机连接(例如,出于开发目的),请执行:

    >

  • 使用所需的所有端口映射启动mysql映像:

    docker run-p 3306:3306--name=mysql57-d mysql/mysql-server: 5.7

    或者,如果需要完整的端口映射:

    docker run -p 3306:3306 -p 33060:33060 --name=mysql57 -d mysql/mysql-server:5.7
    

    如果这是新安装-获取默认密码:

    docker记录mysql57 2

    使用mysql客户端直接连接到docker中的mysqld:

    docker exec-it mysql57 mysql-uroot-p

    如果这是新的安装,您将被要求使用ALTER USER命令更改密码。做吧。

    运行SQL:

    更新mysql。用户集主机='%'其中用户='根'

    退出mysql客户端。

    重新启动容器:

    docker重启mysql57

    现在您将能够从MySQL工作台连接到

    host: `0.0.0.0` 
    port: `3306`
    

    所有更改后,查询将显示:

    select host, user from mysql.user;
    +-----------+---------------+
    | host      | user          |
    +-----------+---------------+
    | %         | root          |
    | localhost | healthchecker |
    | localhost | mysql.session |
    | localhost | mysql.sys     |
    +-----------+---------------+
    

  •  类似资料:
    • 我的Windows 8.1中有两个本地服务器,应用程序服务器和wampServer,通常可以通过在浏览器中键入localhost来访问应用程序服务器。wamp 服务器可通过本地主机访问:800 。所以我有两个数据库,一个来自应用服务器,另一个来自 WAMP . 现在我有MySQL工作台,我想连接到wampserver数据库,但当尝试使用主机名:localhost连接时,它只显示了appServer

    • 问题内容: 有人可以给我任何有关如何连接我的mysql db的想法吗,该数据库在Docker上的虚拟机上作为容器运行吗? 我对此一无所知,请帮助我。 我想做的是:-我正在本地计算机上编写一个Java程序,现在我想与mysql建立jdbc连接。我的MySQL数据库在虚拟机上作为docker容器运行。 有人有什么主意吗? 连接con = DriverManager.getConnection(“ jd

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

    • 我成功地用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

    • 错误代码:2013。查询期间与MySQL服务器的连接中断 我正在使用MySQL工作台。另外,我正在运行一批插入,总共大约1000行(例如,乘以1000次),每批需要相当长的时间,其中一些时间超过600秒。 如何配置workbench,以便在不停止和不丢失连接的情况下继续通宵工作?

    • 我不知道这件事,请帮帮我。 我正在尝试做的是:-我正在我的本地机器上编写一个java程序,现在我想与MySQL建立一个jdbc连接。我的MySQL DB在虚拟机上作为docker容器运行。 有没有人知道。 容器的ip地址是172.17.0.2,来宾ip是10.0.2.15。我的sql正在端口3306上运行。 提前致谢