记误删服务器文件后系统重装

    |     2018年12月6日   |   综合资讯   |     0 条评论   |    745

最近在自己的云服务器上配置分布式服务,不小心误删除了文件,删除文件不要紧,关键是删除的是/usr/local目录,我的数据库、nginx服务、tomcat服务、dubbo, redis,zookeeper全都在上面;这么一来以前部署的应用如极客之家,微营销,忆邮手机官网都挂掉了。

应用程序挂掉不要紧,重要的是数据库没了并且最近一年的数据没有备份;郁闷之极也只能慢慢恢复。 因不擅长运维,恢复的过程也异常的曲折。

删除文件首先想到的当然是恢复误删文件,于是网上找了半天资料,装了各种软件尝试恢复,效果是有,文件恢复了部份,但大都不是我想要的。
事已至此于是决定将整个云系统和软件重装一遍,进入阿里云控制台,重新初始化系统,记得初始化系统时,运行中的服务器一定要先停掉,要不你是找不到系统初始化入口的。

接着首先安装mysql数据库,安装方法有很多,我采用的是二进制文件离线安装,这里将安装方式记录一下:

一、mysql数据库安装

1. 卸载系统自带的MariaDB数据库(centos系统自带与mysql分支兄弟关系,具体baidu)

[root@CentOS ~]# rpm -qa | grep mariadb  
 mariadb-libs-5.5.60-1.el7.x86_64  
[root@CentOS ~]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7.x86_64

2.创建mysql用户组和mysql用户

[root@CentOS local]# useradd mysql 

3.解压安装包,并将解压好的文件夹重命名为mysql

     [root@CentOS my_soft]#tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
     [root@CentOS my_soft]#mv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local/mysql  
    

4.将mysql添加为系统服务


  [root@CentOS local]# cp mysql/support-files/mysql.server /etc/init.d/mysql  
  [root@CentOS local]# chkconfig --add mysql  

  

5.初始化数据库

[root@CentOS mysql]# mkdir data  
[root@CentOSmysql]#./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data  
  
 
如果出现下述错误 :
在安装mysql时遇到以下错误
执行./mysqld --initialize 后
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
原因是没有安装libaio.so.1,安装即可。
Ubuntu下执行:
    apt-get install libaio1 libaio-dev
Redhat/Fedora/CentOS下执行:

    yum install libaio
  

6.启动mysql服务,使用临时密码登录mysql

  [root@CentOS mysql]# systemctl start mysql

   [root@CentOS mysql]# ./bin/mysql -uroot -p  
    Enter password:                     # 这里输入刚获取的临时密码  

  

7.修改登录密码

 mysql> set password = password('你的密码');)
   Query OK, 0 rows affected, 1 warning (0.00 sec)  

8.将mysql服务设置为开机启动

 
   [root@CentOS mysql]# chkconfig mysql on  

9.设置任何远程主机都可以访问数据库

mysql> grant all privileges on *.* to 'live' @'%' identified by '123456';    # 设置任何远程主机都可以访问
mysql> flush privileges;                # 刷新权限

二、安装Nginx服务这里采用的是源码安装

1. gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install gcc-c++

2. PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel

3. zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel

4. OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

5.官网下载
直接下载.tar.gz安装包,地址:https://nginx.org/en/download.html
使用wget命令下载(推荐)。

wget -c https://nginx.org/download/nginx-1.10.1.tar.gz

我下载的是1.10.1版本,这个是目前的稳定版。
6. 解压

tar -zxvf nginx-1.10.1.tar.gzcd nginx-1.10.1

7.配置
其实在 nginx-1.10.1 版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。
1.使用默认配置

./configure

8. 编译安装

make install
查找安装路径:
whereis nginx

9.启动、停止nginx

cd /usr/local/nginx/sbin/
./nginx 
./nginx -s stop
./nginx -s quit
./nginx -s reload
./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
查询nginx进程:
ps aux|grep nginx

10.开机自启动

即在rc.local增加启动代码就可以了。
vi /etc/rc.local
增加一行 /usr/local/nginx/sbin/nginx
设置执行权限:
chmod 755 /etc/rc.local

三、安装php和php-fpm和mysql模块

1.安装php和php-fpm模块

yum install php php-fpm  

2.启动php-fpm

systemctl start php-fpm  

3. 将PHP与mysql模块关联起来:

yum install php-gd php-mysql php-mbstring php-xml php-mcrypt  php-imap php-odbc php-pear php -xmlrpc 

最开始执行上述代码mysql模块没有成功,
又执行如下代码:
yum install mariadh mariadb-server

结果以前装的mysql失效;卸载后mysql恢复正常,mysql模块也OK,卸载方式如下:

[root@node1 ~]# rpm -qa|grep mariadb
mariadb-5.5.56-2.el7.x86_64
mariadb-libs-5.5.56-2.el7.x86_64
mariadb-server-5.5.56-2.el7.x86_64
[root@node1 ~]#
[root@node1 ~]# yum remove mariadb
删除遗留目录
[root@node1 ~]# ls /etc/my.cnf
/etc/my.cnf
[root@node1 ~]# ll /var/lib/mysql/
total 28700
-rw-rw---- 1 mysql mysql    16384 May  5 10:31 aria_log.00000001
-rw-rw---- 1 mysql mysql       52 May  5 10:31 aria_log_control
-rw-rw---- 1 mysql mysql 18874368 May  5 10:31 ibdata1
-rw-rw---- 1 mysql mysql  5242880 May  5 10:31 ib_logfile0
-rw-rw---- 1 mysql mysql  5242880 Oct  6  2017 ib_logfile1
drwx------ 2 mysql mysql     4096 Oct  6  2017 mysql
drwx------ 2 mysql mysql     4096 Oct  6  2017 performance_schema
[root@node1 ~]#

[root@node1 ~]# rm -rf /etc/my.cnf
[root@node1 ~]# rm -rf /var/lib/mysql/

4:配置nginx与php一起工作
打开nginx主配置文件。使用nginx安装目录下conf/nginx.conf配置

vim usr/local/nginx/conf/nginx.conf

在http模块中添加配置:  
       location / {  
           index  index.html index.htm index.php;  
        }  
location ~ \.php$ {  
           root           html;  
           fastcgi_pass   127.0.0.1:9000;  
           fastcgi_index  index.php;  
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  
           include        fastcgi_params;  
       }  

5:测试nginx与php是否正常。

# vi /usr/local/nginx/html/info.php    
文件内容如下:

<?php    
phpinfo();    
?>   
转载请注明来源:记误删服务器文件后系统重装
回复 取消