广告
返回顶部
首页 > 资讯 > 数据库 >CentOS7部署LNMP+Mongodb环境
  • 518
分享到

CentOS7部署LNMP+Mongodb环境

2024-04-02 19:04:59 518人浏览 八月长安
摘要

上篇详解了Centos安装LNMP+mongoDB生产环境,现在详解它们的部署,多数已经在安装时执行过了,此处主要做解释以及常用维护:====================================

上篇详解了Centos安装LNMP+mongoDB生产环境,现在详解它们的部署,多数已经在安装时执行过了,此处主要做解释以及常用维护:


============================================= Mysql
#用户组
groupadd mysql
#用户
useradd -g mysql mysql -s /bin/false
#MySQL数据库存放目录
/home/mysql/data
#MySQL运行目录
/usr/local/mysql
#配置文件
/etc/my.cnf
#服务脚本
/etc/rc.d/init.d/mysqld
#通信文件
/var/lib/mysql/mysql.sock
#改默认密码sql
alter user 'root'@'localhost' identified by 'sa';
#允许root远程登录,改密码为'sa'的sql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'sa' WITH GRANT OPTioN;
flush privileges;
#禁止root远程登录的sql
delete from mysql.user where host<>'localhost' and user='root';
flush privileges;

#读写账号
#master 写
>mysql grant select,insert,update,delete,create,alter,index on mydb.* to 'WEB'@'%' identified by '123456';
>mysql flush privileges;
#slave 读
>mysql grant select on mydb.* to 'web'@'%' identified by '123456';
>mysql flush privileges;

============================================= Nginx
#用户组
groupadd www
#用户
useradd -g www www -s /bin/false
#运行目录
/usr/local/nginx
#服务脚本
/etc/rc.d/init.d/nginx
#配置文件
/usr/local/nginx/conf/nginx.conf
#网站根目录
/usr/local/nginx/html/

============================================= PHP
#运行目录
/usr/local/php
#ini文件,带软链接
ln -s /usr/local/php/etc/php.ini /etc/php.ini
#配置文件,带软链接
ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf
#服务脚本
/etc/rc.d/init.d/php-fpm
#安装php扩展,比如“xxx”;所有此般编译后的so都应在/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
cd xxx
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
vi /usr/local/php/etc/php.ini   #加入 extension="xxx.so"
#memcache服务运行目录
/usr/local/memcached
#memcache服务脚本
/etc/init.d/memcached

============================================= MonGoDB
#用户组
groupadd mongodb
#用户
useradd -g mongodb mongodb -s /bin/false
#运行目录
/usr/local/mongodb
#数据目录
mkdir -p /home/mongodb/db
#日志目录
mkdir -p /home/mongodb/log
#配置文件
/usr/local/mongodb/mongodb.conf
#pid路径
/usr/local/mongodb/mongo.pid
#服务脚本
/etc/rc.d/init.d/mongod
#【!!坑!!】重启mongodb进程后,必须重启php-fpm、Httpd、java等所有已连接客户端的进程,否则返回“Remote server has closed the connection”
#启动MongoDB
mongo  #进入MongoDB控制台
show dbs #查看默认数据库
use admin  #切换到admin数据库
exit #退出MongoDB控制台
#创建索引
>mongo db.table01.ensureIndex({"myid":1});

============================================== sphinx
#运行目录
/usr/local/sphinx
#配置文件
/usr/local/sphinx/etc/sphinx.conf
#索引文件存放目录
/home/sphinx
#服务脚本
/etc/rc.d/init.d/sphinx
#启动进程
/usr/local/sphinx/bin/searchd  -c /usr/local/sphinx/etc/sphinx.conf
#重建索引
/usr/local/sphinx/bin/indexer  --config /usr/local/sphinx/etc/sphinx.conf --all --rotate
#停止索引和进程
/usr/local/sphinx/bin/searchd  --config /usr/local/sphinx/etc/sphinx.conf --stop
#如果sphinx文件太大,删除对应存放目录文件再重建增量索引文件夹
cd /home/sphinx/
rm * -fr
mkdir indexdelta
# 如果sphinx服务无法启动或者启动有错误,可尝试重命名 mv /usr/local/sphinx/var/data/binlog.meta文件,再重启则ok

