我在docker容器中设置了一个django项目,每件事都按照预期工作,只是我没有在mysql映像中找到项目数据库。
DockerFile
FROM python:3
RUN mkdir /django-website
WORKDIR /django-website
COPY . /django-website
RUN pip install -r requirements.txt
Docker-compose.yml
version: '3'
services:
db:
image: mysql:5.7
restart: always
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=mywebsite
- MYSQL_USER=root
- MYSQL_PASSWORD=root
ports:
- '33060:3306'
volumes:
- /var/lib/mysql
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/django-website
ports:
- '8000:8000'
links:
- db
设置.py
DATABASES = {
'default': {
'ENGINE': "django.db.backends.mysql",
'NAME': "mywebsite",
'USER': "root",
'PASSWORD': "root",
'HOST': 'db',
'PORT': '3306',
}
}
docker-compose run web python manage.py migrate
docker-compose run web python manage.py createsuperuser
你能告诉我缺了什么吗?如果没有创建数据库,迁移应用到了哪里?
提前道谢。
我不太清楚你说的“我登录了mysql映像shell但没有找到My网站数据库”是什么意思
您已成功迁移DB,这意味着DB连接有效且正常工作。在docker-compose.yml
文件中,端口映射如下所示,'33060:3306'
,这意味着DB
的端口3306
映射到主机的端口33060
。所以,这可能是问题所在(这不是问题,是打字
)
方法1:通过web
容器
1的django-shell
进行检查。运行docker-compose up
2。在同一路径中打开一个新终端,并运行Docker PS
您将得到如下内容
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
795093357f78 django_1_11_web "python manage.py ru…" 34 minutes ago Up 11 minutes 0.0.0.0:8000->8000/tcp django_1_11_web_1
4ae48f291e34 mysql:5.7 "docker-entrypoint.s…" 34 minutes ago Up 12 minutes 0.0.0.0:33060->3306/tcp django_1_11_db_1
3.通过Docker exec-it 795093357F78 bash
命令进入Web
容器,其中795093357F78
是相应的容器ID
4。现在你在容器里。然后,运行命令python manage.py dbshell
。现在您将处于mywebite
(屏幕截图)
5的MYSQL shell中。运行命令show tables;
。它将显示我的网站
数据库方法-2:通过数据库
容器
1进行检查。重复上述部分
2中的步骤1和2。通过Docker exec-it 4AE48F291E34 bash
3进入DB
容器。现在您将进入MySQL的bash终端。运行以下commmandmysql-u root-p
并在提示符
4时输入密码。现在您在MYSQL服务器中。运行命令show databases;
。这将显示服务器中的所有数据库。
我试图在phpmyadmin中为我的服务器构建一个数据库,但是当我完成构建后,我无法使用PHP访问它,并且当我在MySQL中列出数据库时,它也不会显示出来。但当我在mySql中创建数据库时,它会显示在phpmyadmin中。另外,我正在运行phpmyadmin版本4.0.3,页面底部有一条声明说
在MySQL 中,可以使用 CREATE DATABASE 语句创建数据库,语法格式如下: 中的内容是可选的。语法说明如下: <数据库名>:创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量要有实际意义。注意在 MySQL 中不区分大小写。 IF NOT EXISTS:在创建数据库之前进行判断,只有该
问题内容: 您能帮忙解决这个问题吗? 我正在尝试创建然后使用一个名为TIGER的数据库。 如果我在MySQL中创建数据库并且运行完美,我没有问题。 我想做的是从Java创建它。这样,当首次运行代码时,它将在初始启动过程中创建数据库。如果可能的话,我想用一种干净的方法将其装箱。 有人可以告诉我您实际将代码放置在哪里 这是代码 这是创建数据库的代码 在此先感谢,感谢您的帮助。 因为我是一个长期读者但还
我正在尝试创建一个mysql数据库/模式,如果它还不存在的话。 以下是我尝试过的: docker编写。yml公司 创建数据库 它不起作用。如果架构不存在,使用docker/docker compose创建架构的最佳方式是什么?
主要内容:使用 MySQLi 和 PDO 创建 MySQL 数据库,实例 (MySQLi - 面向对象),实例 (MySQLi Procedural),实例数据库存有一个或多个表。 你需要 CREATE 权限来创建或删除 MySQL 数据库。 使用 MySQLi 和 PDO 创建 MySQL 数据库 CREATE DATABASE 语句用于在 MySQL 中创建数据库。 在下面的实例中,创建了一个名为 "myDB" 的数据库: 实例 (MySQLi - 面向对象) <?php $serverna
前面章节介绍了如何登陆连接 MySQL 数据库,连接 MySQL 数据库之后就可以对数据库进行操作了,本小节将介绍如何创建一个属于自己项目的数据库。 1.使用命令行新建一个数据库 1.1 进入 MySQL 首先登陆进入 MySQL 操作界面,命令如下: 命令 : mysql -utest -p; 1.2 查看数据库 登陆成功之后可以使用如下命令查看当前已有数据库: 命令 : SHOW DAT