pymysql 数据库字符报错以及外网连接权限问题
2017-05-24 13:43
323 查看
操作系统:Ubuntu
第一个问题:pymysql数据库字符报错
用python 做网络爬虫 需要保存数据到数据库的时候 如果包含中文的话就会报错 UnicodeEncodeError:
'latin-1' codec can't encode characters
查看 pymysql 源码文件connections.py 时发现
第105行代码: DEFAULT_CHARSET = 'latin1'
组件默认是latin1编码,而latin1对汉字的支持不太友好;
在529行: 对 Connection类进行初始化的,默认了charset=' ';
在668行 :对charset 进行判断 若charset为true取charset值,若为false则取 DEFAULT_CHARSET值;
所以 在529行进行初始化的时候 将charset值改为‘utf8’
第二个问题:外网数据库连接权限
连接工具:navicat for mysql;
在user表里面 已经添加root账户host为%好之后还是连接失败
解决方法:在/etc/mysql/my.cnf文件中 将bind-address=127.0.0.1改为0.0.0.0
这里绑定了本地ip,改为0.0.0.0 后 所有ip都可以访问
注意:
若user表中没有%的host 账户的话 还是不能访问的,若想要外网访问的话缺一不可,当然这里不一定非得%或者0.0.0.0,也可以指定ip地址
第一个问题:pymysql数据库字符报错
用python 做网络爬虫 需要保存数据到数据库的时候 如果包含中文的话就会报错 UnicodeEncodeError:
'latin-1' codec can't encode characters
查看 pymysql 源码文件connections.py 时发现
第105行代码: DEFAULT_CHARSET = 'latin1'
组件默认是latin1编码,而latin1对汉字的支持不太友好;
在529行: 对 Connection类进行初始化的,默认了charset=' ';
在668行 :对charset 进行判断 若charset为true取charset值,若为false则取 DEFAULT_CHARSET值;
所以 在529行进行初始化的时候 将charset值改为‘utf8’
第二个问题:外网数据库连接权限
连接工具:navicat for mysql;
在user表里面 已经添加root账户host为%好之后还是连接失败
解决方法:在/etc/mysql/my.cnf文件中 将bind-address=127.0.0.1改为0.0.0.0
这里绑定了本地ip,改为0.0.0.0 后 所有ip都可以访问
注意:
若user表中没有%的host 账户的话 还是不能访问的,若想要外网访问的话缺一不可,当然这里不一定非得%或者0.0.0.0,也可以指定ip地址
相关文章推荐
- Python3出现“No module named 'MySQLdb'“问题-以及使用PyMySQL连接数据库
- s3c2410 linux 与主机telnet连接缓慢 以及ping通外网中遇到的问题
- 对webconfig文件中的数据库连接字符串加密,解密以及常见问题解决方案[打不开 RSA 密钥容器]
- PL/sql developer连接数据库的问题以及oracle数据库中文乱码的问题
- 关于PB打印PDF的问题整理,以及PB采用ole db连接asa数据库的方法
- Java程序连接数据库(mysql,sql server)以及出现的问题解决
- 数据库权限问题以及设计的一些原则,转自牛人--狼
- centOS7安装java以及连接外网问题(Ping不通)
- 使用pyMySQL连接数据库时遇到的几个问题
- Cube process 或者 deploy 时发生数据库因权限问题无法连接的解决办法
- Sybase 12.5数据库安装,删除以及连接字符串问题
- 遇到的问题--------C#连接数据库的语句带特殊字符时无法解析
- python 连接数据库-设置oracle ,mysql 中文字符问题
- Delphi的数据库连接选择以及问题
- [转]在Java中实现.net中DataTable功能以及操作双数据库的List连接问题解决方案探究
- VS2012 使用MySql的API函数连接数据库(成功), 以及使用mysql-connector-c++-1.1.3遇到的问题!
- jaguar连接数据库超过255字符就截断问题解决
- SQL server 2014安装以及解决连接数据库失败问题
- Android通过webservice连接SQLServer 详细教程以及所遇到的问题解答(数据库+服务器+客户端)
- LINUX下php连接mssql数据库中文字符乱码问题解决