mysql在windows和unix下的问题!!!!!!

zwg123 2002-04-02 02:57:00
windows下的mysql文件为*.frm
*.myd
*.myi
在unix下
为:
*.ISD
*.ISM
*.frm

那我在windows下做的库表怎么在unix下使用?


...全文
74 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwg123 2002-04-05
  • 打赏
  • 举报
回复
谢谢sg(黛眉猫):我的email:zwghome@21cn.com

这几天都没上网.十分感谢各位的帮忙.我后来写了个程序用
mysql_create_db()动态创建了库表.
sg 2002-04-02
  • 打赏
  • 举报
回复
如有疑问,与我联系
sg 2002-04-02
  • 打赏
  • 举报
回复
<?
set_time_limit(600);
if($action == "")
{
?>
<title>PHP世纪网 MySQL 数据库备份还原程序</title>
<body bgcolor="#FFFFFF">
<table width="400" border="0" cellspacing="0" cellpadding="2" align="center" bgcolor="f0f0f0">
<form method=post>
<input type=hidden name=action value=login>
<tr align="center" bgcolor="#000066">
<td colspan="2" height="20"><font color="#FFFFFF">PHP世纪网 MySQL 数据库备份还原程序 2001/3/1</font>9</td>
</tr>
<tr>
<td>主机名</td>
<td>
<input type="text" name="host" size="30" value="localhost">
</td>
</tr>
<tr>
<td>用户名</td>
<td>
<input type="text" name="user" size="30">
</td>
</tr>
<tr>
<td>密码</td>
<td>
<input type="pass" name="pass" size="30">
</td>
</tr>
<tr align="center">
<td colspan="2">
<input type="submit" name="Submit" value="登陆">
<input type="reset" name="Submit2" value="重填">
</td>
</tr>
</form>
</table>
<?
}
elseif($action == "login")
{
mysql_connect($host,$user,$pass);
?>
选择要保存的数据库
<?
$dbresult = mysql_list_dbs();
for($i=0;$i<mysql_numrows($dbresult);$i++)
{
$db=mysql_dbname($dbresult,$i);
?>
<form method=post target=_blank>
<input type=hidden name=action value="do">
<input type=hidden name=host value="<?echo $host?>">
<input type=hidden name=user value="<?echo $user?>">
<input type=hidden name=pass value="<?echo $pass?>">
<input type=hidden name=db value="<?echo $db?>">
<?echo $db?>
<input type=submit name=submit value="保存">
<input type=submit name=submit value="还原">
</form>

<?
}
}
elseif(($action == "do") && ($submit == "还原"))
{
mysql_connect($host,$user,$pass);
if(!file_exists("$db.txt"))
{
echo "文件不存在!请先上传数据库备份文件 $db.txt";
exit();
}
//读入数据库文件

// $handle = fopen("$db.txt","r");
$message = file("$db.txt");
$pointer = 0;

$copyright = chop($message[$pointer++]);
if(substr($copyright,0,36) != "PHP世纪网 - MySQL 数据库备份还原程序")
{
echo "000 - 文件格式不对!";
fclose($handle);
exit();
}
$tablenum = chop($message[$pointer++]);
for($i=0;$i<$tablenum;$i++)
{
chop($message[$pointer++]);

$table = chop($message[$pointer++]);

//删除表格
$droptable = chop($message[$pointer++]);
mysql_db_query($db,$droptable);

//创建表格
$creattable = chop($message[$pointer++]);
mysql_db_query($db,$creattable);

//恢复数据
$rownum = chop($message[$pointer++]);
$numfields = chop($message[$pointer++]);
for($j=0;$j<$rownum;$j++)
{
$value="";
for($k=0;$k<($numfields-1);$k++)
{
$value .= "'".addslashes(str_replace(" ","\r\n",chop($message[$pointer++])))."',";
}
$value .= "'".str_replace(" ","\r\n",chop($message[$pointer++]))."'";
mysql_db_query($db,"insert into $table values (".$value.")");
}
}
echo "$db 还原成功";
exit();
}
elseif(($action == "do") && ($submit == "保存"))
{
mysql_connect($host,$user,$pass);
function save_table_struct($db, $table)
{
//删除旧的表格
$schema_create .= "DROP TABLE IF EXISTS $table\r\n";

//创建
$schema_create .= "CREATE TABLE $table (";

//读取字段信息
$result = mysql_db_query($db, "SHOW FIELDS FROM $table");
while($row = mysql_fetch_array($result))
{
$schema_create .= " $row[Field] $row[Type]";

//默认属性
if(isset($row["Default"]) && (!empty($row["Default"]) || $row["Default"] == "0"))
$schema_create .= " DEFAULT '$row[Default]'";

//为空属性
if($row["Null"] != "YES")
$schema_create .= " NOT NULL";

//额外属性
if($row["Extra"] != "")
$schema_create .= " $row[Extra]";
$schema_create .= ",";
}

//去掉里面的错误的部分
$schema_create = ereg_replace(",$", "", $schema_create);

//读取关键字
$result = mysql_db_query($db, "SHOW KEYS FROM $table");
while($row = mysql_fetch_array($result))
{
$kname=$row['Key_name'];
if(($kname != "PRIMARY") && ($row['Non_unique'] == 0))
$kname="UNIQUE|$kname";
if(!isset($index[$kname]))
$index[$kname] = array();
$index[$kname][] = $row['Column_name'];
}

while(list($x, $columns) = @each($index))
{
$schema_create .= ",";
if($x == "PRIMARY")
$schema_create .= " PRIMARY KEY (" . implode($columns, ", ") . ")";
elseif (substr($x,0,6) == "UNIQUE")
$schema_create .= " UNIQUE ".substr($x,7)." (" . implode($columns, ", ") . ")";
else
$schema_create .= " KEY $x (" . implode($columns, ", ") . ")";
}

//结束
$schema_create .= ")\r\n";
return (stripslashes($schema_create));
}

function save_table_data($db,$table)
{
global $handle;
$result = mysql_db_query($db,"select * from $table");
fputs($handle,@mysql_num_rows($result)."\r\n");
$numfields = mysql_num_fields($result);
fputs($handle,$numfields."\r\n");
if(@mysql_num_rows($result) <= 0) return;
for($k=0;$k<mysql_num_rows($result);$k++)
{
$msg = mysql_fetch_row($result);
for($i=0;$i<$numfields;$i++)
{
$msg[$i] = str_replace("\r\n"," ",$msg[$i]);
$msg[$i] = str_replace("\n" ," ",$msg[$i]);
fputs($handle,$msg[$i]."\r\n");
}
}
}
mysql_connect($host,$user,$pass);
//创建文件
$handle = fopen("$db.txt","w");

//文件标识
fputs($handle,"PHP世纪网 - MySQL 数据库备份还原程序 V1.0 www.php2000.com\r\n");

//列出所有的表格
$tableresult = mysql_list_tables($db);
fputs($handle,mysql_num_rows($tableresult)."\r\n");
for($i=0;$i<mysql_numrows($tableresult);$i++)
{
$table = mysql_tablename($tableresult,$i);

//保存表格结构
fputs($handle,"------- 转换 $db - $table 开始 --------\r\n");
fputs($handle,"$table\r\n");
fputs($handle,save_table_struct($db,$table));
fputs($handle,save_table_data($db,$table));
}
fclose($handle);
echo "保存完毕!";
}
?>
sg 2002-04-02
  • 打赏
  • 举报
