flask连接MySQL数据库(MySQL安装)

技术 · 2020-06-20 · 368 人浏览

flask连接MySQL数据库

安装数据库

  • 安装MySQL
sudo apt-get install mysql-server libmysqld-dev python-mysqldb
  • 配置MySQL可以远程连接
sudo nano /etc/mysql/mysql.conf.d/mysql.cnf

# 找到并注释掉下面的内容
bind-address = 127.0.0.1
  • 修改root密码
sudo mysqladmin -u root -p password 

# 填写密码
Enter password: 我安装的这个版本安装时没有设置root密码的提示,这个随便输 
New password: 填你的密码 
Confirm new password:
  • 开启root远程登录权限
sudo mysql #超级用户进入mysql 

# 切换到数据库MySQL
use mysql;

# 给root授予在任意主机(%)访问任意数据库的所有权限
grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;

# 退出数据库
exit

# 重启数据库
sudo service mysql restart

flask连接

安装flask_sqlalchemy

sudo pip3 install flask_sqlalchemy

安装 Flask-MySQLdb

sudo pip3 install Flask-MySQLdb

编写代码

from flask_sqlalchemy import SQLAlchemy
import os
from flask import Flask

app = Flask(__name__)
# 需要使用Flask-MySQLdb

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://用户名:密码@IP/数据库'
# 格式 mysql://名称:密码@IP/数据库
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# 关闭对模型修改的监控
db = SQLAlchemy(app)


# 在扩展类实例化前加载配置


class user(db.Model):  # 表明将为user
    id = db.Column(db.Integer, primary_key=True)  # 主键
    name = db.Column(db.String(20))


db.drop_all()  # 删除所有表
db.create_all()  # 创建所有表

如果出现OSError: [Errno 98] Address already in use被占用

杀死进程

查看进程

netstat -tunlp

找到python3的进程

杀死

kill -9 1378
python MySQL flask
Theme Jasmine by Kent Liao