Django网站数据库之读写分离上

1、Linux下mysql安装
2台Centos7虚拟机
Server 主IP 10.10.16.229
Client 从IP 10.10.16.141
首先关闭两台服务器的防火墙
Django网站数据库之读写分离上
测试ping
Django网站数据库之读写分离上
2、基于mysql的Django读写分离
在Linux安装mariadb数据库
用centos7系统,使用mariadb。因为他是免费的。
Centos7 官方yum源包含mariadb的完整安装。
命令:yum -y install mariadb mariadb-server 安装mariadb
Django网站数据库之读写分离上
Django网站数据库之读写分离上
这里就安装完成了
然后启动mariadb
命令:systemctl start mariadb
Django网站数据库之读写分离上
接着给root添加密码
命令:mysqladmin -u root -p password 123
安装telnet,这个工具在mysql主从备份会用到
命令:yum install telnet.x86_64 telnet-server.x86_64
Django网站数据库之读写分离上
Django网站数据库之读写分离上
以上步骤主从服务器都需要做
现在在主mysql创建一个小小的数据库
进入数据库:命令pymysql -uroot -p
Django网站数据库之读写分离上
Django网站数据库之读写分离上
主从配置
查看主数据库
Django网站数据库之读写分离上
修改数据库配置
/etc/my.cnf
首先备份配置文件
Django网站数据库之读写分离上
访问配置文件
Django网站数据库之读写分离上
配置主服务器的配置文件
/etc/my.cnf
Django网站数据库之读写分离上
重启mariadb
systemctl restart mariadb
Django网站数据库之读写分离上
进入数据库进行授权
pymysql -u root -p
GRANT REPLICATION SLAVE ON . TO “root”@“10.10.16.%” IDENTIFIED BY’admin’
GRANT 授权
REPLICATION 权限
SLAVE 备份
ON 在。。之上
. 所有权限
TO 给,去
“root” 用户
“10.10.16.%”16网段所有ip
IDENTIFIED BY 确认密码
Admin 备份的密码
在工作当中,我们备份的时候,可以允许读操作,不允许写操作,我们需要在备份的时候对数据库进行加锁。
加锁
FLUSH TABLES WITH READ LOCK;
然后备份数据库
导入和导出都是基于数据库外的,操作之前请退出数据库
Django网站数据库之读写分离上
数据库数据导出
命令:mysqldump -uroot -p123 --all-databases > /root/db.sql
Django网站数据库之读写分离上
解锁
Django网站数据库之读写分离上
数据库数据导入
Django网站数据库之读写分离上
Django网站数据库之读写分离上
Django网站数据库之读写分离上
Django网站数据库之读写分离上
这里简单的数据库数据导入导出已经实现,静等下回操作
以上用到的基本命令有:
systemctl stop firewalld 关闭防火墙
yum -y install mariadb mariadb-server 安装mariadb和mariadb服务端
systemctl start mariadb 启动mariadb
mysqladmin -u root -p password 123 修改密码
yum install telnet.x86_64 telnet-server.x86_64 安装Telnet
主的/etc/my.cnf
innodb_file_per_table=No
log-bin=/var/lib/mysql/master-bin
binlog_format=mixed
server-id=200
systemctl restart mariadb 重启mariadb
授权
GRANT REPLICATION SLAVE ON . TO “root”@“10.10.16.%” IDENTIFIED BY’admin’
加锁
FLUSH TABLES WITH READ LOCK;
数据库导出 主
mysqldump -uroot -p123 --all-databases > /root/db.sql
解锁
UNLOCK TABLES;
数据库导入 从
mysql -u root -p123 < db.sql