求教大家。之前老的数据库版本,每次查询,如果语法有问题,都会提示在那个字段有问题。现在任何错误,只有一个错误代码,没有提示错误文字信息。非常烦恼,debug很成问题。那位大师能够帮助解决一下。谢谢啦。

解决方案 »

  1.   

    不是,用的是Linux
      

  2.   

    比如:select aaaa from tmp;
    aaaa 是tmp中没有的字段,应该通过mysql返回一个错误代码,同时一段错误信息,告诉aaaa字段不存在,后面的错误信息没有了
      

  3.   

    再比如:
    shell> SELECT * FROM no_such_table;
    ERROR 1146 (42S02): Table 'test.no_such_table' doesn't exist我安装的5.7.17之后,Table 'test.no_such_table' doesn't exist 这些信息没有了,只有 ERROR 1146 (42S02): 
      

  4.   

    请查看你的base_dir参数是否设置正确。
    这种情况通常是在mysqld启动时装载错误码相关信息,由于base_dir设置错误,从而没法找到$base_dir/share/errmsg.sys文件,装载错误信息发生错误。错误会在error log中记载。但是这种错误不会影响你mysql的正常使用,只是没有错误信息而已。请重启mysqld,查看error log是否有对应的信息,或者直接查看base_dir参数是否正确。希望对你有所帮助
      

  5.   

    非常感谢,找到这个错误信息了:
    [ERROR] Can't find error-message file '/usr/local/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
    有一个问题是,我安装的所有路径都没有写明是 /usr/local/mysql/.... 为何会指向这个路径,系统在哪里定义这些缺省路径
      

  6.   


    编译时指定的,cmake指定的宏