我要设置一个沼泽。 docker-compose运行得很好,直到我遇到phpmyadmin和mysql容器的一些问题。我无法连接,也无法通过php或phpmyadmin连接,并且通常显示以下错误消息:mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
我能够通过连接进入db容器docker exec -it db mysql -uroot -p
的外壳并运行以下命令来解决问题:ALTER USER 'root' IDENTIFIED WITH mysql_native_password by '123456';
但是这种无聊的事情是因为我有一个合作伙伴在同一个项目上工作而且我们必须大量更改工作职位,因此这意味着在开发阶段每次都要重新运行docker,所以我想知道我的docker-compose有什么问题...
是这里:
version: "3.1"
services:
www:
build: .
container_name: app
ports:
- "8001:80"
volumes:
- ~/Desktop/WORK_in_progress/camagru/www/:/var/www/html/
links:
- db
networks:
- default
db:
image: mysql:8.0
container_name: db
restart: always
tty: true
ports:
- "3306:3306"
command: --default-authentication-plugin=mysql_native_password
command: --innodb-use-native-aio=0
environment:
MYSQL_DATABASE: CAMAGRU
MYSQL_USER: user
MYSQL_PASSWORD: 123456
MYSQL_ROOT_PASSWORD: 123456
volumes:
- ~/Desktop/WORK_in_progress/camagru/dump:/docker-entrypoint-initdb.d
- ~/Desktop/WORK_in_progress/camagru/conf:/etc/mysql/conf.d
- persistent:/var/lib/mysql
networks:
- default
phpmyadmin:
container_name: phpmyadmin
restart: always
tty: true
image: phpmyadmin/phpmyadmin
links:
- db:db
ports:
- 8000:80
environment:
MYSQL_USER: user
MYSQL_PASSWORD: 123456
MYSQL_ROOT_PASSWORD: 123456
volumes:
persistent:
注意:我不使用任何配置文件,我对在线上找到的内容进行了一些修改。
答案 0 :(得分:0)
您的命令正确,出现此问题是因为您两次定义了std::string idStr = std::move(id);
键,而第二个键覆盖了第一个键。相反,您应该只定义一次,就像这样:
command