为了提高Linux系统中MySQL数据库管理系统的安全性和稳定性,我们就需要对mysql进行备份的工作。做好备份的工作能使我们在遇到数据库问题时能够及时从备份数据中恢复数据库,从而避免造成更大的损失。那么如何在Linux中进行mysql的备份和恢复的操作呢?为此在本文中编程学习网笔者就为大家详细介绍具体的方法和步骤,让大家对此有一个比较清晰的了解。
①用命令实现备份
定期做好数据库备份不仅是一个习惯的问题,而且是每一个从事数据库维护程序员的必要掌握技巧。要知道数据库备份可以在发生系统崩溃时恢复数据到最后一次正常的状态并把损失减小到最少。在MySQLl中它给我们提供了一个mysql dump命令,我们可以用它进行数据备份。下面笔者假设要备份tm这个数据库并输入以下命令:
#mysqldump -u root -p tm > tm_050519.sql
在按提示输入密码后笔者就把tm数据库所有的表结构和数据备份到tm_050519.sql了。
另外如果我们要经常进行备份工作,在遇到数据量大的情况时备份数据就会占用很大空间,此时我们可以通过利用gzip来对数据进行压缩工作,具体的设置命令如下:
#mysqldump -u root -p tm | gzip > tm_050519.sql.gz
当遇到系统崩溃需要重建系统时,我们可以通过输入以下命令来恢复数据:
#mysql -u root -p tm < tm_050519.sql
从压缩文件直接恢复:
#gzip < tm_050519.sql.gz | mysql -u root -p tm
②利用crontab让系统每天定时备份mysql 数据库
利用系统crontab来定时执行备份文件,按日期对备份结果进行保存以达到备份的目的。
● 创建保存备份文件的路径/mysqldata
#mkdir /mysqldata
● 创建/usr/sbin/bakmysql文件
#vi /usr/sbin/bakmysql
接下来我们输入以下命令:
rq=` date +%Y%m%d `
tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql
或者我们可以将其写成如下形式:
rq=` date +%Y%m%d `
mysqldump --all-databases -u root -p密码 > /mysqldata/mysql$rq.sql
● /var/lib/mysql是我们数据库文件的目录。当然部分用户可能是/usr/local/mysql/data。
● /mysqldata/表示保存备份文件的目录,这个每个人可以根据自己的要求来做。
③修改文件属性使其可执行
# chmod +x /usr/sbin/bakmysql
④修改/etc/crontab
#vi /etc/crontab
在下面我们添加如下命令行:
01 3 * * * root /usr/sbin/bakmysql
这一命令行的意思表示的是每天3点钟执行数据库的备份工作。
⑤重新启动crond
# /etc/rc.d/init.d/crond restart
如此一来每天我们就会在/mysqldata看到如下的文件:
mysql20040619.tar.gz
我们通过直接下载就可以了。
cd /usr/local/mysql/bin/
mysqldump -u用户名 -p密码 --databases 库名 >/backdata/ddd07-11-15.sql
下面笔者给大家介绍数据库恢复的语法:
mysqladmin create target_db_name
mysql target_db_name < backup-file.sql
换句话说就是mysql 库名 < 文件名。此时需要我们注意的地方时,-u后面没有空格,我们只需要把上面的中文换成自己的相关信息就可以了。
以上就是实现Linux中mysql的备份和恢复的方法。
本次的轻松实现Linux中mysql的备份和恢复的讲解到此就暂告一段落,如果以后有什么相关的内容继续进行补充或者修改的话,笔者会在此继续进行相关的内容的补充或者修改的工作,同时也欢迎大家对本次的讲解提出自己的建议和补充。最后笔者希望本次的讲解对大家学习Linux和Linux认证能够起到一定的帮助作用!