docker tomcat8 mysql8部署常见错误

  1. 出现docker: out of memory bug ,内存溢出
    解决方法:
    free -mh 应该看一下内存
    内存优化/买内存
  2. **出现java.util.zip.ZipException: error in opening zip file **
    传输过程中WAR包损坏
    查看代码改变情况与传输情况
    备注一点的就是:尽量不要使用IDEA的全局搜索(IDEA的全局搜索经常不知所措的删除一些代码,垃圾)
  3. init datasource error
    Communications link failure
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    大概率是数据库配置有问题,很大可能就是数据库url配置的问题,对于数据库url要仔细检查
  4. Uncaught TypeError: Cannot read property '0' of undefined
    provisional headers are shown
    很大可能也是数据库的原因
  5. The error occurred while executing a query:要具体看到query语句
    windows上是默认表不区分大小写,linux默认表区分大小写,这个坑要记得。
  6. init datasource error
    java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
    mysql8需要在连接的url字符串后加:allowPublicKeyRetrieval=true
  7. ** IDEA打包,打包成的*.war的代码都改变了,但是浏览器没显示改变**
    浏览器缓存的问题。 这种已经改了的,但是前端显示没改变,就要想到是各种缓存的问题。
  8. 修改mysql配置文件/etc/mysql/my.cnf加入lower_case_table_names=1后,启动状态为Exit(1)
    /etc/mysql/my.cnf 这个文件0权限都不能动。。动了就不好使。 需要修改参数,就一定在启动容器的时候加入
    解决方法:把文件修改成原样,然后执行
    sudo chmod a-w my.cnf         
    sudo docker cp my.cnf 容器id:/etc/mysql/my.cnf
    sudo docker start mysql
    
  9. 原来打包成镜像,数据是不会存在于镜像当中的。
    原则是:镜像中不存储数据。
  10. docker 访问持久化数据,-v -mount -tmpfs
       **-mount可以支持创建集群服务的数据卷,而-v不行,其余基本没差          个人感觉就是-v是简化版的-mount,更加常见**
    

连数据库的四要素 总结一下:

  1. 连的驱动得对(mysql的就导mysql驱动,oracle的就导入oracle的驱动)
  2. 连接地址得对
  3. 数据库名称得对
  4. 用户名密码得对
原文地址:https://www.cnblogs.com/whyaza/p/11352117.html