@echo off
echo.
echo database backup
echo *****************************
echo.
echo Today is %date%
echo Time is %time%
echo.
echo *****************************
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
cd C:\Program Files\MySQL\MySQL Server 5.0\bin
mysqldump -uroot -p123 -B salo > c:\1.sql
echo.
echo MySQL database backup successful,Please check it
echo.
echo.
pauseRestore:
@echo off
echo.
echo Database restore
echo *****************************
echo.
echo Today is %date%
echo Time is %time%
echo.
echo *****************************
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
cd C:\Program Files\MySQL\MySQL Server 5.0\bin
mysql -uroot -p123 salo < c:\1.sql
echo.
echo MySQL database restore successful,please check it
echo.
echo.
pause
为什么当本地的数据库没有salo时,就会发生还原错误。
mysqldump -uroot -p123 --add-drop-database -B salo > c:\1.sql你备份的SQL中没有建立数据库的语句
CREATE DATABASE
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `数据库名称` /*!40100 这类的内容
直接
mysql -uroot -p123 < c:\1.sql
1,在1.sql的开头加上这句:
create database if not exists salo;
use salo;2,在导入库之前,执行如下sql
create database if not exists salo;
如有,直接mysql -uroot -p123 < c:\1.sql就OK了
Database restore
*****************************Today is 2011/02/24
Time is 18:01:05.89*****************************
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma
nual that corresponds to your MySQL server version for the right syntax to use n
ear '锘?
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */' at line 1MySQL database restore successful,please check it...
Press any key to continue . . .
试试我的办法吧!解决方案2个:
1,在1.sql的开头加上这句:
create database if not exists salo;
use salo;2,在导入库之前,执行如下sql
create database if not exists salo;
[code=BatchFile]@echo off
echo.
echo Database restore
echo *****************************
echo.
echo Today is %date%
echo Time is %time%
echo.
echo *****************************
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
cd C:\Program Files\MySQL\MySQL Server 5.0\bin
mysql -uroot -p123 salo -e "create database if not exists salo;"
mysql -uroot -p123 salo < c:\1.sql
echo.
echo MySQL database restore successful,please check it
echo.
echo.
pause[/code]
我备份的SQL里面就有create database if not exists salo;use salo
不过表头好像还有很多看不懂的
-- MySQL Administrator dump 1.4
--
-- ------------------------------------------------------
-- Server version 5.0.51b-community-nt
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;--
-- Create schema masterdata
--CREATE DATABASE IF NOT EXISTS salo;
USE salo;
这些是一些辅助性的语句。 上面这句是
SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT
提示什么?
但是用上面还原命令就出现错误。
但是我用MYSQL ADMINISTATOR工具备份的,用上面的命令是可以恢复的。
然后用MYSQLDUMP备份后,在MYSQL ADMINISTATOR还原也出现这个错误:
The selected file was generated by mysqldump and cant be restored by this application.
这个该怎么解决?
1、代码没有问题;
2、MYSQLDUMP与MYSQL ADMINISTATOR备份、还原有区别;
3、建议用MYSQL自己的MYSQLDUMP、MYSQL备份、还原。
还有1问题:
我备份的时候数据库名称是:salo 而且在SQL文件里面已经有create database salo le
但是还原的时候我想把它改成:SA
该怎么弄?
create database salo->create database sA
我想在备份的时候不加上--add-drop-database
然后在还原的时候加上:
mysql -uroot -p123 sa -e "create database if not exists sa;"
create database if not exists ....
use ....用ultraedit之类的软件打开吧,速度快一些