LNMP数据库拆分——缓解web网站的压力、增强数据库读写性能、提高用户访问速度

一、为什么要进行数据库的拆分?
由于单台服务器运行LNMP架构会导致网站访问缓慢,当内存被占满时,很容易导致系统出现oom从而kill掉MySQL数据库,所以要将web和数据库进行独立部署。
二、数据的状态
1.静态数据 做缓存处理(CDN)
固定不变:一旦生成,内容不会随时间或操作改变(除非人为修改)
2.动态数据 不能做缓存(部分)
实时变化:内容会随时间、用户交互或系统状态不断更新。
三、数据库拆分
【位置:10.0.0.8服务器,主机名为mariadb】
1.创建新服务器,部署并启动数据库
[root@mariadb ~]# yum -y install mariadb-server #在新服务器上安装数据库
[root@mariadb ~]# systemctl start mariadb #启动数据库
[root@mariadb ~]# systemctl enable mariadb #加入开机自启
2.导出LNMP中数据库的内容,并拷贝到新服务器上
[root@LNMP ~]# mysqldump -uroot -pwq123456.com -A > all.sql #将数据库中所有内容定向输出到all.sql中
[root@LNMP ~]# scp all.sql 10.0.0.8:~ #拷贝到10.0.0.8的家目录中
3.将拷贝的文件导入数据库,并重启
[root@mariadb ~]# mysql -uroot < all.sql #定向输入到数据库中
[root@mariadb ~]# systemctl restart mariadb #重启数据库
4.在新服务器上允许远程连接的用户、网段
[root@mariadb ~]# mysql -uroot -pwq123456.com -e "grant all on *.* to wq@'%' identified by 'wq123456.com';" #授权远程登录,并指定单个用户从指定网段登录
[root@mariadb ~]# mysql -uroot -pwq123456.com -e "flush privileges;" #刷新权限
5.停止旧的数据库并修改服务的数据库指向
[root@LNMP ~]# systemctl stop mariadb #停止数据库
[root@LNMP ~]# systemctl disabled mariadb #关闭开机自启
[root@LNMP wordpress]# vim /code/wordpress/wp-config.php

点击查看代码
···
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );    #数据库名字

/** Database username */
define( 'DB_USER', 'wq' );   #配置数据库时指定用户登录

/** Database password */
define( 'DB_PASSWORD', 'wq123456.com' );    #数据库密码

/** Database hostname */
define( 'DB_HOST', '10.0.0.8' );      #内网ip访问
···

解读命令:mysql -uroot -pwq123456.com -e "grant all on *.* to wq@'%' identified by 'wq123456.com';"
需要创建远程连接的普通用户(数据库不允许root管理员用户远程连接)
授权所有权限 grant all
授权所有库所有表 .
将授权赋予给哪个用户,这个用户只能通过哪个网段过来(%所有) 'all'@'%'
授权该用户登录的密码 identified by

注:
1.先导入数据,后配置,否则会被覆盖

posted on 2025-12-09 19:16    阅读(1)  评论(0)    收藏  举报