业务层数据在MongoDB,系统信息层在MySQL中
复杂的数据库结构关系业务中使用MySQL(关系型数据库),简单的业务关系使用MongoDB(非关系型数据库)
一.docker安装启动外卖系统mysql
1.拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/sqqdcl/waimai-db
2.启动mysql数据库
# 第一步:创建数据存放目录
mkdir -p /opt/mysql/data
# 给存放的目录最高权限
chmod -R 777 /opt/mysql/data
# 第二步:创建并运行mysql容器(root密码设置为sq)
# --restart always 表示每次重启docker时,容器会自动运行
# -e MYSQL_ROOT_PASSWORD=sq 表示数据库的密码为yxy,账号为root
docker run -d --name mysql -v /opt/mysql/data:/var/lib/mysql --restart always -e MYSQL_ROOT_PASSWORD=sq -p 3306:3306 registry.cn-hangzhou.aliyuncs.com/sqqdcl/waimai-db
1.安装pymysql库
# python操作mysql的第三方库
pip install pymysql
2.操作数据库
此mysql环境仅供练习使用,如果公司内已经部署mysql,直接在novacat内连接并在代码内操作,不需要部署使用docker部署mysql的环境。
2.1 演示demo
import pymysql
# 打开数据库连接
db = pymysql.connect(host='192.168.152.132',port=3306,user='root',passwd='sq',database='sq-waimai',charset='utf8')
#创建游标
cursor=db.cursor()
# 执行sql语句
# cursor.execute('select version();')
# result=cursor.fetchone()
# print(result)
#查询操作
# sql='select * from t_cms_channel;'
# cursor.execute(sql)
# #结果是返回第一个结果cursor.fetchone() 返回一个元组
# result=cursor.fetchone()
# print(result)
# #获取所有结果cursor.fetchall() 返回元组套元组
# all_result=cursor.fetchall()
# print(all_result)
# #增加操作
# sql='insert into t_sys_login_log(ip,logname,message) values("127.0.0.1","sq","登录 成功");'
# cursor.execute(sql)
# #除了查询操作,其他操作都需要commit一下,才可以同步到数据库
# db.commit()
# #修改操作
# sql='update t_sys_login_log set logname="yxy" where message="登录 成功";'
# cursor.execute(sql