我需要旧版本的 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容器,你的机器是远程主机)
这可能有用..
登录docker并授予远程访问权限..
$ docker exec -it mysql_singstep bash
# mysql -h localhost -u root -p
https://medium.com/@gchandra/install-mysql-8-using-docker-easily-10091d575441
docker network create local_central_db_network
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
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