我在 mac 上起了一个 mysql docker 容器, 我现在想要使用 navicat 连接这个 mysql ? navicat 连接参数 我怎么配置都连不上。球球了。心态炸裂了卧槽了
2003 - Can't connect to MySQL server on '172.17.0.2' (60 "Operation timed out")
这是 navicat 提示 我靠 我想白嫖各位大佬
另外 现在越来越觉得 复制粘贴这个功能。真的有毒 现在百度出来的答案。全都是复制的 我就不明白了。这 tm 一样的垃圾文章 复制来复制去有个毛用?
各位大佬 怎么看?
1
Leviathann 2021-04-01 01:56:28 +08:00 via iPhone
就 docker run 的时候指定端口映射啊
-p 3306:3306 |
2
0bit 2021-04-01 07:10:03 +08:00
一楼正解。
映射之后,在客户端就链接 127.0.0.1:3306 就行了。 另外,docker 用起来的话,概念不算多,建议简单刷一下概念,建立一个整体概念。 想对外提供服务就端口映射 [port] , 想容器内容持久化就磁盘映射 [volume] , 想传递配置进去就用环境变量 [env] , 想获取容器的 log 就在内部输出到 [stdout / stderr] , 想调用容器的命令,就用 [exec] 。 |
3
touchwithe 2021-04-01 08:19:42 +08:00 via iPhone
楼上说的对!
我也想吐槽网上的各种复制粘贴之风,简直是互联网世界的垃圾。 |
4
uselessVisitor 2021-04-01 08:32:56 +08:00
分享一个 docker-compose 文件
version: '3.1' services: mysql: restart: always image: mysql:5.7.22 container_name: mysql ports: - 3306:3306 environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: 123456 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 --max_allowed_packet=128M --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO" volumes: - mysql-data:/var/lib/mysql volumes: mysql-data: |
5
uselessVisitor 2021-04-01 08:34:57 +08:00
@beichenhpy mysql-data:对应你的本地路径
|
6
KouShuiYu 2021-04-01 10:44:24 +08:00
数据库地址写容器名称就可以
|
7
superviolet OP @Leviathann 找到问题了,是因为宿主机上原来安装了 mysql,还没有验证具体是端口冲突还是别的问题,我现在把宿主机上的 mysql 卸载掉就可以了
|
8
superviolet OP @touchwithe 心累啊~ 本来很多文章就没什么质量,在这基础上 还抄来抄去 看吐了。。。
|
9
julyclyde 2021-04-04 11:40:46 +08:00
第一,不要在容器里运行基础设施类软件
|