记录和数据库相关的内容

mysqldump备份blob类型内容 不指定

babo , 2011/03/30 11:36 , 数据库 , 评论(0) , 阅读(1079) , Via 本站原创

用mysqldump备份出数据库内容到SQL文件。当我们数据库表有blob类型字段的时候,这个导出的SQL再导入的时候就会因为blob字段内容乱码等原因,不能顺利导入了。

解决办法:

在用mysqldump备份的时候,采用--hex-blob参数,这样备份出来的sql文件,就可以顺利导入了。

mysqldump解决中文乱码问题 不指定

babo , 2011/03/14 16:38 , 数据库 , 评论(0) , 阅读(48887) , Via 本站原创

我的数据库采用编码如下:

mysql> show variables like 'coll%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
 

mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
 

数据库的编码采用utf8

开始用mysqldump出来的都是乱码。后来采用 --default-character-set=gbk参数,然后再用iconv转码为utf8就解决了问题。

下面是我的数据库备份脚本

复制内容到剪贴板
  1. #!/bin/sh   
  2. #####configurate#######   
  3. rq=`date +%Y%m%d%N`   
  4. user="user"  
  5. password="password"  
  6. rm -rf /var/lib/mysql/mysql-bin.*   
  7. mysqldump -u$user -p$password --default-character-set=gbk --single-transaction --flush-logs --master-data=2 mydatabase>/home/ict/mysql_backup/database$rq.sql   

导出后转码

iconv -t utf-8 -f gbk -c database.sql>databaseutf8.sql

这样已经可以看到正确的中文了。

导入

在windows下,如果采用HeidiSQL打开SQL文件,可以正确看到中文,但是导入后还是乱码。

解决办法,采用记事本打开,选择另存为,编码选择ANSI。然后再用HeidiSQL工具打开导入即可。

Mysql设置不区分表名大小写 不指定

babo , 2011/01/13 22:47 , 数据库 , 评论(0) , 阅读(52685) , Via 本站原创

今天遇到个问题,有个程序从Windows导入到Linux的时候,表格全部小写了。但程序里很多DAO全是大写调用。

Linux默认安装的Mysql是表名区分大小写的。

这个设置主要是在/etc/my.cnf里面的[mysqld]段,加入如下设置项

lower_case_table_names = 1
 

如果设置为0,就是区分大小写。设置为1就是不区分了。

以前一直使用Navicat客户端,功能确实强大。不过这个客户端是收费的商业软件。

最近发现有一款HeidiSQL的开源软件,也可以很好的管理MySQL。使用后,发现很不错。这里推荐下

官方介绍:

What's this?

HeidiSQL is an easy-to-use interface and a "working-horse" for web-developers using the popular MySQL-Database. It allows you to manage and browse your databases and tables from an intuitive Windows® interface.

放一张官方截图

最近在整理服务器的时候,发现mysql的查询日志文件占用了很多空间。这个查询日志文件部分内容如下,随着查询增加,会越来越大

复制内容到剪贴板
  1. Tcp port: 3306 Unix socket: /tmp/mysql.sock
  2. Time Id Command Argument
  3. 100404 8:36:49 1 Connect zzz@localhost on
  4. 1 Init DB zzz
  5. 1 Query SET NAMES 'utf8'
  6. 1 Query SELECT * FROM `boblog_counter` LIMIT 0,1
  7. 1 Query SELECT `blogid`,`pubtime`,`edittime`,`blogalias` FROM `boblog_blogs` WHERE `property`<2 ORDER BY `pubtime`DESC LIMIT 0, 1500
  8. 1 Quit
  9. 100404 8:38:01 2 Connect admin@localhost on
  10. 2 Init DB zzz
  11. 2 Query SET NAMES 'utf8'
  12. 2 Query SET sql_mode=''
  13. 2 Query SELECT * FROM `cmseasy_settings` WHERE `tag`='table-fieldset' ORDER BY 1 DESC limit 1
  14. 2 Init DB zzz
  15. 2 Query SET NAMES 'utf8'
  16. 2 Query SET sql_mode=''
  17. 2 Query SELECT * FROM `cmseasy_user` WHERE userid>0 ORDER BY 1 DESC limit 1
  18. 2 Init DB zzz
  19. 2 Query SET NAMES 'utf8'
  20. 2 Query SET sql_mode=''
  21. 2 Query SELECT count(typeid) as rec_sum FROM `cmseasy_type`
  22. 2 Query SELECT * FROM `cmseasy_type` ORDER BY `order`,1 limit 1000
  23. 2 Init DB zzz
  24. 2 Query SET NAMES 'utf8'
  25. 2 Query SET sql_mode=''
  26. 2 Query SELECT count(1) as rec_sum FROM `cmseasy_friendlink` WHERE state>0 and linktype=1
  27. 2 Query SELECT * FROM `cmseasy_friendlink` WHERE state>0 and linktype=1 ORDER BY listorder asc,id limit 20
  28. 2 Init DB zzz
  29. 2 Query SET NAMES 'utf8'
  30. 2 Query SET sql_mode=''
  31. 2 Query SELECT count(1) as rec_sum FROM `cmseasy_friendlink` WHERE state>0 and linktype=1
  32. 2 Query SELECT * FROM `cmseasy_friendlink` WHERE state>0 and linktype=1 ORDER BY listorder asc,id limit 20
  33. 2 Init DB zzz
  34. 2 Query SET NAMES 'utf8'
  35. 2 Query SET sql_mode=''
  36. 2 Query SELECT * FROM `cmseasy_templatetag` WHERE name='å~E¬å~O¸ç®~@ä»~K' ORDER BY 1 DESC limit 1
  37. 2 Init DB zzz
  38. 2 Query SET NAMES 'utf8'
  39. 2 Query SET sql_mode=''
  40. 2 Query Describe cmseasy_archive
  41. 2 Query SELECT count(1) as rec_sum FROM `cmseasy_archive` WHERE typeid in (2) and checked=1 and (state IS NULL or state<>'-1')
  42. 2 Query SELECT * FROM `cmseasy_archive` WHERE typeid in (2) and checked=1 and (state IS NULL or state<>'-1') ORDER BY aid desc limit 4

其实记录的都是mysql执行的一些select语句,对于正常运行的服务器,我觉得基本没有必要保留这些日志。

Tags: , ,
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]