红联Linux门户
Linux帮助

Django中遇到的mysql问题

发布时间:2017-01-31 10:06:32来源:linux网站作者:时光旅行的懒猫
最近在用Django写个网站,连接mysql的时候出现了几个问题,总结一下。
 
写好setting.py和models.py后,syncdb都没什么问题,在测试后台发表文章的时候就出错了,本来是测试markdown的图片与codelite代码高亮,发现发表后debug模式就报错。
Error:Warning: Incorrect string value: '\xE6\xB5\x8B\xE8\xAF\x95...' for column 'object_repr' at row 1
 
查了一下发现是mysql的默认编码的问题,照着网上的改了/etc/mysql/my.cnf后不行,在client里加上default-character-set=utf8直接导致mysql启动不起来了,然后在mysqld里写上了default-character-set=utf8,还是不行,于是直接手动修改数据库使用的编码。
ALTER DATABASE pyblog DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
重新删除之前的数据库重新建立数据库遂搞定。
 
昨天关机后发现今天 MySQL重启 报错 Can't connect to local MySQL server through socket
看了下我的/var/run/mysqld和/var/lib/mysqld的目录里都没有mysqld.sock,也没法像网上那样直接ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock软链接过去,然后找到了一个方法在root下。
/usr/bin/mysql_install_db 
 
然后再看/var/run/mysqld/目录下应该就已经有mysqld.sock了。
mysql_install_db 脚本的目的是生成新的MySQL授权表。它不覆盖已有的MySQL授权表,并且它不影响任何其它数据。如果你想要重新创建授权表,首先停止mysqld服务器。
重启mysql然后再python manage.py runserver发现搞定了。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/28070.html