将mysql4.x gb2312 数据库导入到 mysql5.x

经过尝试,原mysql4.x数据库字符集为GB2312,保持GB2312不转换为UTF-8,导出并导入到mysql5.x的步骤如下:
1.导出数据:
/usr/bin/mysqldump -u root --socket=/data/answer/mysql.sock answer > `date +'%Y_%m_%d'`answer.sql
导出文件命名为当天日期+数据库名.sql

2.编辑xxx.sql文件,在头几行可以找到:
/*!40101 SET NAMES utf8 */;
更改为:
/*!40101 SET NAMES GB2312 */;

3.启动mysql5的参数增加--default-character-set=gb2312,如下脚本:
#!/bin/sh
cd /mysqldata/bk.17173.com
rundir=`dirname "$0"`
echo "$rundir"
/usr/local/mysql/bin/safe_mysqld --default-character-set=gb2312 --user=mysql --skip-name-resolve --skip-innodb --skip-locking --pid-file="$rundir"/mysql.pid --datadir="$rundir" -O log-slow-queries=slow_query.txt -O back_log=500 -O interactive_timeout=60  -O max_connections=6400 -O record_buffer=16M -O max_connect_errors=1000 -O sort_buffer_size=128M -O sort_buffer=128M -O table_cache=256M -O thread_cache_size=80 -O wait_timeout=30 -O query_cache_size=64M -O key_buffer_size=128M  -O key_buffer=128M --port=3308 -O myisam_sort_buffer_size=128M --socket="$rundir"/mysql.sock &

4.登陆mysql,然后执行:
set character_set_client=gb2312;
set character_set_connection=gb2312;
set character_set_database=gb2312;
set character_set_results=gb2312;
set character_set_server=gb2312;

5.导入数据库:
source xxx.sql;

Posted by microsea


Trackback URL : 无法向此文章发送引用

Comments List

  1. 秘密访客 2008/January/05-13:35 # M/D Reply

    只有管理员能看到的回复.

  2. live audio streamin 2008/May/23-03:27 # M/D Reply

    나는 합의한다 너에 이다. 그것은 이렇게 이다.

  3. greensboro ywca 2008/May/23-03:57 # M/D Reply

    여기 이것은 뉴스 있다!

  4. charity hodges amaz 2008/May/23-04:29 # M/D Reply

    너는 위치를차가운 만들었다!

  5. high heels nylon fe 2008/May/23-06:05 # M/D Reply

    걸출한 뉴스!! 종류 블로그!

  6. red headed slut sho 2008/May/23-06:51 # M/D Reply

    여기 이것은 뉴스 있다!

  7. pamela anderson pre 2008/May/23-23:09 # M/D Reply

    너는 위치가 우수한 있는다!

  8. hairy skinny nudes 2008/May/23-23:13 # M/D Reply

    블로그를 위한 감사합니다.

  9. drink recipe for pa 2008/May/23-23:30 # M/D Reply

    걸출한 뉴스!! 종류 블로그!

Leave a comment

不同版本mysql并存实例

当不同版本MYSQL在同一台服务器上运行时需要注意的:
1.不同版本库的数据存放目录要独立
2.各自配置文件要独立
3.执行命令要指定各自版本的具体路径
4.日志文件要明确指定
实例步骤:
1. 首先将不同版本MYSQL安装在不同目录下:
MYSQL 4.0.20 安装目录为: /usr/local/mysql4020
MYSQL 5.0.22安装目录为: /usr/local/mysql5022

more..

Posted by microsea


Trackback URL : http://www.givingtree.com.cn/trackback/347

Leave a comment

MYSQL replication/cluster links

howtoForge linux HA refs:
part. MySQL

How To Set Up A Load-Balanced MySQL Cluster

How To Set Up Database Replication In MySQL

http://kb.discuz.net/index.php?title=MySQL-Cluster%E9%9B%86%E7%BE%A4%E7%A0%94%E7%A9%B6

http://flutey.3322.org/node/81

