背景:在Django中创建表结构,执行如下指令的时候遇到了题目所述的问题,查阅资料以后解决了该问题,在此做下记录。

python manage.py migrate

报错中描述的是没有找到名字为 runoob的数据库,这里提供两种可能的解决思路。

  1. Django项目配置文件中的数据库名称与mysql中的数据库名称不对应。

    1. 查看自己项目同名文件夹下的setting.py文件中的如下所示的‘NAME’属性

      DATABASES = {
          'default':
          {
              'ENGINE': 'django.db.backends.mysql',    # 数据库引擎
              'NAME': 'runoob',  # 数据库名称
              'HOST': '127.0.0.1',  # 数据库地址,
              'PORT': 3306,  # 端口
              'USER': 'root',  # 数据库用户名
              'PASSWORD': '*****',  # 数据库密码
          }
      }
      

      2.查看自己的mysql数据库中是否有对应名称的数据库

      具体做法如下:

      • 使用win+r打开命令行

      • 输入以下命令

        mysql -u root -p
        
      • 然后会提示输入数据库root账户的密码

      • 然后执行以下指令可以查看自己mysql中已有的数据库

        show databases
        
      • 如果显示出的列表中没有对应名称的数据库,那么就执行以下命令创建对应数据库

        CREATE DATABASE runoob
        
      • 然后再次执行应该就可以正确运行了

  2. 还有另外一种可能是对应的端口被其他应用占用了,可以采用以下方法来查看对应端口是否被占用

    • 使用win+r打开命令行

    • 然后执行以下命令来查看3306端口是否被占用

      netstat -aon|findstr "3306"
      
    • 显示出的列表中最后一列是占用3306端口对应的应用程序的PID

    • 然后打开任务管理器

    • 查看“详细信息”那一行,其中找到上面PID对应的应用程序。如果可以的话,可以在任务管理器关闭对应应用程序

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