`

mysql SQL Error: 1146, SQLState: 42S02 (linux)

阅读更多
mysql SQL Error: 1146, SQLState: 42S02 (linux)
Table 'database1.SYS_USER' doesn't exist


项目在开发的时候在WINDOWS平台下开发的,开发完了之后在LINUX环境上部署好之后,运行时MySQL数据库报错,提示为某个表不存在之类的错误信息,后来修改了MySQL的配置文件将大小写敏感去掉,问题解决。
这个问题的根源在于,在 MySQL 中,数据库和表其实就是数据目录下的目录和文件,因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的。
MySQL大小写敏感可以通过配置文件的lower_case_table_names参数来控制。
WINDOWS:
编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_names=0 (备注:为0时大小写敏感,为1时大小写不敏感,默认为1),可以实现MySql按照建表Sql语句的大小写状态来定义表名。
LINUX:
编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names=1 参数,并设置相应的值 (备注:为0时大小写敏感,为1时大小写不敏感,默认为0)。
分享到:
评论
1 楼 meng22623 2011-12-06  
good!问题解决了

相关推荐

    Linux下MySql 1036 错误码解决(1036: Table ‘xxxx’ is read only)

    这两天在进行网站搬家,这次网站搬家采用直接打包mysql数据库和网页文件的形式进行迁移,上传好mysql data目录里面的网站数据库至VPS上mysql存放数据库的目录里面,解压就行。我的VPS存放数据库的路径是 /usr/local/...

    MySQL定义异常和异常处理详解

    DECLARE CONTINUE HANDLER FOR SQLSTATE '42S02' SET @info='NO_SUCH_TABLE'; ``` - 捕获特定`mysql_error_code`异常: ```sql DECLARE CONTINUE HANDLER FOR 1146 SET @info='NO_SUCH_TABLE'; ``` - 先定义...

    PDO::errorCode讲解

    3. **返回值**:返回的 SQLSTATE 代码是一个字符串,如 '00000' 表示成功,或者如 'HY000' 表示一般错误,'42S02' 表示表不存在等。如果数据库句柄未执行任何操作,返回 NULL。 4. **实例**: ```php $dbh = new ...

    PHP PDOStatement::errorCode讲解

    SQLSTATE错误代码是5个字符的字母数字字符串,例如42S02表示"Base table or view not found"。完整的SQLSTATE代码列表可以参考相关数据库系统的文档,如MySQL、PostgreSQL或SQLite。 **5. 相关方法** 在使用`...

    PHP PDOStatement::errorInfo讲解

    例如,错误码“42S02”表示“表或视图不存在”,这是一个非常常见的错误,特别是当执行的查询引用了一个数据库中不存在的表名时。 - 数组的第二个元素(索引1)是特定驱动的错误码。每个数据库驱动可能会使用特定的...

Global site tag (gtag.js) - Google Analytics