============================================== jre
yum install java-1.8.0-openjdk-devel
vi /etc/profile
export JAVA_HOME=/usr/lib/JVM/jdk1.8.0_71  
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH
:wq!
source /etc/profile

============================================== mysql 同步
# 读写账号
master 写
grant select,insert,update,delete,create,alter,index on sQtdb.* to 'web'@'%' identified by '123456';
flush privileges;
slave 读
grant select on sqtdb.* to 'web'@'%' identified by '123456';
flush privileges;


********* master vi /etc/my.cnf
[mysqld]
server-id=100
binlog-fORMat=mixed
log-bin=mysql-bin
max_binlog_size=1000M
binlog-do-db=mydb
#binlog-ignore-db=mysql
#binlog-ignore-db=information_schema
#binlog-ignore-db=performance_schema
#binlog-ignore-db=sys

#root登录master建立同步账号
>mysql grant replication slave on *.* to 'replc'@'%' identified by '123456';

********* slave vi /etc/my.cnf
[mysqld]
server-id=200
binlog-format=mixed
log-bin=mysql-bin
max_binlog_size=1000M
binlog-do-db=mydb
#binlog-ignore-db=mysql
#binlog-ignore-db=information_schema
#binlog-ignore-db=performance_schema
#binlog-ignore-db=sys

#root 登录slave
>mysql change master to master_host='192.168.1.100',master_user='replc',master_passWord='123456',master_connect_retry=100;
>mysql show slave status\G;  #查看同步是否主要是查看Slave_IO_Running与Slave_SQL_Running选项。如果正常同步,这两选必须同时为“YES”。

#如果启动slave时报错 ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
>mysql reset slave; # 先reset(慎用!先记下slave当前日志文件名和位置,如果reset后日志名和位置不对,则直接用stop再change master)
>mysql start slave; # 之后可以使用start 启动了
#如果要重新同步,先在master上执行>mysql flush logs; 然后 >mysql show master status; 得到File、Position,再到slave执行以下语句:
>mysql stop slave;
>mysql change master to master_host='192.168.1.100',master_user='replc',master_password='123456',master_log_file="localhost-bin.000004",master_log_pos=659,master_connect_retry=100;
>mysql start slave;

# 完全重新同步办法
----slave
>mysql stop slave;
----master
>mysql flush tables with read lock;   #先表 !!!
>mysql show master status\G;
mysql-bin.000021 | 47529419
# 使用大批量的导出方式,导入也随之加速,如果数据大就带参数gzip
/usr/local/mysql/bin/mysqldump -uroot -p --default-character-set=utf8 -e --max_allowed_packet=41943040 --net_buffer_length=41043040 mydb|gzip > /home/mysql/mydb20160606.sql.gz
----slave
scp root@192.168.1.100:/home/mysql/mydb20160606.sql.gz /home/mysql/mydb20160606.sql.gz
gzip -d -c /home/mysql/mydb20160606.sql.gz > /home/mysql/mydb20160606.sql
>mysql drop database mydb;
>mysql create database `mydb` character set utf8 collate utf8_general_ci;
mysql  -uroot -p mydb</home/mysql/mydb20160606.sql
----master
>mysql unlock tables;   #slave导入完成再unlock !!!
----slave
>mysql change master to master_host='192.168.1.100',master_user='replc',master_password='123456',master_log_file="mysql-bin.000021",master_log_pos=47529419,master_connect_retry=100;
>mysql start slave;  #如果有“Slave failed to initialize relay log info structure from the repository”错误先 reset slave再 change master ……
>mysql show slave status\G;

============================================== mongodb 主从同步(推荐转用副本集模式)
# master 修改启动脚本
vi /etc/init.d/mongod
/usr/local/mongodb/bin/mongod  --maxConns 20000  --config /usr/local/mongodb/mongodb.conf --master
# slave 修改启动脚本
vi /etc/init.d/mongod
/usr/local/mongodb/bin/mongod  --maxConns 20000  --config /usr/local/mongodb/mongodb.conf --slave --source 192.168.1.100:27017
# 【注意】从节点slave是只读,不能提供写操作的;如果写操作要切换到slave,slave必须先停止mongo进程,再修改mongo启动脚本为master模式,最后重新启动mongo进程;
# 增加slave只可在业务影响小的时候操作,否则slave首次同步时的锁表会影响master的读取;
# 【切记】重启mongodb进程后,必须重启php-fpm、httpd、java等所有已连接客户端的进程,否则返回“Remote server has closed the connection”

