mysql中怎么修改collation
【问题报错】
在数据库插入数据时,varchar 类型的字段插入中文数据时报错。
报错原文:
【原因分析】
通过 show full columns from user_bean语句查看字段的collation属性,发现字段的collation属性值是 latin1_swedish_ci ,说明字段默认为英语。未对汉语进行设置,所以当输入汉语时,mysql会报错为“字符串的值不正确”。
【解决方法】
1、编辑mysql的配置文件 /etc/my.cnf,vi /etc/my.cnf
在 [mysqld] 下面加入两行补充
2、重启Mysql服务 systemctl restart mysqld
向数据库插入含中文的数据,成功!
注意:上面步骤可以解决以后创建表时字段的collation属性的问题,但前面已经创建的表字段的collation属性值并不会发生变化。
如果要改变之前已经创建好的表,怎么办?
方法1:对原来的表进行修改,可以通过类似语句
alter table user_bean change address address varchar(255) character set utf8 collate utf8_general_ci not null
方法2:删除原来的表,重新再建。
【命令总结】
mysql重新编辑表的方法:首先输入命令describe查看当前的数据表结构信息。然后通过命令“alter...add...”添加新的字段信息。最后通过“alterchange”命令修改字段信息即可。推荐:《mysql视频教程》。1、编辑MySQL(和PHP搭配之最佳组合)配置文件: windows环境中:%MySQL_installdir%\my.ini //一般在MySQL安装目录下有my.ini即MySQL的配置文件。 linux环境中:/etc/my.cnf 在[MySQLd]配置段添加如下一行: skip-grant-tables 保存退出编辑。 2、然后重启MySQL服务 windows环境中: net stop MySQL net start MySQL linux环境中: /etc/init.d/MySQLd restart 3、设置新的ROOT密码 然后再在命令行下执行: MySQL-uroot -p MySQL 直接回车无需密码即可进入数据库了。 现在我们执行如下语句把root密码更新为7758521: update user set password=PASSWORD("7758521") where user='root'quit 退出MySQL。 4、还原配置文件并重启服务 然后修改MySQL配置文件把刚才添加的那一行删除。 再次重起MySQL服务,密码修改完毕。 用新密码7758521试一下吧,又能登入MySQL的感觉就是不一样吧?采纳哦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)