• 关于mysql插入数据异常


    今天创建数据库时,在插入数据时出现了几个问题。(首次在LInux环境下创建数据库)

    一个是关于SQL Error [1146] [42S02]: Table 'struts2exec.s_user' doesn't exist

    网上搜查到的帖子如下:

      项目在开发的时候在WINDOWS平台下开发的,开发完了之后在LINUX环境上部署好之后,运行时MySQL数据库报错,提示为某个表不存在之类的错误信息,后来修改了MySQL的配置文件将大小写敏感去掉,问题解决。 

    编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names=1 参数,并设置相应的值 (备注:为0时大小写敏感,为1时大小写不敏感,默认为0)。 

    编辑MySQL安装目录下的my.ini文件,在[mysqld]节下 添加 lower_case_table_names=1(备注:为0时大小写敏感,为1时大小写不敏感,默认为1),可以实现MySql按照建表Sql语句的大小写状态来定义表名。

    在 MySQL 中,数据库和表其实就是数据目录下的目录和文件,因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的。 

    但是按照教程在my.cnf下并没有mysqld,于是只好在插入数据时严格区分大小写。

    另一个则是关于SQL Error [1054] [42S22]: Unknown column 'xxx' in 'field list

    很显然,这是编码问题,解决方案如下:

    修改表的编码格式

    ALTER TABLE `table` DEFAULT CHARACTER SET utf8;

    但是虽然修改了表的编码格式,但是字段的编码格式并没有修改过来,又发现一条语句,作用是修改字段的编码格式:

    ALTER TABLE `tablename` CHANGE `字段名1` `字段名2` VARCHAR(36) CHARACTER SET utf8 NOT NULL; 

    但是一次只能修改一个字段,还是很麻烦,不方便,最后找到这么一条语句,可以修改整张表的字段:

    alter table `tablename` convert to character set utf8;

  • 相关阅读:
    虚拟机网络配置详解
    linux计划任务记录
    合并图片和加文字
    Linux下配置安装PHP环境
    js无刷新上传图片,服务端有生成缩略图,剪切图片,iphone图片旋转判断功能
    移动端上传图片iphone图片旋转以及服务端处理方法
    编码格式,网上看了资料还是乱码,就试下这个吧
    js 时间格式化 代码
    持续集成,持续交付,持续部署
    CDN(Content Distribution Network)概念
  • 原文地址:https://www.cnblogs.com/lesliehe/p/7965663.html
Copyright © 2020-2023  润新知