Mysql教程

20.3 PHP备份与还原MySQL数据库

在PHP语言中可以执行mysqldump命令来备份MySQL数据库,也可以执行mysql命令来还原MySQL数据库。PHP中使用system()函数或者exce()的数来调用mysqldump 命令和mysql命令。本节将为读者介绍PHP备份与还原MySQL数据库的方法。

20.3.1 PHP备份MySQL数据库

PHP可以通过system()函数或exce()函数来调用mysqldump命令。system()函数的形式如下:

system("mysqldump -h hostname -u user -pPassword database [table] > dir/backup.sql");

exce()函数的使用方法与system()函数是一样的。这里直接将mysqldump命令当作系统命令来调用。这需要将MySQL的应用程序的路径添加到系统变量的Path变量中。添加Path 变量的方法请参照2.2.3小节。如果不想把MySQL的应用程序的路径添加到Path变量中, 可以使用mysqldump命令的完整路径。假设mysqldump在C:\mysql\bin\目录下。system()函数的形式如下:

system("C:/mysql/bin/mysqldump -h hostname -u user -pPassword database [table] > dir/backup.sql");

【示例20-10】下面将test数据库备份到C:\目录下的test.sql文件中,其部分代码如下:

<?php
//调用system()函数执行mysqldump命令
system(C:/mysql/bin/mysqldump -h localhost -u root -phuang test > C:/test.sql);
?>

system()函数会调用C:\mysql\bin目录下的mysqldump命令,通过mysqldump命令将test数据库备份到C:\目录下的test.sql文件中。Linux操作系统下的使用情况也是一样的。但是在Linux操作系统下一定要注意权限问题。只有拥有root权限或者mysql权限的用户才能够正确地执行这段代码。

20.3.2PHP还原MySQL数据库

PHP可以通过system()函数或者exce()函数来调用mysq命令。system()函数的形式如下:

system("mysql -h hostname -u user -pPassword database [table] < dir/backup.sql");

exce()函数的使用方法与system()函数是一样的。mysql命令和mysqldump命令一样,只有MySQL的应用程序的路径添加到系统变量的Path变量中,才可以直接调用mysql命令,否则,需要加上mysql命令的完整路径。假设mysql在C:\mysql\bin目录下。system()函数的形式如下:

system("C:/mysql/bin/mysql -h hostname -u user -pPassword database [table] < dir/backup.sql");

【示例20-11】下面将C:\目录下的test.sql文件还原到test数据库中。其部分代码如下:

<?php
//调用system()函数执行mysql命令
system(C:/mysql/bin/mysql -h localhost -u root -phuang test < C:/test.sql);
?>

system()函数会调用C:\mysql\bin\目录下的mysql命令。通过mysql命令将test.sql文件中的数据还原到test数据库中。

关注微信获取最新动态