当前位置:首页 » 编程语言 » sql文件如何发布
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql文件如何发布

发布时间: 2023-08-03 18:32:18

❶ 如何在mysql中导入/导出超大的sql文本文件

在mysql中导入/导出超大的sql文本文件,我们可以使用很多方法实例,如有:客户端直接命令操作,分块导入,客户端用source命令操作等等。
在实际工作中,有时经常地时行mysql数据库的导入和导入操作,但对于大型sql文件导入时,phpmyadmin是不行的,有太多限制,比如记录,内存等!

多种方案收集,如下:
方案一:客户端直接命令操作(此方法是我比较喜欢的)

刚恢复一个电商网站mysql备份数据,此备份文件有300多M,因为phpmyadmin支持上传有限,文件太大IE停止响应,所以在本地用

代码如下
复制代码

mysql -u root -p root jiahuibuydb<
c:/yebihai.sql

但没导入进去,出来一大堆mysql的参数提示,不认输入的命令参数,后来写成下面这个样子,就是去掉了参数和数据之间的空格

代码如下
复制代码

mysql -uroot -proot jiahuibuydb<
c:/yebihai.sql

导入就OK了

导出命令:

a)导出整个库

mysqlmp -u 用户名 -p 数据库名 > 导出的文件名

代码如下
复制代码

mysqlmp -u root -p student
>d:/yebihai.sql

b)导出一个表

mysqlmp -u 用户名 -p 数据库名 表名> 导出的文件名

方案二:分块导入

代码如下
复制代码

<?
//用来快速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
"执行出错www.111cn.net:".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;

}
?>

方案三:客户端用source命令操作

比较好的办法仍是用mysql的source命令:

一、在客户端下操作:

1、进行入客户端 代码如下
复制代码

2、mysql>use 数据库名(如果没有,先建一个)

3、mysql>set names 'utf8'; (一般看导入的是什么格式的文件)

4、mysql>source d:/aaa.sql;

即可正常导入,如果有错,可以看出错提示

二、PHP文件操作:

建立a.php

里面有下面内容 代码如下
复制代码

mysql_connet('xxxx');

mysql_query("set names 'utf8'");

mysql_query("source d:/aaa.sql'");

原理同上,主要方便了无法使用命令行用户的操作

方案四:下面教大家一个简单有效的办法,适合不会使用命令窗口的非技术人员,可以导入任意大小的mysql数据库,理论上不论您的数据库备份文件多大,都可以导入

方法如下:

1.将数据库备份文件(如backup.sql)上传至网站根目录。

2.将以下代码保存为mysql.php文件,上传至网站根目录。

代码如下
复制代码

system("mysql -hdbhost -udbuser -ppassword dbname < backup.sql");

print "导入成功";

其中

dbhost 改为您的数据库服务器地址(小提示:一般主机默认数据库服务器地址是:localhost)

dbuser 改为您的数据库用户名

password 改为您的数据库用户密码

dbname 改为您的数据库名(导入的时候此库必须先建立好,否则会失败并且不会进行任何提示)

backup.sql表示通过ftp上传到网站根目录下数据库文件的文件名(该文件是解压缩后的文件)

3.在浏览器里面访问mysql.php, 那么就在浏览器里面输入/mysql.php,只要浏览器一访问这个mysql.php文件,数据就开始导入,数据导入结束后,就会显示“导入成功”的字样。这个时间根据您要导入的数据大小决定,一般时间很短

❷ 如何导出sql文件

