0537-实战将lnmp服务中的数据库独立分离到服务器

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

前面安装的nginx和php,mysqld的服务要加入开机自启动,加入方法如下:

    vi /etc/rc.local添加如下内容为开机自启动

1
[root@web01 extra] # vi /etc/rc.local

    追加到/etc/rc.local文件最后面

1
2
3
4
####
/application/nginx/sbin/nginx
/application/php/sbin/php-fpm
/etc/init .d /mysqld  start

备份所有库(不需要备份所有库只需要备份wordpress库即可)
[root@web01 ~]# mysqldump -uroot -p123456 -A -B |gzip>bak.sql.gz
-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.
备份wordpress库
[root@web01 ~]# cd /home/oldboy/tools
[root@web01 tools]# mysqldump -uroot -p123456 wordpress -B |gzip>bak.sql.gz
50台规模集群LNMP组件分离
1、LNMP一体机的数据库分离成独立的数据库
  a.创建独立的数据库51
  b.导出lnmp中的wordpress数据库数据
    mysqldump -uroot -p123456 wordpress -B |gzip>bak.sql.gz
  c.导入到51数据库里
    scp bak.sql.gz root@10.0.0.51:/tmp

[root@db01 mysql]# cd /tmp
[root@db01 tmp]# ll
总用量 160
-rw-r--r-- 1 root  root  159841 8月  27 15:40 bak.sql.gz
srwxrwxrwx 1 mysql mysql      0 8月  27 15:30 mysql.sock
[root@db01 tmp]# gzip -d bak.sql.gz 
[root@db01 tmp]# ll
总用量 660
-rw-r--r-- 1 root  root  673182 8月  27 15:40 bak.sql
srwxrwxrwx 1 mysql mysql      0 8月  27 15:30 mysql.sock
给数据库设置密码
[root@db01 tmp]# mysqladmin -uroot password 123456
导入到数据库
[root@db01 tmp]# mysql -uroot -p123456 </tmp/bak.sql
查看数据库
[root@db01 tmp]# mysql -uroot -p123456 -e "show databases like 'wordpress';"
+----------------------+
| Database (wordpress) |
+----------------------+
| wordpress            |
+----------------------+
进入wordpress数据库看是否有表
[root@db01 tmp]# mysql -uroot -p123456 -e "use wordpress;show tables;"
+------------------------+
| Tables_in_wordpress    |
+------------------------+
| old_commentmeta        |
| old_comments           |
| old_links              |
| old_options            |
| old_postmeta           |
| old_posts              |
| old_term_relationships |
| old_term_taxonomy      |
| old_termmeta           |
| old_terms              |
| old_usermeta           |
| old_users              |
+------------------------+
如上操作还不能分离,因为51数据库没有管理员,管理员所在的库在mysql里面,所以要添加一个管理员
创建数据库wordpress管理员账号和密码
mysql> grant all on wordpress.* to wordpress@'172.16.1.%' identified by '123456';
Query OK, 0 rows affected (0.03 sec)
刷新特权
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
查看mysql数据所有的用户
mysql> select user,host from mysql.user;
+-----------+------------+
| user      | host       |
+-----------+------------+
| root      | 127.0.0.1  |
| wordpress | 172.16.1.% |
| root      | ::1        |
|           | db01       |
| root      | db01       |
|           | localhost  |
| root      | localhost  |
+-----------+------------+
7 rows in set (0.00 sec)
51上进行数据库授权,让.8web可以访问

停掉web01里面的数据库
[root@web01 tools]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS! 
开机mysql开机启动也停掉
[root@web01 tools]# chkconfig mysqld off

再次浏览器中刷新http://blog.etiantian.org/会提示建立数据库连接时出错

在web01上面操作
[root@web01 tools]# cd /application/nginx/html/blog/
[root@web01 blog]# vim wp-config.php在32行中localhost修改为172.16.1.51
 31 /** MySQL主机 */
 32 define('DB_HOST', 'localhost');
再次在浏览器中刷新http://blog.etiantian.org/ 网址就可以打开了blog了
新建一篇文章标题为666

在51数据库查询
[root@db01 tmp]# mysql -uroot -p123456
mysql> use wordpress;
mysql> show tables;
如下操作就可以查看666标题的文章
select * from old_posts\G;

