SQL的replace替换 晴

jed , 2007-4-10 09:47 , 数据库技术 , 评论(0) , 阅读(11690) , Via 本站原创
update 表名 set 字段名 =REPLACE(字段名 ,'替换前内容','替换后内容');

操作前,慎重,做好备份
终于让服务器每天早上备份一次 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错误代码大全 晴

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


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

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

MySQL数据库备份与恢复 晴

jed , 2006-12-4 11:33 , 数据库技术 , 评论(0) , 阅读(3747) , 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) , 阅读(3628) , 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 的一些主要参数:
使用MYSQL进行数据库备份,有很正规的数据库备份方法,同其他的数据库服务器有相同的概念,但有没有想过,MySQL会有更简捷的使用文件目录的备份方法,而且又快有好。     

  一、数据备份捷径     

  因为这个方法没有得到官方正式文档的验证,我们暂称为试验吧。     

  目的:备份hostA主机中一个mysql数据库TestA,并恢复到到hostB机中    

  试验环境:     

  操作系统:WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0     

  在hostA中安装mysql数据库并建立TestA数据库    
Tags:
我的操作系统是 Windows XP,无论安装何版本的MySQL,在管理工具的服务中启动MySQL服务时都会在中途报错!内容为:在 本地计算机 无法启动MySQL服务 错误1067:进程意外中止

经过多方求教,得解决方法如下:

查找Windows目录下的my.ini文件,编辑内容(如果没有该文件,则新建一个),至少包含basedir,datadir这两个基本的配置。
[mysqld]
# set basedir to installation path, e.g., c:/mysql
# 设置为MYSQL的安装目录
basedir=D:/www/WebServer/MySQL
# set datadir to location of data directory,
# e.g., c:/mysql/data or d:/mydata/data
# 设置为MYSQL的数据目录
datadir=D:/www/WebServer/MySQL/data

另外,要注意:
[WinMySQLadmin]
Server=D:/www/WebServer/MySQL/bin/mysqld-nt.exe
user=root
password=xxxxxxxx
#以上是设置WinMySQLadmin的配置
[Client]
user=root
password=xxxxxxxx

hehe~  解决了


还有一种可能那就是装了瑞星个人防火墙,这也有可能造成该原因!
Tags:

MySQL字符集及MySQL编码转换 晴

jed , 2006-11-16 11:40 , 数据库技术 , 评论(0) , 阅读(2962) , Via 本站原创
今天找到这篇文章,里面提到从latin1到UTF8的MySQL编码转换。收藏一下,最近要将所有的数据库都转一次,一直错误的使用latin1,再不转以后麻烦大了。

出处:未知

个人建议,数据库字符集尽量使用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.写数据
通过php直接插入数据:


<?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"));
?>



通过页面提交插入数据:


<?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);
}
?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<form action="" method="post">
<input type="text" name="name" value="">
<input type="submit" value='submit'>
</form>



自此,使用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
大功告成!

引用:http://www.21andy.com/blog/20060514/297.html

Tags: , , ,

mysql 自动备份小程序 阴

jed , 2006-11-10 15:40 , 数据库技术 , 评论(0) , 阅读(3321) , Via 本站原创
服务器MYSQL的备份问题,一直是一个大难题,随着数据量的增大,手动备份越来越麻烦,于是写了个小程序,来实现MYSQL自动备份。使用方法:
将下面的代码在一个bat文件,设置一下计划任务每天执行。
同时里面的路径也要改一下的。
SET bkupdir=c:是设置备份文件存储目录。
mysqldir=D:\usr\local\mysql4 是mysql安装路径
SET dbname=dedev3     数据库名
SET dbuser=root       用户名
SET dbpassword=123    用户密码
SET CharacterSet=ujis 字符集

*****************代码开始****************

for /f "Tokens=1 Delims=/ " %%i in ('date /t') do set dt=%%i
for /f "Tokens=1" %%i in ('time /t') do set tm=%%i
set tm=%dt%
SET bkupdir=c:
SET mysqldir=D:\usr\local\mysql4

path D:\usr\local\mysql4\bin

SET dbname=dedev3
SET dbuser=root
SET dbpassword=123
SET CharacterSet=ujis

@ECHO Beginning backup of %dbname%...

mysqldump -u %dbuser% -p%dbpassword% %dbname% --add-drop-table --complete-insert --opt>%bkupdir%\%dbname%-%tm%.sql
@ECHO Done! New File: %bkupdir%\%dbname%-%tm%.sql
pause

*******************代码结束*****************

注意:代码只是*以内的,不包括*.

另外附上还原代码,大家可根据自己的实际情况,适当修改一下即可。

****************代码开始***************

@ECHO Beginning backup of 1234...
D:\usr\local\mysql4\bin\mysql -u root -p123 1234@ECHO Done! New File:C:\456.sql
pause

****************代码结束***************

欢迎大家与我来讨论mysql备份还原问题,你有好的建议,请回复告知!


提出问题:

   如果用惯了MySql之类,开始时一定会对Sql Server用的很不习惯,特别是对于数据库和WEB没有分离的中小型服务器,不管你的站访问量大不大,运行几天后都会发现,Sql Server几乎占用了所有内存。
分页: 5/6 第一页 上页 1 2 3 4 5 6 下页 最后页 [ 显示模式: 摘要 | 列表 ]