mysql数据导入导出

mac2022-06-30  28

在实际工作中,有时需要执行mysql数据库的导入和导入操作,但对于大型sql文件导入时,phpmyadmin是不行的,有太多限制,比如记录,内存等! 导出命令: a)导出整个库  mysqldump -u 用户名 -p 数据库名 > 导出的文件名 示例:   mysqldump -u root -p student > d:/yebihai.sql  b)导出一个表  mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名导入命令: 方法一:客户端直接命令操作 mysql -uroot -proot 数据库名< c:/sql文件.sql 方法二:客户端用source命令操作  1、进行入客户端 mysql -uroot -p123456 2、mysql>use 数据库名(如果没有,先建一个)  3、mysql>set names 'utf8'; (一般看导入的是什么格式的文件)  4、mysql>source d:/aaa.sql;  即可正常导入,如果有错,可以看出错提示 方案三:分块导入 //用来快速Mysql的大数据备份 //使用前请首先按照代码注释修改要导入的SQL文件名、数据库主机名、数据库用户名、密码、数据库名 //同时将数据库文件和本文本一起ftp导网站目录,然后以web方式访问此文件即可$file_name="sql.sql"; //要导入的SQL文件名 $dbhost ="localhost"; //数据库主机名 $dbuser="user"; //数据库用户名 $dbpass="pass"; //数据库密码 $dbname="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");//打开数据库 mysql_query('set names utf8'); echo "正在执行导入操作"; while($SQL=GetNextSQL()){ if(!mysql_query($SQL)){ echo "执行出错:".mysql_error().""; echo "SQL语句为:".$SQL.""; }; } echo "导入完成"; fclose($fp) or die("Can’t close file $file_name");//关闭文件 mysql_close(); //从文件中逐条取SQL function GetNextSQL() { global $fp; $sql=""; while ($line = @fgets($fp, 40960)) { $line = trim($line); //以下三句在高版本php中不需要,在部分低版本中也许需要修改 $line = str_replace("","//",$line); $line = str_replace("/’","’",$line); $line = str_replace("//r//n",chr(13).chr(10),$line);// $line = stripcslashes($line); if (strlen($line)>1){ if ($line[0]=="-" && $line[1]=="-"){ continue; } } $sql.=$line.chr(13).chr(10); if(strlen($line)>0){ if($line[strlen($line)-1]==";"){ break; } } } return $sql; } 原文链接:https://zhidao.baidu.com/question/620216292770783572.html

转载于:https://www.cnblogs.com/gyfluck/p/8558713.html

最新回复(0)