1. 概述
MySQL数据库的导入,有两种方法:
1) 先导出数据库SQL脚本,再导入;
2) 直接拷贝数据库目录和文件。
在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。
所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。
Linux下:
2. 方法一 SQL脚本形式
操作步骤如下:
2.1. 导出SQL脚本
在原数据库服务器上,可以用phpMyAdmin工具,或者mysqlmp(mysqlmp命令位于mysql/bin/目录中)命令行,导出SQL脚本。
2.1.1 用phpMyAdmin工具
导出选项中,选择导出“结构”和“数据”,不要添加“DROP DATABASE”和“DROP TABLE”选项。
选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。
将导出的SQL文件保存下来。
2.1.2 用mysqlmp命令行
命令格式
mysqlmp -u用户名 -p 数据库名 > 数据库名.sql
范例:
mysqlmp -uroot -p abc > abc.sql
(导出数据库abc到abc.sql文件)
提示输入密码时,输入该数据库用户名的密码。
2.2. 创建空的数据库
通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。
2.3. 将SQL脚本导入执行
同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行。
2.3.1 用phpMyAdmin工具
从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。
在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。
注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件
比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz文件。
2.3.2 用mysql命令行
命令格式
mysql -u用户名 -p 数据库名 < 数据库名.sql
范例:
mysql -uabc_f -p abc < abc.sql
(导入数据库abc从abc.sql文件)
提示输入密码时,输入该数据库用户名的密码。
3 方法二 直接拷贝
如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和操作系统之间可能不兼容,要慎用。
3.1 准备原始文件
用tar打包为一个文件
3.2 创建空数据库
3.3 解压
在临时目录中解压,如:
cd /tmp
tar zxf mydb.tar.gz
3.4 拷贝
将解压后的数据库文件拷贝到相关目录
cd mydb/
cp * /var/lib/mysql/mydb/
对于FreeBSD:
cp * /var/db/mysql/mydb/
3.5 权限设置
将拷贝过去的文件的属主改为mysql:mysql,权限改为660
chown mysql:mysql /var/lib/mysql/mydb/*
chmod 660 /var/lib/mysql/mydb/*
把mysqlmp出来的数据修改一下。除了要把表增加上) TYPE=MyISAM CHARACTER SET gbk;以外,在下面再增加一句SET NAMES GBK;
这样,数据就可以平滑的导入4.1了,而不必怕出现乱码。
Windows下:
DOS窗口
开始->运行->cmd
导出为:mysqlmp -u 用户名 -p --opt 数据库用户名 > 数据库名.sql
输入你的数据库密码!
导入为:mysql -u 用户名 -p 数据库用户名 < 数据库名.sql (要在当前目录下操作)

❸ sql数据库如何导出

1、打开SQL Server,找到需要导出的数据库。

如何配置 SQL Server 发布服务器计算机

Configuration Manager 2007 不支持站点数据库完全复制,只应复制特定的站点数据库对象。注意 在Configuration Manager 2007 安装中,为支持站点系统访问站点数据库副本,必须复制 98 个对象(48 个表、44 个存储过程、4 个视图和两个用户定义的函数)。在 Configuration Manager 2007�0�2SP1 安装中,为支持站点系统访问站点数据库副本,必须复制 99 个对象(49 个表、44 个存储过程、4 个视图和两个用户定义的函数)。 在开始执行这些过程之前,确保已完成复制前必需任务。有关必需的复制前安装任务的详细信息,请参阅 如何执行必需的复制前安装任务。可以使用以下过程来配置宿主站点数据库的 SQL Server 以发布要复制的站点数据库,并充当其自身的分发服务器。配置宿主站点数据库的 SQL Server 以发布要复制的站点数据库在连接到宿主站点数据库的 SQL�0�2Server 的 SQL Server 2005 SQL�0�2Server�0�2Management�0�2Studio 控制台中,右键单击“复制”,然后单击“配置分发”以启动配置分发向导。在“欢迎”页面上,单击“下一步”(如果显示)。在“分发服务器”页面上,选择“‘’将充当自己的分发服务器;SQL Server 将创建分发数据库和日志”。如果SQL Server 代理服务尚未启动,必须在“启动 SQL Server 代理”页面上将其启动。注意 如果SQL Server 服务帐户对 SQL Server 计算机没有管理权限,必须手动启动 SQL Server 代理服务并将其配置为在 SQL Server 启动时自动启动。 在“快照文件夹”页面上,输入空的共享网络资源,订阅服务器 SQL Server 将访问该资源以检索存储在其中的站点数据库快照信息。重要 必须为快照文件夹指定有效的 UNC 共享路径。对快照文件夹使用本地驱动器路径将不支持在订阅服务器 SQL Server 计算机上创建的请求订阅。 在“分发数据库名称”页面上,指定要创建以支持站点数据库分发的系统数据库的数据库名称和数据库文件安装目录。注意 分发数据库文件安装路径必须是 SQL�0�2Server 计算机上的本地位置,并以驱动器号和冒号开头(例如,C:)。 在“发布服务器”页面上,选择宿主站点数据库的 SQL Server,在它变为发布服务器时将使用分发服务器数据库。在“向导操作”页面上,选择“配置分发”。在“完成向导”页面上,验证将用于配置分发的设置,然后单击“完成”。完成分发配置之后,单击配置页面上的“关闭”。配置新的本地发布以获得所需的 SQL Server 副本站点数据库信息在连接到宿主站点数据库的 SQL�0�2Server 的 SQL Server 2005 SQL�0�2Server�0�2Management�0�2Studio 控制台中,展开“复制”,右键单击“本地发布”,然后单击“新建发布”以启动新建发布向导。在新建发布向导欢迎页面上,单击“下一步”。在“发布数据库”页面上选择站点数据库。在“发布类型”页面上,选择“事务发布”。在“项目”页面上,选择要作为复制项目发布的必需站点数据库对象。确定要发布的必需站点数据库对象: 在SQL�0�2Server�0�2Management�0�2Studio 控制台中,右键单击站点数据库名称并选择“新建查询”。 在SQL�0�2Server�0�2Management�0�2Studio 结果窗格中,输入以下查询:Select�0�2ObjectName�0�2from�0�2ReplicatedObjects�0�2where�0�2SiteSystemType�0�2=�0�2'MP',然后单击“执行”。注意 支持服务器定位器点站点系统以访问 SQL�0�2Server 站点数据库副本所需的对象将作为管理点复制的对象查询的一部分返回。完成此步骤之后,不需要为复制配置其他对象以支持为访问站点副本而配置的服务器定位器点站点系统。如果仅配置 SQL�0�2Server 站点数据库复制以支持服务器定位器点访问 SQL Server 副本,您可以使用以下查询:Select�0�2ObjectName�0�2from�0�2ReplicatedObjects�0�2where�0�2SiteSystemType�0�2=�0�2'SLP'。 在“项目问题”页面上,确保已为复制选择列出的表和对象。在“筛选表行”上,不要添加任何表筛选。在“快照代理”页面上,选择“立即创建快照并使快照保持可用状态,以初始化订阅”。选择“计划在以下时间运行快照代理:”并接受默认计划。或者,您可以单击“更改”,以根据自己的复制要求为快照代理配置日常计划频率。在“代理安全性”页面上,单击“安全设置…”并配置用于快照代理和日志读取器代理的帐户。在“向导操作”页面上,验证是否已选中“创建发布”。在“完成向导”页面上,输入发布的名称并检查发布设置,然后单击“完成”。在“创建发布”页面上,在创建发布之后单击“关闭”。