之所以加了个ubuntu,其实也没什么,就是恢复数据库的时候给幽默了一下,所以特地加上。



写在前面:一直很想好好的学linux命令行、shell编程,幻想自己能够通过学习进而成为命令行高手,游刃于黑白屏幕之前,只可惜几次尝试都觉得举步维艰,无甚收获。漫无目的,从头到尾把语法掌握起来,然后一个命令一个命令去理解记忆,那样不仅枯燥难以坚持,费时费力还特没有成就感。


Linux命令行,shell的理解也跟进一步,对以后的学习也就更有信心了。



回到主题:


死蠢!


改变的原因在于:数据库慢慢变庞大了,依靠phpmyadmin逐渐出现问题:很慢,而且有的时候export竟然会失败,找不到export.php这个页面,这个让我非常纠结,原因是什么我没去细究,但是显然是大一些的数据库(这里的大一些也没多大,几十M而已)就开始出问题了。没办法备份了,自己肯定会心慌了。



备份数据库


这个好说,使用mysqldump轻而易举的事情。

mysqldump -u[account] -p[pass] database_name > database_name.sql

这里只备份了一个数据库,如果要多个,或者全数据库,加参数,或者写shell执行就好了。不多说。


当然,定期备份嘛,crontab ,写在日志里,每天执行一次,只保留最近1周的存档,并且传到另外一个备份服务器,这个是后话,以后我再了。(这些虽然很多人看来简单,但是对于新手,有时候真觉得非常恶心啊)



恢复数据库


新人一枚,网上看到好多方法,不过大多一样。不过搞笑的是,ubuntu12.04(别的版本我不知道)Mysql的数据库文件不是存在 /usr/local/mysql里面的 而是在:/var/lib/mysql 。


这就是我特地加个ubuntu的原因了,就在这上面,我也栽了跟斗,我了个去。



1.移动到mysql数据库文件存放位置

cd /var/lib/mysql 

 

   2.创建数据库 
 
 
 

   mysqladmin -uroot -ppass create database_name

3.导入数据库



mysql -uroot -ppass database_name <  
  database_name.sql
 
 
4.为数据库创建账号与密码
 
 

   mysql -uroot -ppass 
 
 
 

   mysql> grant all privileges on database_name.* to 'user'@'localhost' identified by "pass";





至此,就完成了,如果是导入已经存在数据库,那么备份的sql文件里,就需要加个参数 实现drop table if exist. 至于具体加什么上网搜下mysqldump的参数就好了。





至此,基本的数据库备份与恢复就完成了。勉强能用,凑合记录以免自己忘记。也请高手赐教,通过mysqldump直接备份更大一些的数据库的还会出问题的,到时候还得再进一步研究学习,望高手点拨啊!!!