前言
Django自带的SQLite适合开发和测试使用,生产环境需转为正式数据库,方便后期数据维护(可以用数据库连接工具直接改数据)。
1.Racher安装mariadb
步骤1:Racher部署
-
基本设定:3306
-
环境变量:MARIADB_ROOT_PASSWORD=123456
-
持久卷:/var/lib/mysql (一个持久卷只能同时挂一个pod,不可以同时挂多个pod)
步骤2:查看端口
步骤3:用Ping 域名来查看IP
用Ping 域名来查看IP
步骤4:进入mariadb的pod设定密码和用户
- 在shell中输入mysql -u root -p
步骤5:用HeidiSQL建立数据库连接,并创建表
建立数据库连接
创建season DB
1.后续更新
镜像
镜像不选纬创的harbor-k8s.wzs.wistron.com.cn/base_image/mariadb
镜像要选mariadb
Service类型选:Nodeport
获取选择器
在Deployments的pod那里查看label信息。
获取IP地址
点击Target的端口号可以获知IP地址。
2.Django使用Rancher里面的mariadb
步骤1:Django的settings.py设定环境变量
设定数据库是否使用Mariadb
# 设定数据库是否使用Mariadb
MYSQL_OR_NOT = os.environ.get('MYSQL_OR_NOT', False)
# MYSQL_OR_NOT = True
MYSQL_IP = os.environ.get('MYSQL_IP', '10.41.****')
MYSQL_PORT = os.environ.get('MYSQL_PORT', '3****')
设定数据库配置
if MYSQL_OR_NOT:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'season', # 数据库名,先前创建的
'USER': '***', # 用户名,可以自己创建用户
'PASSWORD': '****', # 密码
'HOST': MYSQL_IP, # mysql服务所在的主机ip
'PORT': MYSQL_PORT, # mysql服务端口
}
}
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': Path(__file__).resolve().parent /'SQL' /'db.sqlite3',
}
}
步骤2:可现在本机启动启用,并创建表结构。python manage.py makemigrations和python manage.py migrate,在mariadb中同步表
Operations to perform:
Apply all migrations: PPDASH, admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying PPDASH.0001_initial... OK
Applying PPDASH.0002_auto_20211018_1941... OK
Applying PPDASH.0003_employee_function... OK
Applying PPDASH.0004_alter_employee_eid... OK
Applying PPDASH.0005_alter_employee_eid... OK
Applying PPDASH.0006_alter_employee_function... OK
Applying PPDASH.0007_auto_20211107_1756... OK
Applying PPDASH.0008_delete_userprofile... OK
Applying PPDASH.0009_auto_20220627_1820... OK
Applying PPDASH.0010_content... OK
Applying PPDASH.0011_auto_20220627_2253... OK
Applying PPDASH.0012_content_home_p_3... OK
Applying PPDASH.0013_alter_content_home_p_3... OK
Applying PPDASH.0014_auto_20220628_1635... OK
Applying PPDASH.0015_auto_20230310_0640... OK
Applying PPDASH.0016_auto_20230310_0641... OK
Applying PPDASH.0017_auto_20230310_0713... OK
Applying PPDASH.0018_auto_20230310_0722... OK
Applying PPDASH.0019_alter_employee_new... OK
Applying PPDASH.0020_alter_employee_new... OK
Applying PPDASH.0021_auto_20230310_1203... OK
Applying PPDASH.0022_alter_employee_new... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
步骤3:本机测试数据库ok后,启动rancher的应用替代本机应用。
步骤4:rancher的pod 加减1,测试数据库的PVC是否生效。
bug:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.Did you install mysqlclient?
请参考https://blog.csdn.net/qq_43271194/article/details/123282950