mysql中文乱码

1.在mysql client指定字符编码

mysql -hhostname -uxxx -pxxx -P3006 -Ddatabasename --default-character-set=utf8 -e


2.在load data时指定字符编码

sql="load data local infile '${output_file}' into table ${mysql_table} CHARACTER SET utf8"

脚本实例:
创建一个连接mysql的文件,指定连接使用的编码方式default-character-set=utf8
/etc/bi/mysqlexe_utf8
文件内容:
mysql -hhostname -uxxx -pxxx -P3006 -Ddatabasename --default-character-set=utf8 -e

脚本内容:

#!/bin/bash
export.UTF-8
EXE_DATE=`date -d "-1 day" +%Y-%m-%d`
[ "$#" -ne 0 ] && EXE_DATE=$1

current_bin_path="`dirname "$0"`"
output_file="${current_bin_path}/aaa.tmp"
mysql_table="db.table"
EXE_SQL="`cat /etc/bi/mysqlexe_utf8 ` "


生成内容到文件    >  ${output_file}

#load 文件到mysql
sql="load data local infile '${output_file}' into table ${mysql_table} CHARACTER SET utf8"
echo "${sql}"
${EXE_SQL} "${sql}"


上面说的是连接时候的处理,下面是在建立数据库和表的时候指定utf8

1、创建数据库的时候:CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
2、建表的时候 CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

你可能感兴趣的:(mysql中文乱码)