============================================= apache2+ftp server(选装)
#用户和组
User apache
Group apache
#运行
/usr/sbin/httpd
#配置
/etc/httpd/conf/httpd.conf
#网站根
/var/www/html
#systemctl服务
/usr/lib/systemd/system/httpd.service
systemctl enable httpd.service

#安装vsftpd
yum -y install vsftpd
vi /etc/vsftpd/vsftpd.conf
local_root = /var/www/html

useradd myftp -s /sbin/nologin -d /var/www/html -g ftp
passwd myftp    #设ftp密码

chown -R myftp /var/www/html
chmod -R 777 /var/www/html
systemctl enable vsftpd.service
vi /etc/sysconfig/iptables   # 80端口看实际情况设置
-A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
vi /etc/sysconfig/iptables-config   # 增加2项
IPTABLES_MODULES="ip_conntrack_ftp"
IPTABLES_MODULES="ip_nat_ftp"

systemctl restart iptables.service


============================================= 修改服务器ip、mysql账户,则修改对应文件和sql
#如果mongodb绑定了ip,则更改
vi /usr/local/mongodb/mongodb.conf
#如果master的同步账号也更换了,也要随之更改以下sql语句中的同步账号:
先在master上执行>mysql flush logs; 然后 >mysql show master status; 得到File、Position,再到slave上执行以下语句:
>mysql stop slave;
>mysql change master to master_host='新的ip',master_user='replc',master_password='123456',master_log_file="localhost-bin.000004",master_log_pos=659,master_connect_retry=100;
>mysql start slave;
>mysql show slave status\G;   #等待1分钟左右再执行此句

============================================= mysql binglog export
mysqlbinlog -u root -p --start-datetime='2016-10-27 10:00:14' --stop-datetime='2016-10-27 13:02:14' /home/mysql/data/mysql-bin.000001 > /home/mysql/20161027-1.binlog

============================================= 单独恢复mysql某表
1.解压备份文件,得到完整备份文件sql
2.shell执行得到该表数据并保存到某个sql文件
grep 'INSERT INTO `tbl_001` VALUES' mydb20160606.sql > /home/mysql/dbbak/ex001.sql
3.mysql中清除数据
>mysql truncate table tbl_001;
# 如果遇到外键约束禁止truncate,当前会话中执行 set foreign_key_checks=0;  数据恢复完毕后记得当前会话恢复约束 set foreign_key_checks=1;
4.mysql中导入数据,完成数据恢复
>mysql source /home/mysql/dbbak/ex001.sql;

您可能感兴趣的文档:

--结束END--

本文标题: CentOS7部署LNMP+Mongodb环境

