Mysql Can';t连接到docker容器外部的mariadb

Mysql Can';t连接到docker容器外部的mariadb,mysql,docker,mariadb,Mysql,Docker,Mariadb,我正在尝试建立与docker容器上运行的mariadb数据库的连接。它开始使用docker compose: local_maria_db: image: mariadb:10.1 ports: - "6603:5432" environment: MYSQL_ROOT_PASSWORD: "password" MYSQL_DATABASE: "testdb"

我正在尝试建立与docker容器上运行的mariadb数据库的连接。它开始使用docker compose:

  local_maria_db:
    image: mariadb:10.1
    ports:
      - "6603:5432"
    environment:
      MYSQL_ROOT_PASSWORD: "password"
      MYSQL_DATABASE: "testdb"
      ACCEPT_EULA: "Y"
    volumes:
      - ${MARIA_CNF_PATH}:/etc/mysql/conf.d/
    networks:
      - vpc1
    restart: always
这是我的.cnf文件:

bind address=0.0.0.0

当我试图使用
mysql
访问docker容器外部的数据库时:

mysql--user=root--password=password--port=6603--host=localhost testdb

我要走了

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
当我尝试使用运行在不同容器上但在同一网络中的
Sequelize
与此数据建立连接时:

 maria_db_connection: {
    database: "testdb",
    dialect: "mariadb",
    username: "root",
    password: "password",
    host: "local_maria_db",
    port: 5432
  }
我得到了
ECONNREFUSED

当我在docker容器中执行
mysql
命令时

mysql --user=root --password=password testdb
它连接起来没有问题

MariaDB [testdb]>
编辑:

Docker集装箱检查:

