目录
第三部分:数据库配置及迁移
一、安装数据库(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