精华内容
下载资源
问答
  • 常见问题汇总

    2015-06-05 13:39:43
    移动开发常见问题汇总1. 上海联通固网V6上周五刚刚升级到10 P14T7+P3T15版本,在验证功能时,在线测试客户端一直无法正常启动
  • CTEX常见问题汇总 CTEX常见问题汇总 CTEX常见问题汇总 CTEX常见问题汇总
  • MATLAB常见问题汇总

    2018-09-29 13:36:28
    MATLAB常见问题汇总
  • ABAQUS 常见问题汇总

    2017-10-18 18:00:23
    abaqus 常见问题汇总 常见问题的汇总 详细彩色配图 免费供应
  • 你还在为找不到眼部整形常见问题汇总而烦恼么?希望整理发布的这款眼部整形常见问题汇总能够帮...该文档为眼部整形常见问题汇总,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • Lsdyna 常见问题汇总

    2018-12-13 18:51:24
    Lsdyna 常见问题汇总,,包括材料,接触等方面的问题,详细解释了LSDYNA中常见的问题。
  • ABAQUS常见问题汇总

    2018-12-25 09:14:05
    ABAQUS常见问题汇总,对初学者十分有利,能够起到事半功倍效果
  • 神经网络学习小记录-番外篇——常见问题汇总

    万次阅读 多人点赞 2020-07-22 17:09:44
    神经网络学习小记录-番外篇——常见问题汇总前言问题汇总1、下载问题2、环境配置问题3、shape不匹配问题a、训练时shape不匹配问题b、预测时shape不匹配问题4、no module问题5、显存问题6、训练问题7、乱七八糟的问题...

    前言

    搞个问题汇总吧,不然一个一个解释也挺难的。
    在这里插入图片描述

    问题汇总

    1、下载问题

    问:up主,可以给我发一份代码吗,代码在哪里下载啊?
    答:Github上的地址就在视频简介里。复制一下就能进去下载了。

    问:up主,为什么我下载的代码里面,model_data下面没有.pth或者.h5文件?
    答:我一般会把权值上传到百度网盘,在GITHUB的README里面就能找到。

    问:up主,为什么我下载的代码提示压缩包损坏?
    答:重新去Github下载。

    2、数据集问题

    问:up主,XXXX数据集在哪里下载啊?
    答:一般数据集的下载地址我会放在README里面,基本上都有,目标检测的数据集我放在了资源汇总帖。
    https://blog.csdn.net/weixin_44791964/article/details/105123842

    3、GPU利用问题

    问:up主,我好像没有在用gpu进行训练啊,怎么看是不是用了GPU进行训练?
    答:查看是否使用GPU进行训练一般使用NVIDIA在命令行的查看命令,如果要看任务管理器的话,请看性能部分GPU的显存是否利用,或者查看任务管理器的Cuda,而非Copy。

    在这里插入图片描述

    4、环境配置问题

    pytorch代码对应的pytorch版本为1.2,博客地址对应https://blog.csdn.net/weixin_44791964/article/details/106037141

    keras代码对应的tensorflow版本为1.13.2,keras版本是2.1.5,博客地址对应https://blog.csdn.net/weixin_44791964/article/details/104702142

    tf2代码对应的tensorflow版本为2.2.0,无需安装keras,博客地址对应https://blog.csdn.net/weixin_44791964/article/details/109161493

    问:为什么我安装了tensorflow-gpu但是却没用利用GPU进行训练呢?
    答:确认tensorflow-gpu已经装好,利用pip list查看tensorflow版本,然后查看任务管理器或者利用nvidia命令看看是否使用了gpu进行训练,任务管理器的话要看显存使用情况。

    问:你的代码某某某版本的tensorflow和pytorch能用嘛?
    答:最好按照我推荐的配置,配置教程也有!其它版本的我没有试过!

    问:up主,为什么我按照你的环境配置后还是不能使用?
    答:请把你的GPU、CUDA、CUDNN、TF版本以及PYTORCH版本私聊告诉我。

    问:出现如下错误

    Traceback (most recent call last):
      File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
     from tensorflow.python.pywrap_tensorflow_internal import *
    File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
    pywrap_tensorflow_internal = swig_import_helper()
      File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
        _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
    File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\imp.py", line 243, in load_modulereturn load_dynamic(name, filename, file)
    File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\imp.py", line 343, in load_dynamic
        return _load(spec)
    ImportError: DLL load failed: 找不到指定的模块。
    

    答:如果没重启过就重启一下,否则重新按照步骤安装,还无法解决则把你的GPU、CUDA、CUDNN、TF版本以及PYTORCH版本私聊告诉我。

    5、shape不匹配问题

    a、训练时shape不匹配问题

    问:up主,为什么运行train.py会提示shape不匹配啊?
    答:因为你训练的种类和原始的种类不同,网络结构会变化,所以最尾部的shape会有少量不匹配。

    b、预测时shape不匹配问题

    问:为什么我运行predict.py会提示我说shape不匹配呀。
    在Pytorch里面是这样的:

    在这里插入图片描述
    在Keras里面是这样的:
    在这里插入图片描述

    答:原因主要有仨:
    1、在ssd、FasterRCNN里面,可能是train.py里面的num_classes没改。
    2、model_path没改。
    3、classes_path没改。
    请检查清楚了!确定自己所用的model_path和classes_path是对应的!训练的时候用到的num_classes或者classes_path也需要检查!

    6、no module问题

    问:为什么提示说no module name utils.utils(no module name nets.yolo、no module name nets.ssd等一系列问题)啊?
    答:根目录不对,查查相对目录的概念。查了基本上就明白了。

    问:为什么提示说no module name matplotlib(no module name PIL)?
    答:打开命令行安装就好。pip install matplotlib

    问:为什么提示说No module named ‘torch’ ?
    答:其实我也真的很想知道为什么会有这个问题……这个pytorch没装是什么情况?一般就俩情况,一个是真的没装,还有一个是装到其它环境了,当前激活的环境不是自己装的环境。

    问:为什么提示说No module named ‘tensorflow’ ?
    答:同上。

    7、显存问题

    问:为什么我运行train.py下面的命令行闪的贼快,还提示OOM啥的?
    答:爆显存了,可以改小batch_size,如果batch_size=1才能运行的话,那么直接换网络吧,SSD的显存占用率是最小的,建议用SSD;
    2G显存:SSD
    4G显存:YOLOV3 Faster RCNN
    6G显存:YOLOV4 Retinanet M2det Efficientdet等
    8G+显存:随便选吧

    问:为什么提示 RuntimeError: CUDA out of memory. Tried to allocate 52.00 MiB (GPU 0; 15.90 GiB total capacity; 14.85 GiB already allocated; 51.88 MiB free; 15.07 GiB reserved in total by PyTorch)?
    答:同上

    8、训练问题(冻结训练,LOSS问题等)

    问:为什么要冻结训练和解冻训练呀?
    答:这是迁移学习的思想,因为神经网络主干特征提取部分所提取到的特征是通用的,我们冻结起来训练可以加快训练效率,也可以防止权值被破坏。

    问:为什么我的网络不收敛啊,LOSS是XXXX。
    答:不同网络的LOSS不同,LOSS只是一个参考指标,用于查看网络是否收敛,而非评价网络好坏,我的yolo代码都没有归一化,所以LOSS值看起来比较高,LOSS的值不重要,重要的是是否在变小,预测是否有效果!

    问:为什么我的训练效果不好?预测了没有框(框不准)。
    答:
    1、 数据集过少,小于500的自行考虑增加数据集。
    2、 是否解冻训练。
    3、 如果是yoloV4可以考虑关闭mosaic,mosaic不适用所有的情况。
    4、 网络不适应,比如SSD不适合小目标,因为先验框固定了。
    5、 不同网络的LOSS不同,LOSS只是一个参考指标,用于查看网络是否收敛,而非评价网络好坏,我的yolo代码都没有归一化,所以LOSS值看起来比较高,LOSS的值不重要,重要的是是否收敛!
    6、 测试不同的模型,确认数据集是好的。
    7、 确认自己是否按照步骤去做了,如果比如voc_annotation.py里面的classes是否修改了等。

    问:我怎么出现了gbk什么的编码错误啊:

    UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 446: illegal multibyte sequence
    

    答:标签和路径不要使用中文,如果一定要使用中文,请注意处理的时候编码的问题,改成打开文件的encoding方式改为utf-8。

    问:我的图片是xxx*xxx的分辨率的,可以用吗!
    答:可以用,代码里面会自动进行resize或者数据增强。

    问:为什么我yolo的loss降到了0.0几了什么都预测不出来?
    答:yolo系列的loss是降不到这么多的。查看2007_train.txt文件是否有目标信息。

    问:怎么进行多GPU训练?
    答:这个直接百度就好了,实现并不复杂。

    9、灰度图问题

    问:能不能训练灰度图(预测灰度图)啊?
    答:我的大多数库会将灰度图转化成RGB进行训练和预测,如果遇到代码不能训练或者预测灰度图的情况,可以尝试一下在get_random_data里面将Image.open后的结果转换成RGB,预测的时候也这样试试。(仅供参考)

    10、断点续练问题

    问:我已经训练过几个世代了,能不能从这个基础上继续开始训练
    答:可以,你在训练前,和载入预训练权重一样载入训练过的权重就行了。一般训练好的权重会保存在logs文件夹里面,将model_path修改成你要开始的权值的路径即可。

    11、预训练权重的问题

    问:如果我要训练其它的数据集,预训练权重要怎么办啊?
    答:还是查查迁移学习吧,就是同一个思想,用原来的就行。

    问:up,我修改了网络,预训练权重还能用吗?
    答:修改了主干的话,如果不是用的现有的网络,基本上预训练权重是不能用的,要么就自己判断权值里卷积核的shape然后自己匹配,要么只能自己预训练去了;修改了后半部分的话,前半部分的主干部分的预训练权重还是可以用的,如果是pytorch代码的话,需要自己修改一下载入权值的方式,判断shape后载入,如果是keras代码,直接by_name=True,skip_mismatch=True即可。

    权值匹配的方式可以参考如下:

    # 加快模型训练的效率
    print('Loading weights into state dict...')
    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
    model_dict = model.state_dict()
    pretrained_dict = torch.load(model_path, map_location=device)
    a = {}
    for k, v in pretrained_dict.items():
        try:    
            if np.shape(model_dict[k]) ==  np.shape(v):
                a[k]=v
        except:
            pass
    model_dict.update(a)
    model.load_state_dict(model_dict)
    print('Finished!')
    

    问:我要怎么不使用预训练权重啊?
    答:把载入预训练权重的代码注释了就行。

    问:为什么我不使用预训练权重效果这么差啊?
    答:因为随机初始化的权值不好,提取的特征不好,也就导致了模型训练的效果不好,voc07+12、coco+voc07+12效果都不一样,预训练权重还是非常重要的。

    12、交流群问题

    问:up,有没有QQ群啥的呢?
    答:没有没有,我没有时间管理QQ群……

    13、视频检测问题与摄像头检测问题

    问:怎么用摄像头检测呀?
    答:基本上所有目标检测库都有video.py可以进行摄像头检测,也有视频详细解释了摄像头检测的思路。

    问:怎么用视频检测呀?
    答:同上

    14、保存问题

    问:检测完的图片怎么保存?
    答:一般目标检测用的是Image,所以查询一下PIL库的Image如何进行保存。如果有些库用的是cv2,那就是查一下cv2怎么保存图片

    问:怎么用视频保存呀?
    答:直接百度查,cv2如何保存图片

    15、遍历问题

    问:如何对一个文件夹的图片进行遍历?
    答:一般使用os.listdir先找出文件夹里面的所有图片,然后根据predict.py文件里面的执行思路检测图片就行了。

    问:如何对一个文件夹的图片进行遍历?并且保存。
    答:遍历的话一般使用os.listdir先找出文件夹里面的所有图片,然后根据predict.py文件里面的执行思路检测图片就行了。保存的话一般目标检测用的是Image,所以查询一下PIL库的Image如何进行保存。如果有些库用的是cv2,那就是查一下cv2怎么保存图片

    16、路径问题

    问:我怎么出现了这样的错误呀:

    FileNotFoundError: 【Errno 2】 No such file or directory
    ……………………………………
    ……………………………………
    

    答:去检查一下文件夹路径,查看是否有对应文件;并且检查一下2007_train.txt,其中文件路径是否有错。
    关于路径有几个重要的点:
    文件夹名称中一定不要有空格。
    注意相对路径和绝对路径。
    多百度路径相关的知识。

    所有的路径问题基本上都是根目录问题,好好查一下相对目录的概念!

    17、和原版比较问题

    问:你这个代码和原版比怎么样,可以达到原版的效果么?
    答:基本上可以达到,我都用voc数据测过,我没有好显卡,没有能力在coco上测试与训练。

    问:你有没有实现yolov4所有的tricks,和原版差距多少?
    答:并没有实现全部的改进部分,由于YOLOV4使用的改进实在太多了,很难完全实现与列出来,这里只列出来了一些我比较感兴趣,而且非常有效的改进。论文中提到的SAM(注意力机制模块),作者自己的源码也没有使用。还有其它很多的tricks,不是所有的tricks都有提升,我也没法实现全部的tricks。至于和原版的比较,我没有能力训练coco数据集,根据使用过的同学反应差距不大。

    18、FPS问题(检测速度问题)

    问:你这个FPS可以到达多少,可以到 XX FPS么?
    答:FPS和机子的配置有关,配置高就快,配置低就慢。

    问:为什么我用服务器去测试yolov4(or others)的FPS只有十几?
    答:检查是否正确安装了tensorflow-gpu或者pytorch的gpu版本,如果已经正确安装,可以去利用time.time()的方法查看detect_image里面,哪一段代码耗时更长(不仅只有网络耗时长,其它处理部分也会耗时,如绘图等)。

    问:为什么论文中说速度可以达到XX,但是这里却没有?
    答:检查是否正确安装了tensorflow-gpu或者pytorch的gpu版本,如果已经正确安装,可以去利用time.time()的方法查看detect_image里面,哪一段代码耗时更长(不仅只有网络耗时长,其它处理部分也会耗时,如绘图等)。有些论文还会使用多batch进行预测,我并没有去实现这个部分。

    19、预测图片不显示问题

    问:为什么你的代码在预测完成后不显示图片?只是在命令行告诉我有什么目标。
    答:给系统安装一个图片查看器就行了。

    20、算法评价问题(目标检测的map、PR曲线、Recall、Precision等)

    问:怎么计算map?
    答:看map视频,都一个流程。

    问:计算map的时候,get_map.py里面有一个MINOVERLAP是什么用的,是iou吗?
    答:是iou,它的作用是判断预测框和真实框的重合成度,如果重合程度大于MINOVERLAP,则预测正确。

    问:为什么get_map.py里面的self.confidence(self.score)要设置的那么小?
    答:看一下map的视频的原理部分,要知道所有的结果然后再进行pr曲线的绘制。

    问:能不能说说怎么绘制PR曲线啥的呀。
    答:可以看mAP视频,结果里面有PR曲线。

    问:怎么计算Recall、Precision指标。
    答:这俩指标应该是相对于特定的置信度的,如果是要绘制Recall、Precision关于confidence的曲线的话,这代码我还没有去实现过…

    21、coco数据集训练问题

    问:目标检测怎么训练COCO数据集啊?。
    答:coco数据训练所需要的txt文件可以参考qqwweee的yolo3的库,格式都是一样的。

    22、怎么学习的问题

    问:up,你的学习路线怎么样的?我是个小白我要怎么学?
    答:这里有几点需要注意哈
    1、我不是高手,很多东西我也不会,我的学习路线也不一定适用所有人。
    2、我实验室不做深度学习,所以我很多东西都是自学,自己摸索,正确与否我也不知道。
    3、我个人觉得学习更靠自学

    学习路线的话,我是先学习了莫烦的python教程,从tensorflow、keras、pytorch入门,入门完之后学的SSD,YOLO,然后了解了很多经典的卷积网,后面就开始学很多不同的代码了,我的学习方法就是一行一行的看,了解整个代码的执行流程,特征层的shape变化等,花了很多时间也没有什么捷径,就是要花时间吧。

    23、模型优化(模型修改)问题

    问:up,YOLO系列使用Focal LOSS的代码你有吗,有提升吗?
    答:很多人试过,提升效果也不大(甚至变的更Low),它自己有自己的正负样本的平衡方式。

    问:up,我修改了网络,预训练权重还能用吗?
    答:修改了主干的话,如果不是用的现有的网络,基本上预训练权重是不能用的,要么就自己判断权值里卷积核的shape然后自己匹配,要么只能自己预训练去了;修改了后半部分的话,前半部分的主干部分的预训练权重还是可以用的,如果是pytorch代码的话,需要自己修改一下载入权值的方式,判断shape后载入,如果是keras代码,直接by_name=True,skip_mismatch=True即可。

    权值匹配的方式可以参考如下:

    # 加快模型训练的效率
    print('Loading weights into state dict...')
    device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
    model_dict = model.state_dict()
    pretrained_dict = torch.load(model_path, map_location=device)
    a = {}
    for k, v in pretrained_dict.items():
        try:    
            if np.shape(model_dict[k]) ==  np.shape(v):
                a[k]=v
        except:
            pass
    model_dict.update(a)
    model.load_state_dict(model_dict)
    print('Finished!')
    

    24、部署问题

    我没有具体部署到手机等设备上过,所以很多部署问题我并不了解……

    25、cuda安装失败问题

    一般cuda安装前需要安装Visual Studio,装个2017版本即可。

    26、Ubuntu系统问题

    所有代码在Ubuntu下可以使用,我两个系统都试过。

    27、VSCODE提示错误的问题

    问:为什么在VSCODE里面提示一大堆的错误啊?
    答:我也提示一大堆的错误,但是不影响,是VSCODE的问题,如果不想看错误的话就装Pycharm。

    28、使用cpu进行训练与预测的问题

    对于keras和tf2的代码而言,如果想用cpu进行训练和预测,直接装cpu版本的tensorflow就可以了。

    对于pytorch的代码而言,如果想用cpu进行训练和预测,需要将cuda=True修改成cuda=False。Pytorch当中的Faster rcnn最好还是有gpu,因为使用了cupy,如果想不用gpu的话需要自己去查查如何使用没有gpu的cupy啥的。

    29、tqdm没有pos参数问题

    问:运行代码提示’tqdm’ object has no attribute ‘pos’。
    答:重装tqdm,换个版本就可以了。

    30、提示decode(“utf-8”)的问题

    由于h5py库的更新,安装过程中会自动安装h5py=3.0.0以上的版本,会导致decode(“utf-8”)的错误!
    各位一定要在安装完tensorflow后利用命令装h5py=2.10.0!

    pip install h5py==2.10.0
    

    31、其它问题

    问:为什么提示TypeError: cat() got an unexpected keyword argument ‘axis’,Traceback (most recent call last),AttributeError: ‘Tensor’ object has no attribute ‘bool’?
    答:这是版本问题,建议使用torch1.2以上版本

    其它有很多稀奇古怪的问题,很多是版本问题,建议按照我的视频教程安装Keras和tensorflow。比如装的是tensorflow2,就不用问我说为什么我没法运行Keras-yolo啥的。那是必然不行的。

    展开全文
  • voip常见问题汇总

    2021-01-19 21:32:52
    VoIP(Voice over Internet Protocol)简而言之就是将模拟信号(Voice)数字化,以数据封包(Data Packet)的形式在IP网络(IP Network)上做实时传递。... VOIP常见问题汇总 一、VOIP板卡诊断工具 VOIP板卡的
  • MiniSTM32开发板常见问题汇总,MiniSTM32开发板常见问题汇总
  • Qt常见问题汇总

    2017-11-07 18:09:36
    Qt常见问题汇总。。。。。。。。。。。。。。。。。。
  • DruidDataSource配置及其常见问题汇总

    万次阅读 2018-08-01 16:24:15
    Spring学习总结(21)——Spring集成阿里巴巴数据库连接池DruidDataSource配置及其常见问题汇总 2017年01月13日 12:03:51 阅读数:6212 一、参考配置如下  &lt;bean id="dataSource" class="...

    Spring学习总结(21)——Spring集成阿里巴巴数据库连接池DruidDataSource配置及其常见问题汇总

    2017年01月13日 12:03:51

    阅读数:6212

    一、参考配置如下

       <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-             method="init" destroy-method="close">

          <!-- 数据库驱动 -->

          <property name="driverClassName" value="${jdbc.driverClassName}" />

          <!-- 基本属性 url、user、password -->

          <property name="url" value="${jdbc_url}" />

          <property name="username" value="${jdbc_user}" />

          <property name="password" value="${jdbc_password}" />

     

          <!-- 配置初始化大小、最小、最大 -->

          <property name="initialSize" value="1" />

          <property name="minIdle" value="1" />

          <property name="maxActive" value="20" />

     

          <!-- 配置获取连接等待超时的时间 -->

          <property name="maxWait" value="60000" />

     

          <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->

          <property name="timeBetweenEvictionRunsMillis" value="60000" />

     

          <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->

          <property name="minEvictableIdleTimeMillis" value="300000" />

     

          <property name="validationQuery" value="SELECT 'x'" />

          <property name="testWhileIdle" value="true" />

          <property name="testOnBorrow" value="false" />

          <property name="testOnReturn" value="false" />

     

          <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->

          <property name="poolPreparedStatements" value="true" />

          <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />

     

          <!-- 配置监控统计拦截的filters -->

          <property name="filters" value="stat" />

      </bean>

    通常来说,只需要修改initialSize、minIdle、maxActive。如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。分库分表较多的数据库,建议配置为false。

    二、druid常见问题汇总:

    https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

     

    (1). Druid是什么?

     

    Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。

    (2). 在哪里下载druid

    (3). 怎么获取Druid的源码

    Druid是一个开源项目,源码托管在github上,源代码仓库地址是 https://github.com/alibaba/druid。同时每次Druid发布正式版本和快照的时候,都会把源码打包,你可以从上面的下载地址中找到相关版本的源码

    (4). 怎么配置maven

    Druid 0.1.18 之后版本都发布到maven中央仓库中,所以你只需要在项目的pom.xml中加上dependency就可以了。例如:

    
     
    1. <dependency>

    2. <groupId>com.alibaba</groupId>

    3. <artifactId>druid</artifactId>

    4. <version>${druid-version}</version>

    5. </dependency>

    6.  

    也可以选择 Maven仓库查找公共的仓库地址:http://www.mvnrepository.com/artifact/com.alibaba/druid

    (5). 怎么打开Druid的监控统计功能

    Druid的监控统计功能是通过filter-chain扩展实现,如果你要打开监控统计功能,配置StatFilter,具体看这里:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter

    (6). 怎样使用Druid的内置监控页面

    内置监控页面是一个Servlet,具体配置看这里:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AE

    (7). 内置监控中的Web和Spring关联监控怎么配置?

    (8). 怎么配置防御SQL注入攻击

    Druid提供了WallFilter,它是基于SQL语义分析来实现防御SQL注入攻击的。具体配置看这里:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE-wallfilter

    (9). Druid有没有参考配置

    不同的业务场景需求不同,你可以使用我们的参考配置,但建议你仔细阅读相关文档,了解清楚之后做定制配置。https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_DruidDataSource%E5%8F%82%E8%80%83%E9%85%8D%E7%BD%AE

    (10). 我想日志记录JDBC执行的SQL,如何配置

    Druid提供了Log4jFilter、CommonsLogFilter和Slf4jFilter,具体配置看这里https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_LogFilter

    (11). 我的程序可能产生连接泄漏了,有什么办法?

    Druid提供了多种监测连接泄漏的手段,具体看这里:https://github.com/alibaba/druid/wiki/%E8%BF%9E%E6%8E%A5%E6%B3%84%E6%BC%8F%E7%9B%91%E6%B5%8B

    (12). 在Druid中使用PSCache会有内存占用过大问题么?

    连接Oracle数据库,打开PSCache,在其他的数据库连接池都会存在内存占用过多的问题,Druid是唯一解决这个问题的连接池。具体看这里:https://github.com/alibaba/druid/wiki/Oracle%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%8BPreparedStatementCache%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88

    (13). 有没有和其他数据库连接池的对比?

    (14). 从其他连接池迁移要注意什么?

    (15). Druid中有没有类似Jboss DataSource中的ExceptionSorter

    ExceptionSorter是JBoss DataSource中的优秀特性,Druid也有一样功能的ExceptionSorter,但不用手动配置,自动识别生效的。具体看这里:https://github.com/alibaba/druid/wiki/ExceptionSorter_cn

    (16). Druid中的maxIdle为什么是没用的?

    maxIdle是Druid为了方便DBCP用户迁移而增加的,maxIdle是一个混乱的概念。连接池只应该有maxPoolSize和minPoolSize,druid只保留了maxActive和minIdle,分别相当于maxPoolSize和minPoolSize。

    (17). 我的应用配置的是JNDI数据源,可以用DruidDataSource么?

    DruidDataSource支持JNDI配置,具体看这里:https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_JNDI_Tomcat 
    具体实现的类是这个:com.alibaba.druid.pool.DruidDataSourceFactory,你可以阅读代码加深理解。

    (18). 我的应用已使用DBCP,是代码中写死的,怎样更换为Druid?

    可以的,Druid提供了一个中完全平滑迁移DBCP的办法。

    这种用法,使得可以在一些非自己开发的应用中使用Druid,例如在sonar中部署druid,sonar是一个使用jruby开发的web应用,写死了DBCP,只能够通过这种方法来更换。

    (19). 我想试用快照版本,怎么获取?

    直接获取快照版本的地址是:http://code.alibabatech.com/mvn/snapshots/com/alibaba/druid/ ,使用快照版本建议加入我们QQ群 92748305,遇到问题直接反馈给我们。

    (20). 有一些SQL执行很慢,我希望日志记录下来,怎么设置?

    在StatFilter配置中有慢SQL执行日志记录,看这里https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter

    (21). 我希望加密我的数据库密码怎么办?

    运维和DBA都不希望把密码明文直接写在配置文件中,Druid提供了数据库秘密加密的功能。具体看这里:https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter

    (22). 如何参与Druid的开发

    Druid是一个通过github开源的项目,github的特性,使得你很容易参与其中。这里有详细说明https://github.com/alibaba/druid/wiki/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E

    (23). Druid的发布周期是怎样?

    Druid是一个活跃的项目,长期维护。每个月有一个发布窗口,除非遇到重大bug和非常紧急的需求,否则都是每个月最多发布一次。如果没有足够多的需求,发布窗口就不会被使用。

    (24). 如果DruidDataSource在init的时候失败了,不再使用,是否需要close

    是的,如果DruidDataSource不再使用,必须调用close来释放资源,释放的资源包括关闭Create和Destory线程。

    (25). DruidDataSource支持哪些数据库?

    理论上说,支持所有有jdbc驱动的数据库。实际测试过的有

    数据库 支持状态
    mysql 支持,大规模使用
    oracle 支持,大规模使用
    sqlserver 支持
    postgres 支持
    db2 支持
    h2 支持
    derby 支持
    sqlite 支持
    sybase 支持

    (26). Oracle下jdbc executeBatch时,更新行数计算不正确

    使用jdbc的executeBatch 方法,如果数据库为oracle,则无论是否成功更新到数据,返回值都是-2,而不是真正被sql更新到的记录数,这是Oracle JDBC Driver的问题,Druid不作特殊处理。

    (27). Druid如何自动根据URL自动识别DriverClass的

    Druid是根据url前缀来识别DriverClass的,这样使得配置更方便简洁。

    前缀 DriverCLass 描述信息
    jdbc:odps com.aliyun.odps.jdbc.OdpsDriver  
    jdbc:derby org.apache.derby.jdbc.EmbeddedDriver  
    jdbc:mysql com.mysql.jdbc.Driver  
    jdbc:oracle oracle.jdbc.driver.OracleDriver  
    jdbc:microsoft com.microsoft.jdbc.sqlserver.SQLServerDriver  
    jdbc:sybase:Tds com.sybase.jdbc2.jdbc.SybDriver  
    jdbc:jtds net.sourceforge.jtds.jdbc.Driver  
    jdbc:postgresql org.postgresql.Driver  
    jdbc:fake com.alibaba.druid.mock.MockDriver  
    jdbc:mock com.alibaba.druid.mock.MockDriver  
    jdbc:hsqldb org.hsqldb.jdbcDriver  
    jdbc:db2 COM.ibm.db2.jdbc.app.DB2Driver DB2的JDBC Driver十分混乱,这个匹配不一定对
    jdbc:sqlite org.sqlite.JDBC  
    jdbc:ingres com.ingres.jdbc.IngresDriver  
    jdbc:h2 org.h2.Driver  
    jdbc:mckoi com.mckoi.JDBCDriver  
    jdbc:cloudscape COM.cloudscape.core.JDBCDriver  
    jdbc:informix-sqli com.informix.jdbc.IfxDriver  
    jdbc:timesten com.timesten.jdbc.TimesTenDriver  
    jdbc:as400 com.ibm.as400.access.AS400JDBCDriver  
    jdbc:sapdb com.sap.dbtech.jdbc.DriverSapDB  
    jdbc:JSQLConnect com.jnetdirect.jsql.JSQLDriver  
    jdbc:JTurbo com.newatlanta.jturbo.driver.Driver  
    jdbc:firebirdsql org.firebirdsql.jdbc.FBDriver  
    jdbc:interbase interbase.interclient.Driver  
    jdbc:pointbase com.pointbase.jdbc.jdbcUniversalDriver  
    jdbc:edbc ca.edbc.jdbc.EdbcDriver  
    jdbc:mimer:multi1 com.mimer.jdbc.Driver  

    (28). 如何保存监控记录

    https://github.com/alibaba/druid/wiki/%E6%80%8E%E4%B9%88%E4%BF%9D%E5%AD%98Druid%E7%9A%84%E7%9B%91%E6%8E%A7%E8%AE%B0%E5%BD%95

    (29). 我想Log输出SQL执行的信息怎么办?

    https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_LogFilter

    (30). 如何配置Druid内置的log实现

    https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AEdruid%E5%86%85%E7%BD%AE%E7%9A%84log%E5%AE%9E%E7%8E%B0

     

    31. 如何在Spring Boot中集成Druid连接池和监控?

     

    使用Druid Spring Boot Starter,文档地址:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

     

    展开全文
  • web常见问题汇总

    2014-03-09 13:45:56
    web常见问题汇总
  • 正航 PLC常见问题汇总pdf,正航 PLC常见问题汇总
  • MicroBlaze常见问题汇总

    2016-01-29 22:14:20
    MicroBlaze常见问题汇总,用Xilinx的朋友可以管住下
  • abaqus常见问题汇总

    2013-10-22 23:38:34
    abaqus常见问题汇总
  • mysql进阶(十六)常见问题汇总

    万次阅读 2015-09-12 10:06:18
    mysql进阶(十六)常见问题汇总 MySQL视图学习: http://www.itokit.com/2011/0908/67848.html 执行删除操作时,出现如下错误提示: 出现以上问题的原因是:在数据库中涉及到主外键的操作,删除时应对其进行级联...

    mysql进阶(十六)常见问题汇总

    MySQL视图学习:

    http://www.itokit.com/2011/0908/67848.html

     

    执行删除操作时,出现如下错误提示:

    出现以上问题的原因是:在数据库中涉及到主外键的操作,删除时应对其进行级联删除的设置。如下图所示:

    在做删除视图中数据操作时,出现如下错误提示:

    解决方法:删除视图中的数据其实应删除基表中的数据。这样视图中的数据才能够被删除。

     

    注:其实这样做,只是在直接完成SQL命令或手动添加对象信息时,这些字段值的默认值才会起作用。应该在Java代码中也可以将其实现,需要在执行SQL语句时做些手脚。

    MySQL中BLOB字段类型介绍:

    http://www.php100.com/html/webkaifa/database/Mysql/2010/1126/6900.html

    MySQL中各字符含义:

     

    MySQL单数据表中多条件查询语句

    select * from 表名 where 条件1 and 条件2 and 条件3

    亮点

     最后,满足广大朋友的愿望,附作者生活照一张

    大笑

    展开全文
  • cimplicity常见问题汇总pdf,本文汇集了近30条常见问题及解答方案。
  • android常见问题汇总,疑难
  • 数据库常见问题汇总

    2014-05-28 12:36:34
    数据库常见问题汇总 很多常见的ora错误解决方案

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,368
精华内容 2,947
关键字:

常见问题汇总