回复
把我下面的文件保存为一个back.php,window和linux下都存一个。

从windows的web页面上访问back.php,输入mysql的口令进入后,点击你要保存的数据库旁边的‘保存’按钮。它会在back.php所在的文件加内生成一个该数据库的文本文件。

你把该文本文件拷贝到linux的back.php所在的目录下。

在linux的mysql中建一个相同名字的数据库。

运行linux的back.php,点击该数据库边上的恢复就ok了

它就把windows中该数据库中所有的表和数据都拷贝过来了。而且你以后还要做相同的工作就很容易了。
Jamestan 2002-04-02
  • 打赏
  • 举报
回复
两边都装个phpMyAdmin就可以导出和导入数据了。
David017 2002-04-02
  • 打赏
  • 举报
回复
在windows执行mysqldump
c:\mysql\bin\mysqldump -u root -p 你的数据库名 > data.sql

然后把data.sql用asc方式上传到linux

导入即可。

#cat data.sql | mysql -u root -p 你的数据库名
注意如果数据库没有,要先创建。
sg 2002-04-02
  • 打赏
  • 举报
回复
短消息 :P 打错了。
那个文件很管用的
sg 2002-04-02
  • 打赏
  • 举报
回复
用一个转换文件,我有。写端消息给我,我发给你

21,890

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