Django中遇到的mysql问题
最近在用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发现搞定了