本地django连远程阿里云服务器docker里的mysql

一、安装docker

二、docker安装mysql

三、docker正确运行mysql

四、进入mysql命令行更改一些mysql的属性

五、django工程里settings.py文件中对数据库的配置

六、阿里云控制台对实例进行管理,开启服务器对应端口

七、打开Navicat Premium连接数据库,加一个数据表“djangoStudy"

八、pycharm命令行里迁移数据库

具体操作

一、安装docker

yum install docker

二、docker安装mysql

docker pull mysql:latest

三、docker正确运行mysql

docker run --name mysql01 -e MYSQL_ROOT_PASSWORD='123456' -p 3306:3306 -d docker.io/mysql:latest

docker run -d --name liying-mysql -e MYSQL_ROOT_PASSWORD=attack docker.io/mysql

docker.io/后来安装了个 docker.io版本

1、mysql01 可改,这是你给这次运行的mysql起的名字(注意这是软件名字,不是数据库名字 [django中设置时注意] )

2、123456 可改,这是你自己设置的密码

3、3306 可改,这是你在服务器的哪一个端口运行mysql,外部访问时也是访问这个端口,:后面的那个3306不可改变,那是mysql软件的端口

4、mysql:latest 可改,mysql不改,:都的latest可改,这是你的mysql版本,不知道的可以docker images查看镜像版本(注意:mysql:latest这个字段要写在语句最后,否则docker无法成功运行mysql

最后,使用语句:docker ps 查看,当前正在运行的镜像,有没有mysql

四、进入mysql命令行更改一些mysql的属性

1、docker exec -it djangoStudy bash      djangoStudy 就是你的mysql软件名字可改,进入容器

(实在不行,手打一遍),可能加粗什么的会有问题

2、mysql -u root -p

3、输入你的密码

4、grant all privileges on *.* to 'root'@'%'with grant option; (别忘了分号)授权远程连接

5、flush privileges;

6、alter user 'root'@'localhost' identified by 'password' password expire never;   更改加密规则(password就打password)

7、alter user 'root'@'%' identified with mysql_native_password by 'password';   更新root用户密码root password你自己设个

8、flush privileges;

9、exit

10、exit

五、django工程里settings.py文件中对数据库的配置

1、

工程同名文件夹下 __init__.py 下

import pymysql
#告诉django使用pymysql代替MySQLdb
pymysql.install_as_MySQLdb()

如果 pymysql 下有波浪线,那么命令行下 pip install pymysql

2、

settings.py 文件下:

DATABASES = {
    'default': {
        #连接数据库类型
        'ENGINE': 'django.db.backends.mysql',
        #连接数据库地址
        'HOST': '',
        #连接端口
        'PORT': 3306,
        #数据库名称
        'NAME': 'djangoStudy',
        #用户名
        'USER': 'root',
        #密码
        'PASSWORD': '123456'
    }
}

3、app 文件夹下 models.py

#ORM相关的只能写在这个文件中,写在别的地方django找不到
class UserInfo(models.Model):
    #创建一个自增的主键字段
    id = models.AutoField(primary_key=True)
    #创建一个varchar(20)类型的不能为空的字段
    name = models.CharField(null=False, max_length=20)

六、阿里云控制台对实例进行管理,开启服务器对应端口

阿里云-->控制台-->云服务器-->实例-->管理-->本实例安全组-->配置规则-->添加安全组规则-->端口范围(你开的服务器哪个端口就是哪个,-p:前的那个)-->授权对象(0.0.0.0/0)-->确定

七、打开Navicat Premium连接数据库,加一个数据表“djangoStudy"

 

八、pycharm命令行里迁移数据库

pycharm终端中(界面下放terminal命令行)输入

python manage.py makemigrations (可能会出现,无法连接数据、找不到你命名的那个数据库问题,我的解决方案见上)

python manage.py migrate

当你看到一堆ok时,就OK了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

匿名匿名匿名11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值