Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6271235
  • 博文数量: 2759
  • 博客积分: 1021
  • 博客等级: 中士
  • 技术积分: 4091
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-11 14:14
文章分类

全部博文(2759)

文章存档

2019年(1)

2017年(84)

2016年(196)

2015年(204)

2014年(636)

2013年(1176)

2012年(463)

分类: Mysql/postgreSQL

2013-07-20 00:12:17

原文地址:使用mysql的随笔 作者:不黑的夜

    防止登录mysql后读出的数据乱码,可在mysql(5.5以前的版本)的配置文件/etc/mysql/my.cnf文件中[client]下添加default-character-set=utf8   
 在 [mysqld]下添加default-character-s 在mysql(5.5的版本以及以后版本)的配置文件/etc/mysql/my.cnf文件中加入[ mysqld]下添加的应该为:
character-set-server=utf8    collation-server=utf8_general_ci5.5以后的版本对字符编码方式的修改,与原来在[mysqld]下的修改已经发生了变化, 如果在5.5版本中用default-character-set=utf8,来修改的话,你的mysql启动时显示 start: Job failed to start;

    设置字符编码这条语句要加在你创建数据库之前,这样就会改变整个数据库 的编码。 在c程序中调用mysql API来读取表中的汉字时会乱码,所以,要在执行mysql_real_query(MYSQL *mysql, const char *query, unsigned long length)语句之前加 上 mysql_query(&mysql, “set names 'utf8'”); 
    
     比如将以个a.txt文本文件添加到mysql的一个表test中,首先将a.txt拷贝到与你创建 的数据库同一目录下(/var/lib/mysql/),并且改变其权限(必须改为满权限,不然会出现文件无法找到的错误),然后,进入mysql,再执行 load data infile '/var/lib/mysql/a.txt' into table test fields terminated by '#'; 这样就可以导入数据了。
    
    接下来要说的load命令是怎样来判断你的多少个数据为一个元组数据?字段之间的分隔和记录(行)之间的分隔默认是\t(即Tab)和\n。但可以改变,如:
FIELDS TERMINATED BY ',' --字段用 , 进行分隔 ;
  FIELDS TERMINATED BY '  ' --记录用空格 进行分隔 ;
FIELDS TERMINATED BY ‘#’--记录用#进行分隔 ;
    注意:当有多个分隔符连在一起时,那么除了第一个分隔符被识别为分隔符外,后面的分隔符将被置为0或NULL,比如,(3#4###).它导入数据库后,是3 4 0 0(表中的字符属性为int);另外要注意其它操作系统的换行符与windows可能不相同。 

    清空mysql表的内容 truncate table table_name;

    

ubuntu 找不到mysql.h:

安装此软件开发包;

点击(此处)折叠或打开

  1. sudo apt-get install libmysqlclient-dev   
         然后在/usr/include/mysql里可以找到mysql.h             
        编译的时候 gcc xx.c -o xx -L /usr/include/mysql -l mysqlclient



阅读(414) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~