http://blog.chinaunix.net/u/5591/showart_306240.html

Posted by microsea


Trackback URL : 无法向此文章发送引用

Leave a comment

关于MYSQL的性能调整,下面的文章提供了不错的建议.

What to tune in MySQL Server after installation

more..

Posted by microsea


Trackback URL : 无法向此文章发送引用

Leave a comment

MYSQL 优化

MYSQL优化文档,值得好好学习一下

Posted by microsea


Trackback URL : 无法向此文章发送引用

Leave a comment

MYSQL的一些TIPS(有发现就有增加)

清空整个表的数据:
truncate table  <表名>
truncate table命令将快速删除数据表中的所有记录,但保留数据表结构。这种快速删除与delete from 数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可以恢复的。

将Auto_increment 的重置



TRUNCATE TABLE table_name



列出当前数据库正在处理的sql语句




/usr/local/mysql/bin/mysqladmin -u root -p processlist -S /home/mysqldata/mysql.sock

查看服务器状态

你可以通过运行SHOW STATUS命令获得一份服务器运行与统计的报告,包括打开连接的次数,激活查询次数,服务器正常运行时间等等。例如:

mysql> SHOW STATUS;

+-----------------------------------+----------+

| Variable_name                               | Value    |

+-----------------------------------+----------+

| Aborted_clients                                | 2        |

| Aborted_connects                            | 5        |

| Connections                                   | 20       |

...

| Uptime                                           | 5674     |

+-----------------------------------+----------+

249 rows in set (0.01 sec)



压缩一定的表格类型

more..

Posted by microsea


Trackback URL : 无法向此文章发送引用

Leave a comment

使用perl的相关函数可以方便地将MYSQL的数据导出到excel表格中.

在实际应用还是非常方便的,比如经常碰到一些数据需要在离线状态使用,这样导出到excel后就很方便使用了.



本程序在前人的基础上调试的,修正了一些错误,在perl5环境测试成功.

程序使用的相关perl函数对应的库文件如下:

Unicode::Map

http://cpan.linuxforum.net/authors/id/M/MS/MSCHWARTZ/Unicode-Map-0.112.tar.gz

Spreadsheet::WriteExcel::Big

http://cpan.linuxforum.net/authors/id/J/JM/JMCNAMARA/Spreadsheet-WriteExcel-2.17.tar.gz

OLE::Storage_lite

http://cpan.linuxforum.net/authors/id/J/JM/JMCNAMARA/OLE-Storage_Lite-0.14.tar.gz



程序代码如下:

more..

Posted by microsea


Trackback URL : 无法向此文章发送引用

Leave a comment

mysql复制表和表结构

一、CREATE TABLE 方法

整表复制 # create table 新表 select * from 旧表;

结构复制 # create table 新表 select * from 旧表 where 1<>1;

二、INSERT INTO 方法

得到建表语句 # show create table 旧表;

新建表

复制数据到新表 # insert into 新表 select * from 旧表;

Posted by microsea


Trackback URL : 无法向此文章发送引用

Leave a comment

MySQL数据库的优化经验(转载)

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

http://www.chedong.com/tech/mysql.html

内容摘要:使用MySQL服务的一些经验,主要从以下几个方面考虑的MySQL服务规划设计。对于高负载站点来说PHP和MySQL运行在一起(或者说任何应用和数据库运行在一起的规划)都是性能最大的瓶颈,这样的设计有如让人一手画圆一手画方,这样2个人的工作效率肯定不如让一个人专门画圆一个人专门画方效率高,让应用和数据库都跑在一台高性能服务器上说不定还不如跑在2台普通服务器上快。

more..

Posted by microsea


Trackback URL : 无法向此文章发送引用

