我正试着用Laravel的帆建立我的第一个测试数据库。我可以看到创建了测试数据库,并添加了一个用户:
mysql_test_1 | 2021-03-13 20:20:32+00:00 [Note] [Entrypoint]: Creating database test_database
mysql_test_1 | 2021-03-13 20:20:32+00:00 [Note] [Entrypoint]: Creating user test_root
mysql_test_1 | 2021-03-13 20:20:32+00:00 [Note] [Entrypoint]: Giving user test_root access to schema test_database然而,当我试图通过TablePlus连接时,我得到:
拒绝用户'test_root'@'172.24.0.1‘的
访问(使用密码: YES)
主机: 127.0.0.1端口: 3306用户: test_root密码: test_root数据库: test_database
我的.env有以下内容:
TEST_DB_CONNECTION=mysql
TEST_DB_HOST=mysql_test
TEST_DB_PORT=3306
TEST_DB_DATABASE=test_database
TEST_DB_USERNAME=test_root
TEST_DB_PASSWORD=test_root我的docker-compose.yml文件有:
mysql:
image: 'mysql:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmysql:/var/lib/mysql'
networks:
- sail
healthcheck:
test: ["CMD", "mysqladmin", "ping"]
mysql_test:
image: "mysql:8.0"
environment:
MYSQL_ROOT_PASSWORD: "${TEST_DB_PASSWORD}"
MYSQL_DATABASE: "${TEST_DB_DATABASE}"
MYSQL_USER: "${TEST_DB_USERNAME}"
MYSQL_PASSWORD: "${TEST_DB_PASSWORD}"
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
networks:
- sail发布于 2021-03-13 21:11:41
您正在启动两个不同的mysql容器:
mysql正在运行并将其3306端口与您的计算机3306端口连接。您可以使用主机localhost或127.0.0.1连接到它。正是这个dbms为您提供了正在运行的“拒绝访问”error.mysql_test,但是它的3306端口没有链接到主机上的任何端口,这意味着您不能直接访问它。由于您似乎是从主机(而不是从码头容器)运行TablePlus,我建议使用“端口”选项将端口3307 (或任何其他端口)从主机链接到容器的端口3306,就像对第一个容器那样。然后,配置TablePlus,使其连接到端口3306上的第一个dbms和端口3307上的第二个dbms。
https://stackoverflow.com/questions/66618511
复制相似问题