腾讯云服务器 flask项目 傻瓜式部署全流程 (三)

目录

                                             第三部分:数据库配置及迁移

一、安装数据库(Mariadb/mysql)

二、数据库迁移


                                             第三部分:数据库配置及迁移

一、安装数据库(Mariadb/mysql)

此处安装mariadb,可支持MySQL正常操作。

1、安装mariadb的数据库和客户端程序

yum -y install mariadb mariadb-server

2、启动mariadb数据库

# 启动数据库
systemctl start mariadb

(# 重启数据库
systemctl restart mariadb
# 停止数据库
systemctl stop mariadb
# 查看数据库的运行状态
systemctl status mariadb
# 设置数据库开机自动启动
systemctl enable mariadb)

执行以下操作时,将mariadb置于启动状态中

3、配置数据库的初始密码

mysql_secure_installation

4、数据库详细配置

Enter current password for root:<–初次运行直接回车

设置密码
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车

New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码

其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车

5、测试登录命令

mysql -u root -p
密码:XXXXXXX

(1)创建用户
create user 'root'@'%' identified by 'passwordXXXXX'; 
(2)用户授权
# 给用户最大权限 (选择这种)
 grant all privileges on *.* to 'root'@'%' identified by 'passwordXXXXX'; 
# 给部分权限(test 数据库) (暂不选择)
#grant all privileges on test.* to 'root'@'%' identified by 'password' with grant option;
 # 刷新权限表 
flush privileges;
# 查看用户信息
 show grants for 'root'@'localhost';
(3)创建数据库
create database if not exists XXXX(库名) default charset utf8 collate utf8_general_ci;

二、数据库迁移

1、方法一:此方法只能搭建数据库结构,并不能将已有数据导入。

想实现数据库迁移,首先确保在manage.py文件中成功配置好manager变量。
本人manage.py代码如下:

#! /usr/bin/env python3
from app import create_app,db
from app.models import Category,BlogType,Topic,User,Reply,Voke
from flask_script import Manager, Shell
from flask_migrate import Migrate, MigrateCommand

app = create_app()
manager = Manager(app)
migrate = Migrate(app, db)


def make_shell_context():
    return dict(app=app, db=db,Category=Category, 
        BlogType=BlogType,Topic=Topic,User=User,
        Reply=Reply,Voke=Voke)
manager.add_command("shell", Shell(make_context=make_shell_context))
manager.add_command('db', MigrateCommand)


if __name__ == '__main__':
    manager.run()

这样才可以使用db命令进行数据库迁移。

(确保以下操作在虚拟环境状态下运行,如已退出,请回顾前面如何进入虚拟环境)
进入/home/www/myblog_fk(文件名)后执行(确保项目中尚未进行migrate,无migration文件夹):

#数据库初始化
python3 manage.py db init
#数据库迁移
python3 manage.py db migrate

# 进入数据库,删除目标数据库中的alembic_version
drop table alembic_version;

#数据库更新
python3 manage.py db upgrade

执行完命令后,进入mysql中查看数据库具体信息。

2、方法二:

直接导入数据库.(此方法可以导入成功,但本人并没有检测是否能从浏览器端成功访问)

mysql -uroot -p XXXXX(数据库名) < XXXXX.sql(数据库sql文件名)

 

参考网站:https://zhuanlan.zhihu.com/p/47728105

                  https://zhuanlan.zhihu.com/p/46679165

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值