在 Docker 容器内连接本地 MySQL 数据库?
Connecting local MySQL database inside a Docker container?
这是我尝试连接的方式。但它显示:
Host 'host.docker.internal' is not allowed to connect
YAML:
environment:
- MYSQL_DSN=mysql:host=192.168.0.1;port=3307;dbname=dbname
您的 MySQL 用户不允许外部连接。
使用“GRANT”更新您的用户以允许外部连接或使用“CREATE USER”创建新用户:https://linuxize.com/post/how-to-create-mysql-user-accounts-and-grant-privileges/
要接受所有连接,请使用 %
通配符作为主机部分。
- 创建 mysql 数据作为容器:命名为:mysql-数据
- 为 mysql 服务器创建 docker 容器以使用在步骤 1 中创建的 mysql 数据库。这是你的内部 docker conatiner
- mysql 客户端应该在主机上
以上 2 个步骤使用 yaml 文件作为:
services:
mysql-data:
image: image_path/mysql-data:latest
container_name: mysql-data
my-container-name:
image: mysql/mysql-server:5.6
container_name: my-container-name
env_file:
- MYSQL_ROOT_HOST=%
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_USER=username
- MYSQL_PASSWORD=password
ports:
- 9999:3306
volumes_from:
- mysql-data
使用命令登录 mysql 数据库:
mysql -h <your-host-ip> -P9999 -uusername -ppassword
这是我尝试连接的方式。但它显示:
Host 'host.docker.internal' is not allowed to connect
YAML:
environment:
- MYSQL_DSN=mysql:host=192.168.0.1;port=3307;dbname=dbname
您的 MySQL 用户不允许外部连接。
使用“GRANT”更新您的用户以允许外部连接或使用“CREATE USER”创建新用户:https://linuxize.com/post/how-to-create-mysql-user-accounts-and-grant-privileges/
要接受所有连接,请使用 %
通配符作为主机部分。
- 创建 mysql 数据作为容器:命名为:mysql-数据
- 为 mysql 服务器创建 docker 容器以使用在步骤 1 中创建的 mysql 数据库。这是你的内部 docker conatiner
- mysql 客户端应该在主机上
以上 2 个步骤使用 yaml 文件作为:
services:
mysql-data:
image: image_path/mysql-data:latest
container_name: mysql-data
my-container-name:
image: mysql/mysql-server:5.6
container_name: my-container-name
env_file:
- MYSQL_ROOT_HOST=%
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_USER=username
- MYSQL_PASSWORD=password
ports:
- 9999:3306
volumes_from:
- mysql-data
使用命令登录 mysql 数据库:
mysql -h <your-host-ip> -P9999 -uusername -ppassword