24,数据库拆分
1,为什么要进行数据库的拆分
在LNMP架构中,动态数据的读取都要通过PHP去调取数据库数据,这样一个过程如果实在访问数量庞大的情况下一台数据库是难以承担的,必然导致内存溢满,读取不过来而导致web宕机,因此一般架构中Nginx和PHP是部署在一起的。数据库作为后端,它的数据处理速度就代表了整个web架构的效率,所以数据库单独部署且不止一台数据库服务器
2,数据库拆分后解决了什么问题
1)提高了数据库处理数据速度
2)缓解Web压力
3)提高用户访问速度
3,数据库拆分后架构变化
4,以第22章LNMP架构为例
1) web:10.0.0.8 Nging+PHP
2) db: 10.0.0.51 mysql
5,拆分
1)安装数据库服务器
yum install mariadb mariadb-server -y
systemctl start mariadb
systemctl enable mariadb
mysqladmin password 'oldboy123'
2)把Web上的数据库数据备份出来
mysqldump -uroot -p'oldboy123' -A --single-transaction > mysql-all.sql(将数据库所有数据备份出来)
3)把数据SCP到新的数据库服务器
scp mysql-all.sql 10.0.1.51:/tmp
4)在新数据库服务器上将数据还原
mysql -uroot -p'oldboy123' < /tmp/mysql-all.sql
mysql -uroot -p'oldboy123' -e "show databases;"
5)创建用户并授权
mysql -uroot -p'oldboy123'
grant all privileges on *.* to 'yangjiwan'@'%' identified by 'oldboy123';(这里创建一个普通用户不用root用户了权限太大,密码是oldboy123,%表示允许所有ip连接也可以指定就Nginx+PHP服务器连接)
flush privileges;
exit
6)修改PHP与数据库的配置文件将指定新的(用户,密码,ip)用来连通新的数据库
vim /code/wordpress/wp-config.php
/** MySQL数据库用户名 */ define('DB_USER', 'yangjiwan'); /** MySQL数据库密码 */ define('DB_PASSWORD', 'oldboy123'); /** MySQL主机 */ define('DB_HOST', '10.0.0.51');
7)测试,将原来PHP与数据库的通讯断开,连接新的数据库
systemctl stop mariadb.service
然后还能访问表示迁移成功!
- 用XMLHTTP对象抓取网页源代码,拆分数据写入数据库
- 也谈数据库拆分database sharding
- MongoDB复制集数据库拆分和版本升级实战
- 有关Mysql分库分表,读写分离数据库水平拆分
- 数据库水平拆分和垂直拆分区别
- 数据库拆分的问题
- Asp.Net 网站优化系列之数据库优化 分字诀 分表(纵向拆分,横向分区)
- 数据库优化 分字诀 分表(纵向拆分,横向分区)
- 一分钟掌握数据库垂直拆分
- 数据库大表的设计(表的拆分)
- 数据库垂直拆分,水平拆分利器,cobar升级版mycat
- 数据库的水平拆分和垂直拆分
- 从分库分表后遗症,总结数据库表拆分策略 - ORACLE
- 数据库---04. 字符串合并与拆分写法小结
- 数据库优化-水平拆分 垂直拆分
- 数据库设计之拆分与数据类型选择
- 数据库优化-水平拆分 垂直拆分
- Day 53 LNMP拆分数据库
- 数据库优化 -- 拆分表
- 谈谈数据库的水平拆分(1)