在django中使用mysql作为数据库backend(Ubuntu系统)
关于mysql
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
另外,博主后续也会继续学习MySQL的知识,所以现在就先以MySQL为数据库来使用吧!
1. 安装MySQL(基于Ubuntu)
sudo apt-get install mysql-server mysql-client
试运行MySQL:
#这之后要输入在安装时设置的密码
mysql -u root -p
2. 创建一个新数据库及新用户
数据库名为database_name
,用户名为user_name
,密码为user_password
。
CREATE DATABASE database_name CHARACTER SET utf8;
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'user_password';
GRANT ALL ON database_name.* TO 'user_name'@'localhost';
#查看所有用户
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
#查看所有库
SHOW DATABASES;
当然你也可以如下删库、删户,然后跑路 。
DROP USER 'user_name'@'localhost';
DROP DATABASE IF EXISTS database_name;
3. 安装MySQL-python
MySQL-python是python中一个用来链接和管理mysql
数据库的软件包,它为数据库应用编程提供了好用的接口。django依赖它来操作mysql数据库。
sudo apt-get install python3-dev
pip install mysqlclient
验证是否安装成功,在python
中:
>>> import MySQLdb
>>> db = MySQLdb.connect("localhost", "user_name", "user_password", "database_name")
>>> cursor = db.cursor()
>>> cursor.execute("SELECT VERSION()")
1
>>> print(data)
('5.7.23-0ubuntu0.16.04.1',)
>>> db.close()
如果有出现类似上述相应,则说明安装成功 ,接下来便来到最后一步。
4. 配置django的settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'database_name', # 数据库名
'USER': 'user_name', # 数据库账户名
'PASSWORD': os.environ['MY_DB_PASS'], # 即user_password,数据库密码。
# 为安全起见,应从系统环境变量中获取。os.environ['MY_DB_PASS']
'HOST': '127.0.0.1', # 数据库服务器IP
'PORT': '3306', # 端口
}
}
接下来运行
python manage.py makemigrations # 生成迁移文件,有点prompt的感觉,可以在最终操作前check一下
python manage.py migrate #执行迁移
至此,mysql
数据库的配置就完成啦。
你可以再次查看数据库,此时数据库不为空,因为django
已经生成了一些tables
在里边了。