
正文
手动备份php数据库 phpmyadmin备份数据库
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
假如我现在有个PHP网站已经上传到空间域名了 现在使用flashFtp除了备份网站外 如何备份数据库?详解谢谢
这个有点复杂啊
如果有phpmyadmin,那让空间商给你phpmyadmin的网址,用你的数据库用户名和密码登陆进去,进行导出和导入,也就是备份和还原
如果没有,那有数据库控制面板也行,让空间商给你地址,用你的数据库用户名和密码登陆进行,生成备份和一个临时ftp,然后用ftp下载下来,还原是一样的道理
如果还是没有,而你的数据库用户允许远程连接的话,那就下载一个mysql数据库管理软件,用这个软件进行备份和还原
如果不能远程连接,那么,只要在你的后台用php写个备份和还原的功能,用这个功能进行备份下载
相关问答
Q1: php mysql如何备份数据
我一般用二种方法:
1.SQL文件数据备份手动备份php数据库;
下载一个Navicat Premium手动备份php数据库,使用这个软件,正确连接并访问数据库,
点中你想要备份的数据库,按右键使用转存SQL文件,就会出现你要备份的提示框,保存即可;
若要导进则用运行SQL文件,非常方便的导入单个数据库的,但这种只适合于小数据量的数据库(50万条以下);
2.底层备份,但这种备份要求安装是同一版本的mysql才适合,否则会出现未知错误;
直接找到mysql安装目录,找到data文件夹全部拷呗到你想备份的地方即可,还原就拷回来即可。适合大数据量的备份方法手动备份php数据库!
3.至于楼主硬要用PHP备份数据的话,你可以参考phpadmin和dedecms程序备份数据的方法,但这种执行效率很低的!
Q2: php 代码备份数据库
?php
/*
**************function db_bak()********************
* 功能:备份指定的数据库中的指定表
* 输入(按传入参数解释):$db_name 要备份的数据库,$tb_array要备份的表,数组形式的,如果不是数组,将备份整个库。
$dir输出备份文件的目录,$filename备份文件名,$block_num指定分块大小(指一条insert语句包含几天数据)
* 输出:备份的数据表的sql语句文件,可用于还原
*/
function db_bak($mylink,$dbname,$tab_array="",$dir,$filename,$block_num=20){
mysql_select_db($dbname,$mylink) or db_error(mysql_error());
is_array($tab_array) or $tab_array=db_showtb($mylink,$dbname,true); //如果$tab_array不是数组,则取得整个库的表
if($dir){
if(!file_exists($dir)){
$flag=mkdir($dir);
if(!$flag)
return 2;
}
}
//检查数据表是否存在
foreach($tab_array as $tab)
db_e_tab($mylink,$dbname,$tab) or db_error($tab." is not exist!");
$fp=fopen($dir.$filename,"w");
foreach($tab_array as $tab){
fputs($fp,"DROP TABLE IF EXISTS ".$tab.";\r\n");
$tabdef_array=mysql_fetch_array(mysql_query("SHOW CREATE TABLE ".$tab,$mylink));
fputs($fp,str_replace("\n","",$tabdef_array["Create Table"]).";\r\n");
fputs($fp,"LOCK TABLES ".$tab." WRITE;\r\n");
$getvalue_result=mysql_query("select * from ".$tab,$mylink);
if(mysql_num_rows($getvalue_result)){
$i=1;
$p="";
$start_flag=true;
while($getvalue_array=mysql_fetch_row($getvalue_result)){
$values=join("','",array_map('db_data_check',$getvalue_array));
$start_flag fputs($fp,"insert into ".$tab." values");
if($i$block_num){
fputs($fp,",('".$values."');\r\n");
$start_flag=true;
$i=0;
}else{
fputs($fp,$p."('".$values."')");
$start_flag=false;
$i++;
}
$p=$start_flag?"":",";
}
$start_flag or fputs($fp,";\r\n");
}
fputs($fp,"UNLOCK TABLES;\r\n");
}
fclose($fp);
}
/*
**************function db_in()********************
* 功能:还原备份函数db_bak生成的数据库文件
* 输入(按传入参数解释):$db_name 要备份的数据库,$filename要还原的数据库文件
* 输出:将数据还原到数据库
* 原理:将文件分割成一个数组,然后逐条将数据导入数据库
* 警告:执行该函数会删除原来的数据表
*/
function db_in($mylink,$dbname,$filename){
if(!file_exists($filename)){
return 0;
}
db_e_db($mylink,$dbname) or (mysql_query("create database ".$dbname,$mylink)or db_error(mysql_error()));
mysql_select_db($dbname,$mylink);
$sql_array=file($filename);
foreach($sql_array as $sql){
mysql_query(trim($sql),$mylink) or db_error(mysql_error());
}
}
?
//我自己写的。可以参考哈
Q3: 知道了php数据库账号密码怎么备份
z-blog php数据库帐号密码保存在zb_users/c_option.php
php一般使用手动备份php数据库的mysql的数据库 如果没有密码的话 比较麻烦
要破解mysql的root密码 这是关键
参考:
如果是root密码:
方法一:
MySQL提供跳过访问控制的命令行参数手动备份php数据库,通过在命令行以此命令启动MySQL服务器:
safe_mysqld --skip-grant-tables
即可跳过MySQL的访问控制,任何人都可以在控制台以管理员的身份进入MySQL数据库。
需要注意的是在修改完密码以后要把MySQL服务器停掉重新启动才会生效
方法二:
可以进行如下的步骤重新设置MySQL的root密码:
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。
因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的
状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对
外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全
状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。
2.修改MySQL的登录设置:
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
保存并且退出vi。
3.重新启动mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
4.登录并修改MySQL的root密码
# /usr/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql USE mysql ;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql UPDATE user SET Password = password ( ‘new-password’ ) WHERE User = ‘root’ ;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
mysql flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql quit
Bye
5.将MySQL的登录设置修改回来
# vi /etc/my.cnf
将刚才在[mysqld]的段中加上的skip-grant-tables删除
保存并且退出vi。
6.重新启动mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
windows
1.以系统管理员身份登陆系统。
2.打开cmd—–net start 查看mysql是否启动。启动的话就停止net stop mysql.
3.手动备份php数据库我的mysql安装在d:\usr\local\mysql4\bin下。
4.跳过权限检查启动mysql.
d:\usr\local\mysql4\bin\mysqld-nt –skip-grant-tables
5.重新打开cmd。进到d:\usr\local\mysql4\bin下:
d:\usr\local\mysql4\bin\mysqladmin -uroot flush-privileges password “newpassword”
d:\usr\local\mysql4\bin\mysqladmin -u root -p shutdown 这句提示你重新输密码。
6.在cmd里net start mysql
7.搞定手动备份php数据库了。
2,MySQL4.1以上版本一种密码错误问题的解决方法
1 # SET PASSWORD FOR ’some_user’@’some_host’ = OLD_PASSWORD(‘newpwd’);
2 # FLUSH PRIVILEGES;
3,Mysql数据库修复
myisamchk -r -q d:\mysql\data\latin1\*
r代表修复
q代表快速
d:\mysql\data\latin1\*数据库里面 *代表里面的所有的文件
方法三:
如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。
1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
kill `cat /mysql-data-directory/hostname.pid`
你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。
2. 使用`--skip-grant-tables' 参数来启动 mysqld。
3. 使用`mysql -h hostname mysql'命令登录到mysqld server ,用grant命令改变口令。你也可以这样做:`mysqladmin -h hostname -u user password 'new password''。
(其实也可以用use mysql; update user set password =password('yourpass') where user='root' 来做到。)
4. 载入权限表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。(当然,在这里,你也可以重启mysqld。)
方法四:(一定要先备份)
1,重新在另一台电脑上安装相同版本的MySQL
2,删除忘记密码的电脑中MySQL安装目录中\data\mysql的全部内容(要先停止MySQL服务)
3,Copy新装的电脑上MySQL安装目录中\data\mysql的全部内容 to 刚刚删除的目录中
4,启动MySQL服务
这样就只有一个root用户了,密码为空……
Q4: 请教各位老师如何备份PHP网站的数据库
首先,登录mysql管理中心,找到您要备份的数据库。
然后,找到菜单“导出”,跳转到的页面,点击确定即可。
Q5: 求thinkphp 数据库的备份、还原的脚本
一、备份数据库并下载到本地【db_backup.php】
代码代码如下:
?php
// 设置SQL文件保存文件名
$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
// 所保存的文件名
header("Content-disposition:filename=".$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("Expires:0");
// 获取当前页面文件路径手动备份php数据库,SQL文件就导出到此文件夹内
$tmpFile = (dirname(__FILE__))."\\".$filename;
// 用MySQLDump命令导出数据库
exec("mysqldump -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname ".$tmpFile);
$file = fopen($tmpFile, "r"); // 打开文件
echo fread($file,filesize($tmpFile));
fclose($file);
exit;
?
二、还原数据库【db_restore.php】
代码代码如下:
form id="form1" name="form1" method="post" action=""
【数据库SQL文件】:input id="sqlFile" name="sqlFile" type="file" /
input id="submit" name="submit" type="submit" value="还原" /
/form
?php
// 手动备份php数据库我的数据库信息都存放到config.php文件中手动备份php数据库,所以加载此文件手动备份php数据库,如果你的不是存放到该文件中,注释此行即可;
require_once((dirname(__FILE__).'/../../include/config.php'));
if ( isset ( $_POST['sqlFile'] ) )
{
$file_name = $_POST['sqlFile']; //要导入的SQL文件名
$dbhost = $cfg_dbhost; //数据库主机名
$dbuser = $cfg_dbuser; //数据库用户名
$dbpass = $cfg_dbpwd; //数据库密码
$dbname = $cfg_dbname; //数据库名
set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入
$fp = @fopen($file_name, "r") or die("不能打开SQL文件 $file_name");//打开文件
mysql_connect($dbhost, $dbuser, $dbpass) or die("不能连接数据库 $dbhost");//连接数据库
mysql_select_db($dbname) or die ("不能打开数据库 $dbname");//打开数据库
echo "p正在清空数据库,请稍等....br";
$result = mysql_query("SHOW tables");
while ($currow=mysql_fetch_array($result))
{
mysql_query("drop TABLE IF EXISTS $currow[0]");
echo "清空数据表【".$currow[0]."】成功手动备份php数据库!br";
}
echo "br恭喜你清理MYSQL成功br";
echo "正在执行导入数据库操作br";
// 导入数据库的MySQL命令
exec("mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname ".$file_name);
echo "br导入完成!";
mysql_close();
}
?
关于手动备份php数据库和phpmyadmin备份数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







