如何构建一个电子商务网站,专门做网络营销的公司,WordPress建立电商网站,vi设计多少钱目录
问题复现原因分析解决办法修改MYSQL大小写敏感配置问题小结docker的优点#xff1a; 问题复现 最近在将项目迁至docker环境时#xff0c;出现启动时失败#xff0c;报错信息如下#xff1a;
Caused by: org.springframework.beans.factory.BeanCreationException:
…目录
问题复现原因分析解决办法修改MYSQL大小写敏感配置问题小结docker的优点 问题复现 最近在将项目迁至docker环境时出现启动时失败报错信息如下
Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name processEngine:
FactoryBean threw exception on object creation;
nested exception is org.flowable.common.engine.api.FlowableWrongDbException: version mismatch:library version is 6.6.0.0, db version is null Hint:
Set property namedatabaseSchemaUpdate to valuetrue or valuecreate-drop (use create-drop for testing only!) in bean processEngineConfiguration in flowable.cfg.xml for automatic schema creation....
原因分析 因为项目是在更换了docker中Mysql8的数据库时出错的为了保持与原来数据库版本一致我特意安装了Mysql8.0.11版本。导入原来sql脚本后springboot项目启动依然出错。 上网查了资料之后基本断定是因为Mysql数据库没有忽略大小写的原因导致的。通过sql语句查看mysql大小写敏感配置如下
mysql show variables like %case%;
-------------------------------
| Variable_name | Value |
-------------------------------
| lower_case_file_system | OFF |
| lower_case_table_names | 0 |
-------------------------------
2 rows in set (0.01 sec)
解决办法
修改MYSQL大小写敏感配置 这里注意 docker中修改my.cnf 中的配置(lower-case-table-names1)后重启MYSQL 是无效的。 docker只能后面在开始创建安装MYSQL容器时设置大小写敏感有效。直接加--lower-case-table-names1是可以了。记录docker创建mysql容器的完整语句
docker run --name mysql --restartalways \-p 3366:3306 \-e MYSQL_ROOT_PASSWORDroot \-e TZAsia/Shanghai \-di mysql:8.0.11 --lower-case-table-names1 连接并查看新创建的mysql容器的配置已经成功设置成1
mysql SHOW VARIABLES LIKE %case%;
-------------------------------
| Variable_name | Value |
-------------------------------
| lower_case_file_system | OFF |
| lower_case_table_names | 1 |
-------------------------------
2 rows in set (0.07 sec)
问题小结 修改了配置之后项目可以正常启动。通过docker修改mysql配置的操作中明显感觉到使用docker操作会很方便但同时也会因为不熟悉带来一些小麻烦但总体还是提高了开发效率。
docker的优点
Docker有很多优点包括 1. 轻量级和可移植性Docker容器是基于操作系统级虚拟化的相对于传统的虚拟机它更轻量级并且可以在任何环境中移植和运行。 2. 快速部署和扩展使用Docker可以快速创建、部署和启动容器极大地减少了应用程序上线和扩展的时间和麻烦。 3. 环境一致性在开发、测试和生产环境中使用相同的容器可以确保应用程序在不同环境中的一致性避免了由于环境差异导致的问题。 4. 资源利用率高Docker容器可以共享操作系统内核因此可以更有效地使用系统资源提高资源利用率。 5. 简化依赖和配置管理Docker可以将应用程序及其依赖打包在一个容器中简化了依赖和配置管理的过程减少了潜在的冲突和错误。 6. 更好的可移植性和可复用性Docker容器可以轻松地在不同的主机和云平台之间迁移和复用提高了应用程序的可移植性和可复用性。 7. 安全和隔离性Docker提供了强大的安全和隔离机制确保不同容器之间的应用程序和资源互相隔离避免了潜在的安全风险。 总的来说Docker可以帮助开发人员和运维人员更高效地管理和部署应用程序提高开发和部署的速度和可靠性并且更好地利用系统资源。