• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

【Linux运维架构】第十二篇 LNMP企业架构之数据库拆分

Linux架构 lixian 4年前 (2020-02-28) 613次浏览 0个评论 扫描二维码
文章目录[隐藏]

为什么要拆分数据库?

由于单台服务器运行`LNMP`架构会导致网站访问缓慢,当内存被占满时,很容易导致系统出现`oom`,从而kill掉MySQL数据库,所以要将web和数据库进行独立部署。(一般数据占用服务器内存70%-80%)
【Linux运维架构】第十二篇 LNMP企业架构之数据库拆分

拆分数据库解决什么问题?

1、缓解web网站的压力
2、增强数据库读写性能
3、提高用户访问的速度

数据库拆分实例

主机 搭建服务 外网地址 内网地址
web01 nginx+php 10.0.0.7 172.16.1.7
Bb01 mariadb 10.0.0.51 172.16.1.51

部署数据库

安装数据库

[root@db01 ~]# yum install -y mariadb-server

启动并开机自启

[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

设置密码

[root@db01 ~]# mysqladmin -uroot password '123456'
[root@web01 ~]# mysql -uroot -p123456 -h172.16.1.51
ERROR 1130 (HY000): Host '172.16.1.7' is not allowed to connect to this MariaDB server

连接数据库并授权

[root@db01 ~]# mysql -uroot -p123456
MariaDB [(none)]> grant all on *.* to root@'172.16.1.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

从旧数据库导出数据库文件

[root@web01 ~]# mysqldump -uroot -p123456 -B wordpress > /tmp/wordpress.sql

#注意:
1.-u指定数据库,-p数据库密码,-B指定数据库文件
2.导出的文件名字与数据库名无关
3.导出的文件后缀无所谓
4.最好用sql为后缀(不要问我为什么)

导入数据库文件

第一种方法:
先在web01把数据库传到db01上,然后再导入数据库中。

[root@web01 ~]# scp /tmp/wordpress.sql 172.16.1.51:/tmp/
[root@db01 ~]# mysql -uroot -p123456 < /tmp/wordpress.sql

第二种方法:
在数据库终端里面把shell终端的数据库文件导入进来。

MariaDB [wordpress]> source /tmp/wordpress.sql;

第三种方法:
在web01直接把数据库文件导入数据库中。

[root@web01 tmp]# mysql -uroot -p123456 -h172.16.1.51 < /tmp/wordpress.sql

项目中指定数据库要指定db01的数据库

[root@web01 ~]# vim /code/wordpress/wp-config.php
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');

/** MySQL数据库用户名 */
define('DB_USER', 'root');

/** MySQL数据库密码 */
define('DB_PASSWORD', '123456');

/** MySQL主机 */
define('DB_HOST', '172.16.1.51');

本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:【Linux运维架构】第十二篇 LNMP企业架构之数据库拆分
喜欢 (1)

您必须 登录 才能发表评论!