python的代码:
# -*- coding: utf-8 -*-
import pymysql
from datetime import datetime
。。。。。。
sql = "insert into employee(first_name, last_name, age, sex, income, create_time) values('%s', '%s', %d, '%c', %d, '%s')" % ('四', '李', 21, 'F', 100000, datetime.now())
。。。。
运行后出现fail to insert record into table,后来发现是MySQL的默认编码是Latin1,要支持中文,需要换编码格式utf8。解决方案:
方案1:
创建数据库的时候在后面直接定义好编码格式
sql = '''create table employee(
first_name char(20) not null,
last_name char(20),
age int,
sex char(1),
income float,
create_time datetime)
engine=innodb default charset=utf8;'''
方案2:
我是在windows本地装的mysql,所以在my.ini文件上进行配置:
[client]
port = 3306
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
server-id=1
basedir=F:\\work\\mysql-5.7.11-winx64
datadir=F:\\work\\mysql-5.7.11-winx64\\data
port = 3306
#字符集设置
character-set-server=utf8
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
#二进制日志设置
#log-bin=F:\\work\\mysql-5.7.11-winx64\\log\\binlogdir\\binlog
#expire_logs_days=10
#max_binlog_size=100M
#binlog-do-db=company
#binlog-ignore-db=mysql
#错误日志设置
log-error=F:\\work\\mysql-5.7.11-winx64\\log\\errlogdir\\errlog
#通用查询日志设置
#log-output=FILE
#general-log=1
#general_log_file=F:\\work\\mysql-5.7.11-winx64\\log\\logdir\\generallog
#设置慢查询日志
#slow_query_log=on
#slow_query_log_file=F:\\work\\mysql-5.7.11-winx64\\log\\slowlogdir\\slowlog
#阈值默认为10秒
#long_query_time=10
我最终把两种方案都同时改进了,问题解决