导入 : mysql -udump_user -pdump_user woshittest< 1.txt
1、备份 在MY。INI中加入 [client] add-drop-database=TRUE MYSQLDUMP -uroot -B -p ZZ>D:\ZZ\123.TXT 即有 DROP DATABASE IF EXISTS db_name CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET utf8
1、进入MYSQL目录,输入MYSQLDUMP --help,会看到帮助 [client] add-drop-database=TRUE 在5.1。17下没有问题,我测试过,即 DROP DATABASE IF EXISTS db_name CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET utf8 如果要备份SP、TRGGER、UDF等等,加入参数 MYSQLDUMP -uroot -B -E -R -p TEST>D:\ZZ\123.TXT
2、导入: shell> mysql target_db_name < backup-file.sql 即 shell> mysql 库名 < 文件名
2、你所说的备份是指用MYSQLDUMP,还是将表SELECT ... INTO OUTFILE ?
这是命令,你可以将此命令加入你的程序,运行试试,
首先在MYSQL中测试一下,乱码有可能是字符集的问题,
比如UTF8在记事本中就是乱码,但在WORD中打开,会提示
你是UTF8,不会乱码。
System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
Info.FileName = @"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe";
Info.Arguments = "--host=192.168.123.14 --user=root --password=123456 abc -r \"" + string.Format("{0}", bakPath) + "\"";
System.Diagnostics.Process proc;
try
{
proc = System.Diagnostics.Process.Start(Info);
}
catch (System.ComponentModel.Win32Exception ex)
{
MessageBox.Show("找不到指定程序文件");
return;
}
我代码是这样写的,可备份是的乱码
string bakPath = saveFileDialog1.FileName;
string bakPath = saveFileDialog1.FileName;
2、用WORD打开是否为乱码;
3、MYSQL的默认字符集是什么,与表、字段字符集是一致的,检查一下,
用SQLYOG、EMS MYSQL MANAGER等等图形化管理工具看看。
我用word打开备份出的sql文件,选择utf8不是乱码
这是为什么?
而且恢复时也要将MYSQL设为UTF8字符集,你所说的乱码,应该是用
不支持UFT8的软件打开文件所致,比如记事本
恢复也没有问题。
my.ini文件里2处default-character-set=gb2312我都设置gb2312
建库建表都加了CHARACTER SET gb2312,怎么会变utf8
呵呵,另外加问个问题,mysql恢复时候,是不是要删除原来存在的数据库,然后建库,才能恢复?
打开就是正常的。
可以不要删除原来存在的数据库,直接使用,也可以加上如果存在则删除,
重新建立数据库,根据你的习惯,如果你要干净的数据库,则删除。
string url = openFileDialog1.FileName;
System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
Info.FileName = @"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe";
Info.Arguments = "--host=192.168.123.14 --user=root --password=123456 labelprint < \"" + string.Format("{0}", url) + "\"";
System.Diagnostics.Process proc;
try
{
proc = System.Diagnostics.Process.Start(Info);
}
catch (System.ComponentModel.Win32Exception ex)
{
MessageBox.Show("找不到指定程序文件");
return;//
}
我删除原有数据库,然后恢复,为什么恢复不了,能看看那里错了吗
问下在程序里用命令来备份合适吗?还有没其他方法在程序里备份
DROP DATABASE IF EXISTS db_name
CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET utf8
我就试还原了,在程序里不报错误,因为在还原过程中黑DOS一闪而过看不清楚
string s = "--host=192.168.123.14 --user=root --password=123456 labelprint < \"" + string.Format("{0}", url) + "\"";
Process.Start(@"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe", s);
我就用这两句还原的
mysql -udump_user -pdump_user woshittest< 1.txt
在MY。INI中加入
[client]
add-drop-database=TRUE
MYSQLDUMP -uroot -B -p ZZ>D:\ZZ\123.TXT
即有
DROP DATABASE IF EXISTS db_name
CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET utf8
[client]
add-drop-database=TRUE
之后,我mysql都打不开了啊
不太懂你的意思
我现在的问题是:利用命令在DOS里备份和还原是正常的
用代码备份出来SQL文件是乱码,利用备份出来的文件无法还原
我建库,建表,建字段都是uft8,my.ini里也是UTF8
为什么利用代码备份出来的就是乱码?
[client]
add-drop-database=TRUE
在5.1。17下没有问题,我测试过,即
DROP DATABASE IF EXISTS db_name
CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET utf8
如果要备份SP、TRGGER、UDF等等,加入参数
MYSQLDUMP -uroot -B -E -R -p TEST>D:\ZZ\123.TXT
shell> mysql target_db_name < backup-file.sql
即 shell> mysql 库名 < 文件名
EVENT都可以备份,乱码用WORD打开就OK;
2、导入:你在MYSQL下导入试试有无问题。