MySQL之父Widenius在mysql被oracle收购后,另开分支,这个分支叫做MariaDB。MariaDB名称来自MichaelWidenius的女儿Maria的名字。MariaDB跟MySQL基本兼容,mysql被收购后redhat系统将yum自带安装的开源mysql更改为mariadb。
mariadb的官方下载地址https://downloads.mariadb.org/ ,这里选择MariaDB 10.4.11 Stable版本(stable表示稳定版本)。 64位操作系统安装包选择mariadb-10.5.0-winx64.msi,如果是32为操作系统请选择mariadb-10.5.0-win32.msi安装包。
安装过程需要配置的地方如下图,其配置默认即可,安装完成后默认已经启动(在cmd中执行,mariadb启动命令net start mariadb,关闭命令net stop mariadb):
配置mysql命令path环境变量,这样在cmd中执行mysql -uroot -p 不会找不到命令。 配置方法,我的电脑--右键属性--高级系统设置--环境变量--path--新建:如下图所示
在cmd中为django工程myblog创建数据库、数据库用户和密码,并授权,如下图所示:
mysql -uroot -p
create database myblog DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
grant all on myblog.* to 'myblog'@'%' identified by 'mypassword';
exit
windows配置django项目的settings.py文件使用mariadb数据库:
DATABASES = {
'default': {
#'ENGINE': 'django.db.backends.sqlite3',
#'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myblog',
'USER': 'myblog',
'PASSWORD':'mypassword',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
安装底层依赖三方库(python用来连接mysql数据库的包),启动django项目:
C:\Users\Administrator> pip install mysqlclient
C:\Users\Administrator> cd Desktop/myblog
C:\Users\Administrator\Desktop\myblog> python manage.py runserver 0.0.0.0:80
在浏览器中访问http://127.0.0.1/ 可以看到django的欢迎页面,至此windows的django安装完成。 后续文档操作过程都在linux下操作,windows操作在cmd中执行命令基本相同。 可以尝试在虚拟机中运行centos7.7,安装后将目录通过samba共享给宿主机windows系统,然后通过windows开发工具pycharm,或者sublime3等开发工具进行快速开发。
centos7.7系统安装mariadb,yum源使用的阿里云的源,yum源配置可以查看上一篇文章。
以下过程包含mariadb数据库的 - 安装 - 初始化(创建root密码,删除匿名用户、是否禁止root用户远程登录、删除test库、刷新数据库权限) - 为django的myblog项目创建数据库myblog,创建数据库用户myblog并授权。
[root@work1 myblog]# yum -y install mariadb-server
[root@work1 myblog]# systemctl start mariadb.service
[root@work1 myblog]# systemctl enable mariadb.service
#初始化
[root@work1 myblog]# mysql_secure_installation
...省略部分输出...
Enter current password for root (enter for none): <--直接回车
...省略部分输出...
Set root password? [Y/n] Y
New password: <--输入密码
Re-enter new password: <--输入密码
...省略部分输出...
Remove anonymous users? [Y/n] Y
...省略部分输出...
Disallow root login remotely? [Y/n] n
...省略部分输出...
Remove test database and access to it? [Y/n] Y
...省略部分输出...
Reload privilege tables now? [Y/n] Y
Thanks for using MariaDB!
#创建数据库并授权mysql -uroot -p 的密码为上面设置的密码
[root@localhost ~]# mysql -uroot -p
MariaDB [(none)]> create database myblog DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB [(none)]> grant all on myblog.* to 'myblog'@'%' identified by 'mypassword';
MariaDB [(none)]> exit
#创建myblog数据库,创建用户myblog,密码mypassword,并授权(生产环境授权,谨慎使用grant all,可以部分授权 )
配置django使用mysql数据库
[root@work1 myblog]# pwd
/root/myblog
[root@work1 myblog]# ll
total 4
-rwxr-xr-x 1 root root 626 Jan 8 09:21 manage.py
drwxr-xr-x 3 root root 108 Jan 8 11:54 myblog
#修改settings.py文件的DATABASES配置和ALLOWED_HOSTS配置如下:
[root@work1 myblog]# vim myblog/settings.py
ALLOWED_HOSTS = ['*']
DATABASES = {
'default': {
#'ENGINE': 'django.db.backends.sqlite3',
#'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myblog',
'USER': 'myblog',
'PASSWORD':'mypassword',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
#依赖包安装
[root@work1 myblog]# yum -y install python3-devel mariadb-devel
#python3安装mysql三方库
[root@work1 myblog]# pip3 install mysqlclient
#运行django,runserver表示启动服务器,0.0.0.0:80表示监听在当前机器所有IP地址的80端口
[root@work1 myblog]# python3 manage.py runserver 0.0.0.0:80
访问django默认页面(如果是本机可以用127.0.0.1访问)
至此django配置mysql数据库完成