在这里让我们一起学习,一起提高!
Auto Backup for MySQL 是一款强大的MySQL数据库备份工具,Auto Backup for MySQL能让你以安全方便的方式轻松地备份本地或远程的MySQL数据库。它可以将MySQL数据库文件自动备份到其他文件或者其他数据库,支持的格式包括SQL、PHP、CSV、XML、HTML、TXT等。也可以备份到本地服务器其他数据库中,也可以备份到远程服务器同名数据库中。

Auto Backup for MySQL Professional v2.1注册码


姓名(Name):Michael Lenz
邮箱(Email):maker@t0r.biz
序列号(Serial):RYBSL-JC5GR-DPEJP-JXN41-B1RUD



下载:
点击下载Auto Backup for MySQL Professional v2.1

mysql字符集设置及其转换 不指定

jed , 2008-5-15 08:13 , 数据库技术 , 评论(0) , 阅读(6383) , Via 本站原创
个人建议,数据库字符集尽量使用utf8(utf-8),以使你的数据能很顺利的实现迁移,因为utf8字符集是目前最适合于实现多种不同字符集之间的转换的字符集,尽管你在命令行工具上无法正确查看数据库中的内容,我依然强烈建议使用utf8作为默认字符集.
接下来是完整的一个例子:
1.创建数据库表
mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;
#注意后面这句话 "COLLATE utf8_general_ci",大致意思是在排序时根据utf8变码格式来排序
#那么在这个数据库下创建的所有数据表的默认字符集都会是utf8了

mysql>create table my_table (name varchar(20) not null default '')type=myisam default charset utf8;
#这句话就是创建一个表了,制定默认字符集为utf8

2.写数据
例子1是通过php直接插入数据:
a.php
mysql_connect('localhost','user','password');
mysql_select_db('my_db');

//请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的
//它的作用是设置本次数据库联接过程中,数据传输的默认字符集
mysql_query("set names utf8;");

//必须将gb2312(本地编码)转换成utf-8,也可以使用iconv()函数
mysql_query(mb_convet_encoding("insert into my_table values('测试');", "utf-8", "gb2312"));
?>

例子是通过页面提交插入数据2:
b.php
//输出本页编码为utf-8
header("content-type:text/html; charset=utf-8");

mysql_connect('localhost','user','password');
mysql_select_db('my_db');

