无论在什么情况下,一个在优秀的网络运维者都无法避免服务器出现故障,也可能是软件故障,也可能是硬件估计,也可能是一些不友好的***,比如最流行的DDOS。那么当这些问题来袭之后我们应该如何解决呢?那么我认为答案只有一个:在做好前期工作的情况下后期做好数据备案,这也是一个运维者最基本的工作方法,也是最优秀的工作方法!下面我们来看一个实际的例子———利用备份数据,恢复一个网站。
              其实在这篇文章中我们主要讲到的是MySQL数据库的一些常规操作,相信这篇文章能给鸟兄鸟弟们带来收获
 
 
一、备份网站和数据库
       在恢复一个网站前,我们首先要拿到网站的跟目录,也就是网站程序和数据库备份。我们此次用于灾备的网站是基于PHP语言的,数据库是MySQL。备份网站根目录就不用多说了,找到路径复制出来即可。
数据库名 wordpress
下面我们来备份数据库
#mysqldump –u root –p wordpress > wordpress.sql
然后输入完MySQL的root密码就完成备份了。接下来我们把数据库和网站程序copy出来,然后拿到一个新服务器上进行重建
 
 
二、进行wordpress重建
      现在我们是在一个新服务器上,这个服务器已经搭建好了LAMP环境,所以我们只需要为wordpress建好数据库,然后把网站程序和数据库导入即可
1、首先我们来为wordpress建立一个空的数据库,建这个数据库的目的是为了导入我们备份的数据。建立名为wordpress的数据库
mysql>create database wordpress;
建立完之后我们可以使用以下命令查询以下当前有几个数据库,我们可以看到,有我们刚才新建的wordpress数据库
mysql>show databases;
clip_p_w_picpath002
 
2、建立用户
建立用户的目的是为了以这个用户来对wordpress数据库进行一些操作,这个用户名和密码在网站中config配置文件中都有定义,我们恢复的这个网站中定义的数据库是wordpress 用户名是wordpress 密码是luwenju0518 所以我们上面建立了一个名字为wordpress的数据库,接下来我们要建立用户。建立用户(用户名为wordpress,密码设置为luwenju0518,并允许该用户本地连接数据库服务器)命令如下
mysql> insert into mysql.user (host,user,password) values ('localhost','wordpress',password('luwenju0518'));
mysql> flush privileges; //重载MySQL授权表
 
3、MySQL授权
       授权是因为我们在刚才建立的用户,对MySQL中的数据库没有任何权限,所以我们要给这个用户一个数据库,以便访问。授权用户wordpress能从本地进行连接数据库服务器,并有完全访问wordpress数据库的权限。授权时需要MySQL的root权限,所以要以root登录。授权的数据库是wordpress,用户是wordpress 密码为luwenju0518
mysql> grant all on wordpress.* to wordpress@'localhost' identified by 'luwenju0518';
mysql> flush privileges;    //重载MySQL授权
mysql>quit     //退出
# mysql -u wordpress -p  //登录验证
然后使用show databases; 命令进行查询wordpress用户拥有的数据库,如下图,wordpress用户拥有了访问2个数据库的权限,一个是系统测试的test,一个是自己的wordpress
clip_p_w_picpath004
注:
①使用grant授权时,如果指定的用户名不存在,那么授权时MySQL就会自动创建这个用户
②grant all表示授予全部权限,wordpress.*也就是代表所授权的数据库
③ wordpress.* 语法是“数据库名称.表名称”,我们授予用户wordpress在wordpress这个数据库和其中所有表的权限,所以使用通配符*表示
④wordpress@'localhost' 语法是 用户名@域名或IP,如果允许用户wordpress在任何机器上都能够登录数据库服务器,可将此处的localhost改为*
⑤identified by 'luwenju0518'; 是用户wordpress进行登录数据库所使用的密码,倘若此处设置的密码和我们建立用户时所设置的密码不一样,那么MySQL数据库将以此处设定的为
 
4、导入数据库和网站程序
        网站程序我们只需要把copy到网站根目录就可以,下面我们看一下如何将备份的数据导入MySQL中。
       首先将我们备份的wordpress.sql文件拷贝到一个临时目录中,然后再在这个临时目录下运行如下命令,命令执行后会要求输入MySQL中root的密码
#mysql -u root -p wordpress < wordpress.sql
#mysql –u wordpress –p     //以wordpress登录数据库
mysql>use wordpress    //进入wordpress数据库
mysql>show tables;    //查询数据库中有哪些表,下图是执行完showtables;后的结果,我们看到wordpress数据库中已经存有数据了,证明导入成功
clip_p_w_picpath005
 
 
三、验证
下面我们就可以在浏览器中输入网站地址就可以访问了,结果显示如下图
clip_p_w_picpath007
我们可以看到页面上日期为2009-11-04 这个日期是我做备份的日期,现在的日期是2009-12-17.