本文链接: https://www.lsjlt.com/news/36855.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CentOS7部署LNMP+Mongodb环境
    上篇详解了CentOS安装LNMP+Mongodb生产环境,现在详解它们的部署,多数已经在安装时执行过了,此处主要做解释以及常用维护:====================================...
    99+
    2022-10-18
  • CentOS7安装LNMP+Mongodb环境
    CentOS 7   MySQL 5.7.10   Mongo 3.2.1   Nginx 1.8.0   PHP 5.5.3...
    99+
    2022-10-18
  • 手动部署LNMP环境(Ubuntu 20)
    手动部署LNMP环境(Ubuntu 20) 使用的软件及软件版本信息如下: Nginx:1.18.0 MySQL:8.0.27 PHP:7.4.3 安装Nginx 运行以下命令,更新Ubuntu系统内...
    99+
    2023-09-18
    ubuntu php mysql
  • LNMP(nginx php-fpm mysql) 环境部署——mysql
    前言:上一篇已经说过部署的初衷,如有不清楚的,可以看下上篇的前言或在评论区留言给我。此篇主要介绍安装mysql的方法,php会要用到mysql连接数据库准备:mysql官网:mysql.com源码目录:/u...
    99+
    2022-10-18
  • LNMP环境下zabbix6.0部署(超详细)
    zabbix6.0-nginx代理 1、MySQL安装 1.1 详见MySQL安装 1.2 创建zabbix初始数据库 2、nginx安装 2.1 下载nginx安装包 2.2 安装相关依赖 2.3 nginx包解压并进入解压目录 2.4 ...
    99+
    2023-09-04
    nginx 服务器 mysql php
  • centos7部署python3虚拟环境
    一、CentOS 上部署Python31、安装依赖包 2、官网下载python原码包 3、解压安装 4、修改配置文件 首先进入上一步解压的目录 5、开始编译安装 6、配置共享库文文件 1)为所有用用户设置共享库目...
    99+
    2023-01-31
    环境
  • linux怎么安装及部署lnmp环境
    要安装和部署LNMP环境(Linux + Nginx + MySQL + PHP),可以按照以下步骤进行操作: 安装Linux操...
    99+
    2023-10-27
    linux lnmp
  • CentOS7下安装部署LAMP环境
    (1)配置概要:  1、 172.16.100.31主机运行httpd+php服务(php为模块工作模式)  配置两台虚拟主机:wordpress个人博客系统、PHPmyadmin远程控...
    99+
    2022-10-18
  • Python实现一键安装部署LNMP环境
      最近一直在学Python,东西比较多,时间持续的也比较长,为了能够学以致用,想到了原来写过的shell一键安装部署LNMP脚本,既然shell能写,Python也一定能写,就用学到的知识写了下面这个版本,这可能并不是最优版本,等学到更多...
    99+
    2023-01-31
    一键 环境 Python
  • Docker中怎么部署LNMP服务器环境
    今天小编给大家分享一下Docker中怎么部署LNMP服务器环境的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。镜像下载[roo...
    99+
    2023-06-28
  • Zabbix 6.0 图文安装部署讲解---LNMP环境
    Zabbix 6.0 图文安装部署讲解---LNMP环境 简介环境需求部署环境关闭系统防火墙一、Mysql8.0.30 部署 二、nginx 部署三、PHP 部署四、zabbix-serv...
    99+
    2023-08-31
    zabbix 数据库 php nginx centos
  • CentOS7---部署LNMP数据存储到redis
    一、部署LNMP及redis 1、部署LNMP,需要将 tengine-2.2.0.tar.gz 拷贝到虚拟机的 /root 目录下 步骤一:安装nginx 源码安装相关软件包 # pcre-devel做正则匹配,zlib-devel...
    99+
    2023-09-06
    redis php nginx 数据库 缓存
  • Python环境部署
    安装python2.7,安装在默认位置;配置python的Path环境变量C:\Python27;在cmd中输入python可以看到python安装成功,可以直接在cmd中运行python代码;用命令行写代码时无法保存代码,我们需要保存代码...
    99+
    2023-01-31
    环境 Python
  • Docker安装LNMP环境的详细过程(可部署TP项目)
    目录Docker安装LNMP环境1、安装Docker2、 安装nginx3、 安装PHP4、 查看nginx运行路径5、 创建并运行php容器6、 进入php容器,创建index2....
    99+
    2022-11-13
  • 在CentOS7上部署MongoDB分片群集
    概述 MongoDB分片是使用多个服务器存储数据的方法,以支持巨大的数据存储和对数据进行操作。分片技术可以满足MongoDB数据量大量增长的需求,当一台MongoDB服务器不足以存储海量数据或不足以提供可接...
    99+
    2022-10-18
  • mac 部署python环境
    Python中最连接Mysql常用的驱动是mysql-python :mysql的C语言的驱动 mysql-connector:msql官方的驱动 pymysql:python语言的驱动我这里安装的是 mysql-python终端中执行pi...
    99+
    2023-01-31
    环境 mac python
  • vps部署golang环境
    随着互联网的快速发展,越来越多的人开始关注Linux系统下的服务器应用开发,而Golang作为一种高性能的编程语言,受到了越来越多的关注。那么,如何在VPS上部署Golang环境呢?本文将对这个问题进行详细介绍。一、安装Golang在VPS...
    99+
    2023-05-14
  • python 虚环境部署
    #!/bin/bashyum install -y python-virtualenv.noarchyum install -y git.x86_6mkdir -p /home/himalayas/virtualenv/python2.6-...
    99+
    2023-01-31
    环境 python
  • linux环境部署redis
    Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。解压缩,进入redis目录 make && make install ...
    99+
    2023-06-05
  • MongoDB数据库部署环境准备及使用介绍
    目录一、MongoDB 简介1.MongoDB 特点2.MongoDB 适用场景3.MongoDB 存储结构4.MongoDB 数据类型二、部署 MongoDB 数据库应用1.准备系...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作