我用 Orbstack 带的 docker-compose 在 Mac 上部署了一个 mysql 服务,然后在宿主机上连接,提示我权限问题,
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1698 (28000): Access denied for user 'reserva'@'localhost'
然后这种小问题习惯性丢给 ai ,让 ai 帮我验一下 docker-compose.yml 等等。然后 ai 一通跑没有解决。
然后我自己上手看看,登录到容器里面,mysql 登录没有问题,在宿主机上就是死活登录不上去, 之前用 pg 比较多,然后又去网上搜索 mysql 是不是有什么权限上的“小怪癖”,一通搜索也没有解决。
然后用 lsof 看看端口:
lsof -i :3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
OrbStack 21326 xxxa 119u IPv4 0xc9342167e2def510 0t0 TCP localhost:mysql (LISTEN)
OrbStack 21326 xxxa 122u IPv4 0xf85b3d5e0df3643 0t0 TCP *:mysql (LISTEN)
OrbStack 21326 xxxa 124u IPv6 0x7feccab790ab9cb5 0t0 TCP *:mysql (LISTEN)
然后想起来我在一个 Orbstack 中创建过一个“Machine”,然后登录 Machine 一看,里面果然也跑了一个 mysql 服务。然后我把这个 Machine 中的 mysql 服务停掉。
回到宿主机,使用 mysql 登录,成功登录到 docker 部署的 mysql 服务。
所以总结下来就是说,使用 Orbstack ,在 Machine 中部署了一个监听 3306 的 mysql, 使用 Orbstack 的 docker 部署了一个映射了监听 3306 的 mysql 。
然后在宿主机上登录,直接先连到了 Machine 中的那个 mysql 里面去了,但是我也不知道这玩意儿到底连谁,它的优先级是怎么定的。
这个现象是我没想到的。我一直理解上,“虚拟机”的端口应该是和宿主机”隔离“的吧。不过也是,Orbstack 的 Machine 好像也不能和传统的虚拟机做类比。
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1698 (28000): Access denied for user 'reserva'@'localhost'
然后这种小问题习惯性丢给 ai ,让 ai 帮我验一下 docker-compose.yml 等等。然后 ai 一通跑没有解决。
然后我自己上手看看,登录到容器里面,mysql 登录没有问题,在宿主机上就是死活登录不上去, 之前用 pg 比较多,然后又去网上搜索 mysql 是不是有什么权限上的“小怪癖”,一通搜索也没有解决。
然后用 lsof 看看端口:
lsof -i :3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
OrbStack 21326 xxxa 119u IPv4 0xc9342167e2def510 0t0 TCP localhost:mysql (LISTEN)
OrbStack 21326 xxxa 122u IPv4 0xf85b3d5e0df3643 0t0 TCP *:mysql (LISTEN)
OrbStack 21326 xxxa 124u IPv6 0x7feccab790ab9cb5 0t0 TCP *:mysql (LISTEN)
然后想起来我在一个 Orbstack 中创建过一个“Machine”,然后登录 Machine 一看,里面果然也跑了一个 mysql 服务。然后我把这个 Machine 中的 mysql 服务停掉。
回到宿主机,使用 mysql 登录,成功登录到 docker 部署的 mysql 服务。
所以总结下来就是说,使用 Orbstack ,在 Machine 中部署了一个监听 3306 的 mysql, 使用 Orbstack 的 docker 部署了一个映射了监听 3306 的 mysql 。
然后在宿主机上登录,直接先连到了 Machine 中的那个 mysql 里面去了,但是我也不知道这玩意儿到底连谁,它的优先级是怎么定的。
这个现象是我没想到的。我一直理解上,“虚拟机”的端口应该是和宿主机”隔离“的吧。不过也是,Orbstack 的 Machine 好像也不能和传统的虚拟机做类比。