Comments List

  1. hello kitty luggage 2008/May/23-03:38 # M/D Reply

    우수한과 아주 도움이 되는!

  2. girl cleavage 2008/May/23-04:12 # M/D Reply

    우수한과 아주 도움이 되는!

  3. watch porn free onl 2008/May/23-04:43 # M/D Reply

    나는 합의한다 너에 이다. 그것은 이렇게 이다.

  4. softcore lesbian ki 2008/May/23-05:57 # M/D Reply

    우수한 위치! 많은 감사.

  5. pictures of young n 2008/May/23-05:59 # M/D Reply

    걸출한 위치! 많은 감사.

  6. cartoons hentai 2008/May/23-06:39 # M/D Reply

    나의 너의 친구는 위치의 현재 팬이 되었다!

  7. dicks in fur 2008/May/23-06:54 # M/D Reply

    친구는 위치의 너의 현재 팬이 되었다!

Leave a comment

MYSQL数据库导出数据脚本:

[CODE] for x in `mysql -Bse show databases`; do

mysqldump $x | gzip -9 > /var/spool/mysqldump/$x.`date +$Y%m%d`.gz done[/CODE]

具体指令路径和备份位置根据情况修改.

当导出的数据非常大的时候,要从库里面恢复某张表就相对困难很多,比较费时的办法是将库导到另一个新库中,然后shutdown mysql,将数据目录下某张表的相关文件复制到原库下,达到恢复目的.下面用一个perl脚本来实现在线的从导出文件(.sql)恢复单张表,免去建临时库,down mysql,删临时库的目的.

编辑extract-table.pl脚本:



[CODE]

#!/usr/bin/perl -wn

BEGIN { $table =  shift @ARGV };

while(<>)  {

print if /^CREATE TABLE .$table./io .. /^DROP TABLE/io;

}

[/CODE]

注:修正一下原文脚本的错误.



例如要从压缩的导出文件mydatabase库中恢复notes表,可以执行:



#zcat /var/spool/mysqldump/mydatabase.20060516.gz | extract-table.pl notes|grep -v "DROP TABLE" >~/notes.dump

生成notes表的备份数据.

然后进行恢复:

#mysql mydatabase -e "drop table notes"               #清除notes表.

#mysql mydatabase < ~/notes.dump

Posted by microsea


Trackback URL : 无法向此文章发送引用

Leave a comment

MYSQL基本指令格式(参考)

create database tbl;  #建库

create table tbl (idx integer(3), UserName varchar(30), LastName varchar(50), FreeText varchar(100));       #建表

show columns from tbl;  #显示行

insert into tbl values (1,'Rafi','Ton','Just a test');  #插入数据,默认顺序.

insert into tbl (idx,UserName,LastName,FreeText) values (1,'Rafi','Ton','Just a test');

delete from tbl where idx=1 limit 1;   #删除

update tbl set UserName='Berber' where UserName='Rafi'; #更新





跳过权限验证参数: --skip-grant-tables



./mysqladmin -uroot -p123456 password 456789

其中 用户名: root 原来密码: 123456 新密码: 456789



grant all privileges on bbs.* to bbs@localhost identified by 'password';  #添加权限



use mysql

update user set Password=password('newpassword') where User='root';

flush privileges;


Posted by microsea


Trackback URL : 无法向此文章发送引用

Leave a comment

MySQL授权指南(转)

前提:先用mysql.exe等工具进入

mysql>

状态

%是无论什么ip都可以登陆。localhost是只能在mysql的本机登陆。

授权表使用举例

grant用于给增加用户和创建权限,revoke用于删除用户权限。

下面是一些用grant增加用户和创建权限的例子:

mysql> grant all privileges on *.* to test@localhost identified by 'test' with grant option;

这句增加一个本地具有所有权限的test用户(超级用户),密码是test。ON子句中的*.*意味着"所有数据库、所有表"。with grant option表示它具有grant权限。

mysql> grant select,insert,update,delete,create,drop privileges on test.* to test1@'192.168.1.0/255.255.255.0' identified by 'test';

这句是增加了一个test1用户,口令是test,但是它只能从C类子网192.168.1连接,对test库有select,insert,update,delete,create,drop操作权限。

