如何运行Docker的容器来访问MySQL数据库

问题描述 投票:0回答:2

我需要旧版本的 Mysql Server :5.1.73

我想在容器内使用它,但我找不到图像,因为第一个可用版本是 5.5。所以我决定安装一个 CentOS 6 镜像,然后使用 yum 安装 Mysql 5.1.73。

最后,我根据我的需要安装并配置了一个包含 CentOS 6 和 Mysql 的容器。在此步骤中,我提交图像以运行容器。

我尝试以下命令:

docker run -p 3307:3306 --name test-mysql --mount source=databases-vol,target=/databases -d centos6-mysql

但是当我尝试连接到我的数据库时,我收到如下错误消息:

MySQL 说:主机 '172.17.0.1' 不允许连接到此 MySQL 服务器

我错过了什么?

mysql docker
2个回答
0
投票

默认情况下..mysql不允许来自远程主机的连接(即使你有docker容器,你的机器是远程主机)

这可能有用..

登录docker并授予远程访问权限..

$ docker exec -it mysql_singstep bash
# mysql -h localhost -u root -p

https://medium.com/@gchandra/install-mysql-8-using-docker-easily-10091d575441


0
投票

网络:外部网络

docker network create local_central_db_network

创建文件 docker-compose.yml

version: '3.3'
services:
  central_db_5.1.73:
    image: vsamov/mysql-5.1.73:latest
    container_name: local-central-db-container-5.1.73
    environment:
      # MYSQL_DATABASE: otl_erp
      MYSQL_USER: root
      MYSQL_PASSWORD: root
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - ./dbdata:/var/lib/mysql
    ports:
      - 3306:3306
    networks:
      - local_central_db_network
networks:
  local_central_db_network:
    external: true

命令:Docker

sudo docker-compose down
sudo docker-compose build && docker-compose up -d

与客户联系

mysql --user=root mysql

update user set Password=PASSWORD('root') where user='root';
flush privileges;
exit;


 ALTER USER 'root'@'localhost' IDENTIFIED BY root;
 update user set authentication_string=PASSWORD("root") where User='root';

MYSQL_USER: root
MYSQL_PASSWORD: root
MYSQL_ROOT_PASSWORD: root
PORT: 3377
© www.soinside.com 2019 - 2024. All rights reserved.