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) , 阅读(6369) , 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格式了,修改连接字符编码再将本地的数据导到远程的。
这样就实现了数据库字符编码的转换工作,而且相当的安全。

MySQL数据库字符编码集合 不指定

jed , 2008-5-15 07:26 , 数据库技术 , 评论(0) , 阅读(4831) , Via 本站原创
MySQL数据库字符集的默认配置:

       在mysql的配置文件中把默认的字符集改成utf8,这样创建数据库和表的时候,默认的字符集就是utf8。

MySQL的几个变量:

当一个 PHP 程序与 MySQL 建立连接后,这个程序发送给 MySQL 的数据采用的是什么字符集?mysql如何检测并判断使用何种字符集?要注意以下几个变量:

      character_set_server:这是设置服务器使用的字符集
     character_set_database:这是设置数据库使用的字符集
      character_set_client :这是设置客户端发送Query串使用的字符集
      character_set_connection :这是设置服务器需要将收到的查询串转换成的字符集
      character_set_results :这是设置服务器要将结果数据转换到的字符集,转换后才发送给客户端

因为配置文件设置的 default_character_set 是 utf8,数据表默认采用的就是 utf-8 建立的。这也应该是所有采用 MySQL 4.1 的主机提供商应该采用的配置。所以我们要保证的只是客户端与 MySQL 交互之间指定编码的正确。
这只有两种可能,客户端以 gb2312 格式发送数据,或者以 utf-8 格式发送数据。
如果以 gb2312 格式发送:
SET character_set_client='gb2312'
SET character_set_connection='utf8' 或者
SET character_set_connection='gb2312'
都是可以的,都能够保证数据在编码转换中不出现丢失,也就是保证存储入数据库的是正确的内容。
怎么保证取出的是正确的内容呢?考虑到绝大部分客户端 (包括 WP),发送数据的编码也就是它所希望收到数据的编码,所以:
SET character_set_results='gb2312'
可以保证取出给浏览器显示的格式就是 gb2312。不过这样的缺点是不论是插入、更新、删除还是查询操作,只要是操纵数据库,都要先执行SET NAMES "gb2312",这样才能保证插入和显示的正确性。如果插入操作前没有执行这条语句,仅在查询时执行该语句,则仍然无法保证显示的正确性。
如果是第二种情况,客户端以 utf-8 格式发送 (WP 的默认情况),可以采用下述配置:
SET character_set_client='utf8'
SET character_set_connection='utf8'
SET character_set_results='utf8'
这个配置就等价于 SET NAMES ‘utf8′。
一直对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: , , ,
建表时先加上default charset=utf8;

插入中文数据之前(Mysql命令提示符下)是用set names gb2312;

在php页面中设置是mysql_query('SET NAMES UTF8');

在php页面(已设定为utf8后)中插入中文数据不会出现乱码,应该插入数据库的时候就是以utf8字符集插入中文数据的故不会出现问题!

在php页面前面不要忘了加上header('content-type;text/html;charset=utf-8');

大家在MySQL命令提示符下想查看数据,中文数据有可能是如下 '?????'

所以大家想查看到正确的中文要与插入中文数据一样使用set names gb2312;
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_fetch_object,mysql_fetch_array,mysql_fetch_row有什么区别?同样是取数据,它们的区别在那里呢?

object mysql_fetch_object ( resource result )

返回根据所取得的行生成的对象,如果没有更多行则返回 FALSE。

这个返回的是一个对象

示例

<?php
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select `user_id`,`fullname` from mytable");
while ($row = mysql_fetch_object($result)) {
   echo $row->user_id;
   echo $row->fullname;
}
mysql_free_result($result);
?>

mysql_fetch_row -- 从结果集中取得一行作为枚举数组
这个返回的是一个数字索引的数组 例子

<?php
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select `user_id`,`fullname` from mytable");
while ($row = mysql_fetch_row($result)) {
   echo $row[0];
   echo $row[1];
}
mysql_free_result($result);
?>


mysql_fetch_array --  从结果集中取得一行作为关联数组,或数字数组,或二者兼有
array mysql_fetch_array ( resource result [, int result_type] )
mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。本特性是 PHP 3.0.7 起新加的。本参数的默认值是 MYSQL_BOTH。

返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。


<?php
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select `user_id`,`fullname` from mytable");
while ($row = mysql_fetch_array($result,MYSQL_BOTH)) {
   echo $row[0];
   echo $row['user_id'];
   echo $row[1];
   echo $row['fullname'];
}
mysql_free_result($result);
?>
Tags:
注册总是失败,sql语句也运行了,可就是不能向数据库中插入数据。后来发现,原来在程序中链接了多个数据库,在sql语句后面习惯性的没有加指定的数据库链接,所以造成了,数据库中无法插入数据。

数据库链接代码(链接多个数据库)
Tags:


$conn1 = mysql_connect("xxxxx", "xxx", "xx");
mysql_select_db("xxxxx", $conn1);
$conn2 = mysql_connect("yyyyy", "yyy", "yy");
mysql_select_db("yyyy", $conn2);

$sql = "select ....";
$result = mysql_query($sql, $conn1);
$sql = "up...";
mysql_query($sql, $conn2);

分页: 4/6 第一页 上页 1 2 3 4 5 6 下页 最后页 [ 显示模式: 摘要 | 列表 ]