[
    {
        "Id": "0a841717401c08b7153d88010d55ce204a9fda4f6cb679819a7d0da818d1e25a",
        "Created": "2021-03-21T17:40:43.015346154Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "mysqld"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 26023,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-03-21T17:49:19.57736344Z",
            "FinishedAt": "2021-03-21T17:49:11.732752669Z"
        },
        "Image": "sha256:4a2fed152fe12cbc1e1adbebcc89035df6f230b7c0c0c955c90827826e3bdf59",
        "ResolvConfPath": "/var/lib/docker/containers/0a841717401c08b7153d88010d55ce204a9fda4f6cb679819a7d0da818d1e25a/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/0a841717401c08b7153d88010d55ce204a9fda4f6cb679819a7d0da818d1e25a/hostname",
        "HostsPath": "/var/lib/docker/containers/0a841717401c08b7153d88010d55ce204a9fda4f6cb679819a7d0da818d1e25a/hosts",
        "LogPath": "/var/lib/docker/containers/0a841717401c08b7153d88010d55ce204a9fda4f6cb679819a7d0da818d1e25a/0a841717401c08b7153d88010d55ce204a9fda4f6cb679819a7d0da818d1e25a-json.log",
        "Name": "/pccr_local_maria_db_1",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [
                "/Users/krystiank/db/maria_cnf:/etc/mysql/conf.d:rw"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "pccr_vpc1",
            "PortBindings": {
                "5432/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "6603"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "always",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": [],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": null,
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/d6da8b7be1c593baffb442523f3ffd6fb96a9a2036d8bdac5996a5897c6efd90-init/diff:/var/lib/docker/overlay2/85a09a45a7059dff07262e9a3d89b65303a75b514a789335fe3d84fa81e23a5c/diff:/var/lib/docker/overlay2/33fc523d3c873464f8a5a394dfe0ece4990a2b68d2dddfbcb1f7ae86e87e0cb6/diff:/var/lib/docker/overlay2/503b045a316c1977d0d0fae6d336094b56fa591682d812d52a5371cc450b9596/diff:/var/lib/docker/overlay2/5fe0709b633a59d99c60d4f122fcc3aaaed2913e3d6718dd90d4568173e75b11/diff:/var/lib/docker/overlay2/bb60c3716445387fd4c526f72bd2b93c263babbce38f6bb1276985c34d28aa6f/diff:/var/lib/docker/overlay2/602c47432472dae0a7eef2dcf91f270090ed9c8ff2d6e0e5688b6f1792895c11/diff:/var/lib/docker/overlay2/24e5c83a0e9ac4f4fe38c9ba349db2cee1c79327da8a663e230bad3a22eea957/diff:/var/lib/docker/overlay2/35307c36b0e275d1dcd6e671e6092a5313af6cdbd60a7671de1dc1346d7f6cb0/diff:/var/lib/docker/overlay2/4639a60f3e8609d8da66e0d8cbb8b4f5a5f00c697a8b2adba4f11325e34ac21b/diff:/var/lib/docker/overlay2/6c01eeaf5c7c886f684f052b9528d8495322768502c916959ddf585998c3b92c/diff:/var/lib/docker/overlay2/9f41f16ff822550d90ad62513def9f0cfe5229e37bb34b909a72f1a683d6fb07/diff:/var/lib/docker/overlay2/ea2fc40c561756f7d9ce97f2741ddadded740f81a009e5875cfb1ac567f8a8f6/diff:/var/lib/docker/overlay2/6b90e9b7b847bb24a9cc8394f10c5be77d10521be3544515d2af3ff5f8c67d9a/diff",
                "MergedDir": "/var/lib/docker/overlay2/d6da8b7be1c593baffb442523f3ffd6fb96a9a2036d8bdac5996a5897c6efd90/merged",
                "UpperDir": "/var/lib/docker/overlay2/d6da8b7be1c593baffb442523f3ffd6fb96a9a2036d8bdac5996a5897c6efd90/diff",
                "WorkDir": "/var/lib/docker/overlay2/d6da8b7be1c593baffb442523f3ffd6fb96a9a2036d8bdac5996a5897c6efd90/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/Users/krystiank/db/maria_cnf",
                "Destination": "/etc/mysql/conf.d",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "volume",
                "Name": "d51df909be41a03544fba8ead271e3c26b69bacdb62e16bdd42b201018c43ba6",
                "Source": "/var/lib/docker/volumes/d51df909be41a03544fba8ead271e3c26b69bacdb62e16bdd42b201018c43ba6/_data",
                "Destination": "/var/lib/mysql",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
        "Config": {
            "Hostname": "0a841717401c",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "3306/tcp": {},
                "5432/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "MYSQL_ROOT_PASSWORD=password",
                "MYSQL_DATABASE=rssmonster",
                "ACCEPT_EULA=Y",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "GOSU_VERSION=1.12",
                "GPG_KEYS=177F4010FE56CA3336300305F1656F24C74CD1D8",
                "MARIADB_MAJOR=10.1",
                "MARIADB_VERSION=1:10.1.48+maria-1~bionic"
            ],
            "Cmd": [
                "mysqld"
            ],
            "Image": "mariadb:10.1",
            "Volumes": {
                "/etc/mysql/conf.d": {},
                "/var/lib/mysql": {}
            },
            "WorkingDir": "",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "com.docker.compose.config-hash": "3980c17ef35aa15944f74bb088a21955c6e2d26fe859dc69fa2deb133f6d6579",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.oneoff": "False",
                "com.docker.compose.project": "pccr",
                "com.docker.compose.project.config_files": "docker-compose.yml,docker-compose.local.yml",
                "com.docker.compose.project.environment_file": ".env",
                "com.docker.compose.project.working_dir": "/Users/krystiank/repos/pccr/pccr",
                "com.docker.compose.service": "local_maria_db",
                "com.docker.compose.version": "1.27.4"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "a1af979cc81d1f1f41ea8293f9f4d6adfdaca8a597b6e3d95bc02204f5b70edc",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "3306/tcp": null,
                "5432/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "6603"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/a1af979cc81d",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "pccr_vpc1": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "local_maria_db",
                        "0a841717401c"
                    ],
                    "NetworkID": "2eab3acc35ed4d269cf0f90a6f90f747b5e75f761af52c34bb4fe09e157e7542",
                    "EndpointID": "16e194805019936efa4a7df95357da0de558fd1825327ff782e979656031b113",
                    "Gateway": "10.1.0.1",
                    "IPAddress": "10.1.0.4",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:0a:01:00:04",
                    "DriverOpts": null
                }
            }
        }
    }
]

我做错了什么(

在docker compose中,我看到您正在使用vpc1,如果这是AWS,请检查您的安全组,并允许您从哪台计算机或VM连接到容器,以便能够访问它。

因此,mariadb不关心我在docker compose中提供的端口,或者可能我对如何访问这些端口有错误的理解is works-无论如何,mariadb正在docker容器内的3306端口上工作,我可以从同一网络(vpc1)中的其他容器访问它,并且没有问题:

为了从容器和网络外部访问它,我必须将docker compose端口从

ports:
  - "6603:5432"

因此,当我在端口6603上调用localhost时,它会到达mariadb正在使用的实际端口(3306)

案例结束后,我只是不知道为什么它总是在端口3306上工作,这是我现在可以看到的唯一更改此端口的方法-添加配置(按卷),该配置将作为最后一个加载,并将覆盖mariadb拥有的端口配置


添加这个作为答案,可能会对将来的某个人有所帮助。

在容器中进行检查。docker容器检查我已经更新了问题您是否尝试从docker外部连接到您的mariaDB?因此,您可以这样做:mysql--user=root--password=password--port=6603--host=10.1.0.1 TestDmariaDB的端口是
3306
。您更改了吗?
ports:
  - "6603:5432"
ports:
  - "6603:3306"