if(isset($_REQUEST['name'))
{
   //由于上面已经指定本页字符集为utf-8了,因此无需转换编码
   mysql_query(sprintf("insert into my_table values('%s');", $_REQUEST['name']));
}

$q = mysql_query("select * from my_table");
while($r = mysql_fetch_row($q))
{
   print_r($r);
}
?>







自此,使用utf8字符集的完整的例子结束了.
如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束,例如:
create table my_table ( name varchar(20) binary not null default '')type=myisam default charset latin1;


附:旧数据升级办法
以原来的字符集为latin1为例,升级成为utf8的字符集。原来的表: old_table (default charset=latin1),新表:new_table(default charset=utf8)。
第一步:导出旧数据
mysqldump --default-character-set=latin1 -hlocalhost -uroot -B my_db --tables old_table > old.sql
第二步:转换编码
iconv -t utf-8 -f gb2312 -c old.sql > new.sql
在这里,假定原来的数据默认是gb2312编码。
第三步:导入
修改old.sql,增加一条sql语句: "SET NAMES utf8;",保存。
mysql -hlocalhost -uroot my_db < new.sql
大功告成!!
Mysql数据库的字符编码转换还真是相当的麻烦
当初不小心用了GBK现在要回到utf-8,而数据已经非常大了

网上找了无数资料,一般都是利用mysqldump加iconv再导回去,但做了之后发现会有错误。还有比较夸张的方法是用编辑器来转换编码,这对于海量数据根本行不通。

最后还是利用了Navicat来解决。
我使用的方法比较保险,用了远程和本地两个数据库。
远程的是gbk编码,想转成utf-8的。
直接在Navicat中建立两条连接,一条是连接远程的,将连接字符编码设置为gbk。
本地设置为utf-8或者数据库默认是utf-8就选择默认的连接字符编码。

选择使用DATA TRANSFER并按步骤将远程数据库中的数据传到本地上。
完成后可以检查本地的数据,应该就是utf-8格式了,修改连接字符编码再将本地的数据导到远程的。
这样就实现了数据库字符编码的转换工作,而且相当的安全。

一直对utf8_unicode_ci与utf8_general_ci这2个校对集很迷惑,今天查了手册有了点眉目。不过对中文字符集来说采用utf8_unicode_ci与utf8_general_ci时有何区别还是不清楚?
下面摘录一下Mysql 5.1中文手册中关于utf8_unicode_ci与utf8_general_ci的说明:

    当前,utf8_unicode_ci校对规则仅部分支持Unicode校对规则算法。一些字符还是不能支持。并且,不能完全支持组合的记号。这主要影响越南和俄罗斯的一些少数民族语言,如:Udmurt 、Tatar、Bashkir和Mari。

    utf8_unicode_ci的最主要的特色是支持扩展,即当把一个字母看作与其它字母组合相等时。例如,在德语和一些其它语言中‘ß’等于‘ss’。

    utf8_general_ci是一个遗留的 校对规则,不支持扩展。它仅能够在字符之间进行逐个比较。这意味着utf8_general_ci校对规则进行的比较速度很快,但是与使用utf8_unicode_ci的 校对规则相比,比较正确性较差)。

    例如,使用utf8_general_ci和utf8_unicode_ci两种 校对规则下面的比较相等:
    Ä = A
    Ö = O
    Ü = U

    两种校对规则之间的区别是,对于utf8_general_ci下面的等式成立:
    ß = s

    但是,对于utf8_unicode_ci下面等式成立:
    ß = ss

    对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集 校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。

    utf8_general_ci也适用与德语和法语,除了‘ß’等于‘s’,而不是‘ss’之外。如果你的应用能够接受这些,那么应该使用utf8_general_ci,因为它速度快。否则,使用utf8_unicode_ci,因为它比较准确。

Tags: , , ,
PHP+MySql获取新添加记录的ID值

1.假设字段名称为recordID

2.字段属性须设为:auto_increment

3.添加数据后使用

$newID = mysql_insert_id();

得到ID值


ASP获取即时ID值

ASP+Access2000

1.要获取的ID值字段属性必须设为:自动编号(我们假设字段名为recordID)

2.添加记录格式:Rs.Open table,Cn,1,3
注意模式为:1,3

3.newID = rs.Fields("recordID")

4.newID为刚添加的记录的ID值

ASP+SQL Server 2000

1.要获取的ID值字段属性必须设为:自动编号(我们假设字段名为recordID)

2.添加记录代码模式:

Cn.Execute"INSERT INTO table(field1,field2,...) VALUES("field1Value","field2Value",...)"

3.得到ID值

Set Rss = Cn.Execute("SELECT SCOPE_IDENTITY() as newIDValue FROM table")
'Rs.Open sqlStr,Cn,3,1
newID = Rss("newIDValue")

4.newID为刚添加的记录的ID值

5.附上取得ID值的三种方式:

/* 对于想要得到一个表中的最后一个插入操作所产生的ID的最好用IDENT_CURRENT('TBName')*/
INSERT INTO table(field1,field2,...) VALUES("field1Value","field2Value",...) SELECT IDENT_CURRENT('recordID') as newIDValue

/*对于马上使用的刚才插入的新记录ID用SCOPE_IDENTITY()是最合适的*/
INSERT INTO table(field1,field2,...) VALUES("field1Value","field2Value",...) SELECT SCOPE_IDENTITY() as newIDValue

