我创建了mysql docker容器
docker run -p 13306:3306 -d -e MYSQL_ROOT_PASSWORD="pass" -e MYSQL_DATABASE="db" --name mysql mysql:5.6.46
我试图连接到mysql
mysql -u root -p -h localhost -P 13306
但是我无法连接到mysql。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
出于某种原因,我必须这样连接。不使用docker exec -i -t mysql bash
答案 0 :(得分:0)
您应该尝试扩大问题范围,并添加有关收到的错误的更多信息。
在我的本地开发环境中,为了连接到我的MySQL数据库,我给它提供了一个静态IP地址。为了简化起见,我倾向于使用docker-compose而不是直接从docker命令运行。这是mariaDB容器的docker-compose.yaml文件的样子:
version: '3.7'
services:
maria:
container_name: maria
image: mariadb:10.4
restart: always
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_USER=user
- MYSQL_PASSWORD=user_password
volumes:
- ./maria:/var/lib/mysql
networks:
static:
ipv4_address: 172.30.0.10
networks:
static:
ipam:
driver: default
config:
- subnet: 172.30.0.0/16
运行 docker-compose up 命令后,我现在可以使用命令
连接到mysql shell。mysql -uuser -puser_password -h 172.30.0.10
如果您正在运行linux,还可以在/ etc / hosts文件中添加一行,例如: 172.30.0.10 mysql
然后您可以连接命令
mysql -uuser -puser_password -h mysql
我非常有信心您可以通过一个纯粹的docker命令获得相同的结果,但是使用docker-compose似乎更容易。无论如何,我希望对您有帮助