如下是666标题的文章

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
*************************** 11. row ***************************
                    ID: 11
           post_author: 1
             post_date: 2017-08-27 16:15:28
         post_date_gmt: 2017-08-27 08:15:28
          post_content: 666
            post_title: 666
          post_excerpt: 
           post_status: inherit
        comment_status: closed
           ping_status: closed
         post_password: 
             post_name: 10-revision-v1
               to_ping: 
                pinged: 
         post_modified: 2017-08-27 16:15:28
     post_modified_gmt: 2017-08-27 08:15:28
post_content_filtered: 
           post_parent: 10
                  guid: http: //blog .etiantian.org/?p=11
            menu_order: 0
             post_type: revision
        post_mime_type: 
         comment_count: 0
11 rows  in  set  (0.00 sec)

本文转自sandshell博客51CTO博客,原文链接http://blog.51cto.com/sandshell/1959725如需转载请自行联系原作者

sandshell
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
JavaScript 关系型数据库 API
Nest.js 实战 (二):如何使用 Prisma 和连接 PostgreSQL 数据库
这篇文章介绍了什么是Prisma以及如何在Node.js和TypeScript后端应用中使用它。Prisma是一个开源的下一代ORM,包含PrismaClient、PrismaMigrate、PrismaStudio等部分。文章详细叙述了安装PrismaCLI和依赖包、初始化Prisma、连接数据库、定义Prisma模型、创建Prisma模块的过程,并对比了Prisma和Sequelize在Nest.js中的使用体验,认为Prisma更加便捷高效,没有繁琐的配置。
Nest.js 实战 (二):如何使用 Prisma 和连接 PostgreSQL 数据库
|
7天前
|
SQL 关系型数据库 MySQL
Windows服务器的最佳数据库是什么?
【7月更文挑战第20天】Windows服务器的最佳数据库是什么?
21 5
|
9天前
|
SQL DataWorks Java
DataWorks操作报错合集之在与某个数据库服务器建立或保持通信连接时遇到报错,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
22天前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
147 1
|
24天前
|
存储 关系型数据库 分布式数据库
PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题
【7月更文挑战第3天】PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题。此架构让存储层专注数据可靠性,计算层专注处理SQL,提升性能并降低运维复杂度。通过RDMA加速通信,多副本确保高可用性。资源可独立扩展,便于成本控制。动态添加计算节点以应对流量高峰,展示了其灵活性。PolarDB的开源促进了数据库技术的持续创新和发展。
239 2
|
20天前
|
SQL 存储 数据库
MSSQL数据库性能调优实战:索引、查询与并发控制的深度剖析
在数据库管理领域,Microsoft SQL Server(MSSQL)的性能调优是保障业务高效运行的核心任务
|
28天前
|
网络协议 安全 分布式数据库
技术分享:分布式数据库DNS服务器的架构思路
技术分享:分布式数据库DNS服务器的架构思路
21 0
|
1月前
|
关系型数据库 MySQL 数据库
MySQL SELECT查询实战:练习题精选,提升你的数据库查询技能
MySQL SELECT查询实战:练习题精选,提升你的数据库查询技能
|
20天前
|
存储 关系型数据库 MySQL
探索MySQL:关系型数据库的基石
MySQL,作为全球最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于各种Web应用、企业级应用和数据仓库中
|
19天前
|
缓存 运维 关系型数据库
数据库容灾 | MySQL MGR与阿里云PolarDB-X Paxos的深度对比
经过深入的技术剖析与性能对比,PolarDB-X DN凭借其自研的X-Paxos协议和一系列优化设计,在性能、正确性、可用性及资源开销等方面展现出对MySQL MGR的多项优势,但MGR在MySQL生态体系内也占据重要地位,但需要考虑备库宕机抖动、跨机房容灾性能波动、稳定性等各种情况,因此如果想用好MGR,必须配备专业的技术和运维团队的支持。 在面对大规模、高并发、高可用性需求时,PolarDB-X存储引擎以其独特的技术优势和优异的性能表现,相比于MGR在开箱即用的场景下,PolarDB-X基于DN的集中式(标准版)在功能和性能都做到了很好的平衡,成为了极具竞争力的数据库解决方案。