/*对于想要得到一系列的操作中最后得到的那个自增的ID最好用@@IDENTITY*/
INSERT INTO table(field1,field2,...) VALUES("field1Value","field2Value",...) SELECT @@IDENTITY as newIDValue

以上三种方式在SQL Server2000的查询分析器里测试成功,如果要用到网页代码里,请根据上面的例子修改(本人都已测试成功了)
Tags: ,
终于让服务器每天早上备份一次 MySQL 数据库并自动打包,同时删除 5 天前的备份文件. 分享如下.

1. 环境: windows server 2003 + Apache 2.0 + PHP5 + MySQL 4.0.26 .

2. 假设 PHP 安装目录为 D:/php ,MySQL 安装目录为 D:/mysql.

3. 在 D:/php 下建立目录 WinRAR, 把你 winrar 安装目录下的 WinRAR.exe 和 RARReg.KEY 复制到 D:/php/WinRAR .

4. D:/php 下建立文件 mysql_backup.php:

MySQL自动备份脚本(linux) 晴

jed , 2006-12-5 11:10 , 服务器技术 , 评论(0) , 阅读(6453) , Via 本站原创
  之前,有用户向我们提出过疑问:如何才能实现MySQL的自动备份,当时,我们的回复是编一个自动脚本。
     现在我们把这段代码贴出来,希望对各位有所帮助。可以将这个脚本放进crontab,每天凌晨执行一次,自动备份。

  这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。

  代码:

mysql错误代码大全 晴

jed , 2006-12-5 10:50 , 数据库技术 , 评论(1) , 阅读(7602) , Via 本站原创
因为我用的mysql5.0现在还没有使用习惯!所以转了这个东西!希望大家和我一样努力学习!
Mysql错误代码分为两部分,老版本一部分,4.1版本为新的部分


代码:
第一部分:
mysql的出错代码表,根据mysql的头文件mysql/include/mysqld_error.h整理而成

1005:创建表失败
1006:创建数据库失败
1007:数据库已存在,创建数据库失败

MySQL数据库备份与恢复 晴

jed , 2006-12-4 11:33 , 数据库技术 , 评论(0) , 阅读(4890) , Via 本站原创
 mysqldump生成能够移植到其它机器的文本文件,甚至那些有不同硬件结构的机器上。直接拷贝文件不能移植到其它机器上,除非你正在拷贝的表使用MyISAM存储格式。ISAM表只能在相似的硬件结构的机器上拷贝。  
在MySQL 3.23中引入的MyISAM表存储格式解决了该问题,因为该格式是机器无关的,所以直接拷贝文件可以移植到具有不同硬件结构的机器上。只要满足两个条件:另一台机器必须也运行MySQL 3.23或以后版本,而且文件必须以MyISAM格式表示,而不是ISAM格式。
在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理员已经知道表以破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事!  

  备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp、cpio或tar等)。每种方法都有其优缺点:  

  mysqldump与MySQL服务器协同操作。直接拷贝方法在服务器外部进行,并且你必须采取措施保证没有客户正在修改你将拷贝的表。如果你想用文件系统备份来备份数据库,也会发生同样的问题:如果数据库表在文件系统备份过程中被修改,进入备份的表文件主语不一致的状态,而对以后的恢复表将失去意义。文件系统备份与直接拷贝文件的区别是对后者你完全控制了备份过程,这样你能采取措施确保服务器让表不受干扰。  

MySQL 数据库的备份和恢复 晴

jed , 2006-12-4 11:14 , 数据库技术 , 评论(0) , 阅读(4916) , Via 本站原创
本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb,文中设计的 MySQL 版本为 5.0.22。

目前 MySQL 支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。Innodb 所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空闶文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump。

1、mysqldump
1.1 备份
mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。现在来讲一下 mysqldump 的一些主要参数:
分页: 5/6 第一页 上页 1 2 3 4 5 6 下页 最后页 [ 显示模式: 摘要 | 列表 ]