分类 错误笔记 下的文章

No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

在用eclipse上的GIT从GITHUB导入项目后,在构建时会报着个错误。
错误的原因通常有两个:
1.eclipse构建采用的是jre,而不是jdk,解决方式为:eclipse菜单 - Window - Preferences- Java - Installed JREs 将配置的JRE定位到JDK
2.导入后该项目不是maven项目,解决方式为:通过命令行通过mvn去构建,mvn eclipse:eclipse ,运行后再到eclipse里面去看,项目正常工作了(自动生成了熟悉的两个文件:.classpath 和 .project)。

参考:
http://blog.csdn.net/qbg19881206/article/details/19547629
http://blog.csdn.net/luqin1988/article/details/8821908

django常见错误

一、django foreign key 自动加_id问题
例如:uid = models.ForeignKey(AccountsModels,related_name="fx_base_uid",db_column="uid")
如果不写db_column,最后生成的会是uid_id

二、外键问题
报错为:
bases.BasesModels.uid: (fields.E302) Reverse accessor for 'BasesModels.uid' clashes with field name 'AccountsModels.uid'.
HINT: Rename field 'AccountsModels.uid', or add/change a related_name argument to the definition for field 'BasesModels.uid'.
bases.BasesModels.uid: (fields.E303) Reverse query name for 'BasesModels.uid' clashes with field name 'AccountsModels.uid'.
HINT: Rename field 'AccountsModels.uid', or add/change a related_name argument to the definition for field 'BasesModels.uid'.
解决方法为更改related_name="uid"为related_name="fx_base_uid",出错是因为外键名字冲突了

三、django打印sql语句
在settings.py里面加上
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level':'DEBUG',
},
}
}

三、pip安装mysql错误
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-gpmw8pju/mysqlclient/
在ubuntu里面
sudo apt-get install python-dev python3-dev
sudo apt-get install libmysqlclient-dev
pip install pymysql
pip install mysqlclient
在centos里面
yum install mysql-devel
yum install MySQL-python
之后错误消失,所有依赖能正确安装上。

nginx常见错误

1: 413 Request Entity Too Large
原因:报错是http request请求body太大,被nginx拒绝
解决方法:在配置文件里面修改client_max_body_size 10M 增大一些

2: HTTP/1.1 405 Method not allowed
原因:这个是由于客户端在用post的方式去请求了静态资源,而静态资源nginx不止允许通过get方式去请求
解决方法:修改nginx的源码,重新编译即可
找到文件http/modules/ngx_http_static_module.c
注释下面的禁止代码即可
/*
if (r->method & NGX_HTTP_POST) {
return NGX_HTTP_NOT_ALLOWED;
}
*/
3:post内容在lua里面无法获取body内容
检查client_max_body_size和client_body_buffer_size是否设置过小
另外,在读取的时候server中使用lua_need_request_body on; 或者在location lua代码块中使用 ngx.req.read_body()

4:nginx错误日志无法关闭
设置error_log off;后任然会输出文件名为off的错误日志,根本原因是错误日志不能off,只能error_log /dev/null;

5:openresty安装geoip时错误
./configure: error: the GeoIP module requires the GeoIP library
apt-get install libgeoip-dev

6:域名太长
nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 32
解决:server_names_hash_bucket_size 64;

7:nginx post json 跨域问题
Cross-Origin Read Blocking (CORB) blocked cross-origin with MIME type application/json
解决方式为:

location / {  
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

    if ($request_method = 'OPTIONS') {
        return 204;
    }
} 

Error creating index w 17290 err unsupported geo index version

错误为:
ERROR: Error creating index ciika.postback: 17290 err: "unsupported geo index version { 2dsphereIndexVersion: 2 }, only support versions: [1]"
出现场景为:
在做数据备份还原的时候出现的这个错误,在mongodump的版本是3.X的,但是在mongorestore的版本是2.4的
解决方法为:
更新mongodb
如果有就先删除mongodb

yum remove mongodb
yum remove mongodb-server
vim /etc/yum.repos.d/mongodb.repo

[MongoDB]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1

yum install -y mongodb-org

注:
https://www.mongodb.com/blog/post/geospatial-performance-improvements-in-mongodb-3-2

redis达到maxmemory报错

redis在使用过程中,平时运行的都没有问题,突然有一天(error) OOM command not allowed when used memory > max ,redis报错了,看服务器还有内存可用,通过info来看,确实达到了redis设置的最大值,排查程序发现是有一个消费的程序没有启动,造成key越积越多,所以redis是使用过程中,根据业务需要设置过期时间是一个好的习惯,或者修改淘汰规则这个配置也可以。