Django&Mysql

文章仅供学习,如有错误,欢迎指出

今天我在做本机windows下的django项目连接linux云服务器上的mysql数据库的时候,遇到了一些错误 在这里记录

问题1 连接数据库后,当我们成功创建一张表,但是我们在数据库中一不下心将表删除了。然后我们使用

python manage.py makemigrations
python manage.py migrate

复制代码

去重新生成表的时候,发现我们无法重新生成这张表,

(django_xadmin_pb-y4pNUwd9) C:\Users\Alpaca\Desktop\pyweb项目\django_xadmin_pb\one_project>python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
  No migrations to apply.

复制代码

这个时候我们需要以下几个步骤 1.删除数据库内所有的表(因为数据库表之间有关联,所以需要多删除几次) 2.重新在django项目下使用这两条命令,生成成功

Mysql数据库在创建数据表的时候无法创建插入中文内容 例子

当我们使用django创建这张model的时候,出现错误


  File "C:\Users\Alpaca\.virtualenvs\django_xadmin_pb-y4pNUwd9\lib\site-packages\MySQLdb\cursors.py", line 374, in _do_query
    db.query(q)
  File "C:\Users\Alpaca\.virtualenvs\django_xadmin_pb-y4pNUwd9\lib\site-packages\MySQLdb\connections.py", line 277, in query
    _mysql.connection.query(self, query)
django.db.utils.OperationalError: (1366, "Incorrect string value: '\\xE5\\x93\\x88\\xE5\\x93\\x88' for column 'name' at row 1")

复制代码

部分错误我删除了,主要看最后几句,他报错原因是说,我的哈哈哈哈编码不能创建在name里面 查看帖子之后说是mysql在安装之后默认latin1编码,但中文的话我们需要用utf8编码 因此我们需要接下来几个步骤去解决

#查看错误原因

mysql> show variables like 'character_set%';
或者
mysql> status;
复制代码

解释 | character_set_client | utf8 #客户端字符集
| character_set_connection | utf8 #链接字符集
| character_set_database | utf8 #数据库字符集,配置文件指定或者创建时指定
| character_set_results | utf8 #返回结果字符集
| character_set_server | utf8 #服务器字符集,配置文件,或者创建库,表时候指定

1.进入到/etc/mysql/my.cnf,并添加


[client]   
  
default-character-set =utf8  
  
[mysql]   
  
default-character-set =utf8  
  
[mysqld]  
  
collation-server = utf8_unicode_ci  
init_connect ='SET NAMES utf8'  
character_set_server=utf8  

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

复制代码

可以看出这个my.cnf应该是个人配置,是继承于系统默认配置的,既然这样我们只要修改这里的内容就好了

2.重启mysql

service mysql restart
复制代码

#查看是否成功

mysql> status;
复制代码

已经变成了utf-8形式了

#注意!这里有一个坑,我们虽然已经配置成功了,但是这样的配置只会作用于之后你所创建的数据库表,在这个配置之前的数据库表都不适用。

该文章转自我的csdn博客

我的文章都会更新在我的收藏集中

转载于:https://juejin.im/post/5b2b63bcf265da5959468e7c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值