用grant语句创建权限是不需要再手工刷新授权表的,因为它已经自动刷新了。

给用户创建权限还可以通过直接修改授权表:

mysql> insert into user values("localhost","test",password("test"),"Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y","Y");

mysql> flush privileges;

这两句和上面第一句grant的效果是一样的,也是增加了一个本地的test超级用户。我们看到用grant方便多了,而且还不需flush privileges



mysql> insert into user (host,user,password) values("192.168.1.0/255.255.255.0","test1",PASSWORD("test"));

mysql> insert into db values("192.168.1.0/255.255.255.0","test","test1","Y","Y","Y","Y","Y","Y","N","N","N","N")

mysql> flush privileges;

这三句和上面第二句grant的效果也是一样的,也是增加了一个只能从C类子网192.168.1连接,对test库有select,insert,update,delete,create,drop操作权限的test1用户,口令是test。要取消一个用户的权限,使用revoke语句。revoke的语法非常类似于grant语句,除了to用from取代并且没有identified by和with grant

option子句,下面是用revoke删除用户权限的例子:

mysql> revoke all on test.* from test1@'192.168.1.0/255.255.255.0';

这句revoke就撤消了上面第二句grant创建的权限,但是test1用户并没有被删除,必须手工从user表删除:

mysql> delete from user where user='test1';

mysql> flush privileges;

这样,test1用户就彻底删除了。

这些只是MySQL授权表的简单使用,更多详细的资料请见MySQL提供的手册。

Posted by microsea


Trackback URL : 无法向此文章发送引用

Comments List

  1. door edge trim 2008/May/23-03:30 # M/D Reply

    이 위치는 아니라 유익한뿐 재미있는다!

  2. cartoon xxx videos 2008/May/23-03:53 # M/D Reply

    걸출한 디자인! 좋은 디자인.

  3. los angeles indepen 2008/May/23-04:34 # M/D Reply

    우수한 위치! 많은 감사.

  4. chinese juicy pussy 2008/May/23-05:00 # M/D Reply

    걸출한 위치! 많은 감사.

  5. rockman amp 2008/May/23-06:11 # M/D Reply

    나는 합의한다 너에 이다. 그것은 이렇게 이다.

  6. adult night surf 2008/May/23-06:34 # M/D Reply

    여보세요, 좋은 아주 위치!

Leave a comment

MYSQL出错代码列表

10有89是出这个代码表的错,给点提示你就灿烂了



1005:创建表失败

1006:创建数据库失败

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

more..

Posted by microsea


Trackback URL : 无法向此文章发送引用

Leave a comment

快速修复mysql数据库

有的时候因为掉电或者其他原因导致数据库损坏,我们可以使用mysql自带的mysqlcheck命令来快速修复所有的数据库或者特定的数据库;例如

检查优化并修复所有的数据库用:

# mysqlcheck -A -o -r -p

Enter password:

database1 OK

database2 OK

----------

修复指定的数据库用

# mysqlcheck -A -o -r Database_NAME -p

即可

另外如果只是对某个表进行修复可以用:myisamchk或isamchk

其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:

myisamchk tablename.MYI

进行检测,如果需要修复的话,可以使用:

myisamchk -of tablename.MYI

关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。

另外可以把下面的命令放在你的rc.local里面启动MySQL服务器前:

[ -x /tmp/mysql.sock ] && /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI

其中的/tmp/mysql.sock是MySQL监听的Sock文件位置,对于使用RPM安装的用户应该是/var/lib/mysql/mysql.sock,对于使用源码安装则是/tmp/mysql.sock可以根据自己的实际情况进行变更,而pathtochk则是myisamchk所在的位置,DATA_DIR是你的MySQL数据库存放的位置。




Posted by microsea


Trackback URL : 无法向此文章发送引用

Leave a comment

BlogImage

Microsea,Fiona & Owen's family BLOG

- microsea

Statistics Graph

Calendar

«   Mar 2010   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

闽ICP备06003076号