WSL2及SpringBoot采坑指南
1、由于下载了Ubuntu20,想启动zookeeper,提示sleep: cannot read realtime clock: Invalid argument
于是百度告诉我要去更新WSL2,或者用Ubuntu18版本
官方指南:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
-
首先win版本需要更新到2004,没有收到更新的可以通过易升来升级到最新版本
-
需要的话下载内核:https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel
-
bios启动虚拟化
-
提示由于虚拟磁盘系统限制,无法完成请求的操作。虚拟硬盘文件必须是未压缩和未加密的,把linux安装目录(C:\Users\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc)的LocalState文件夹的压缩节省空间去掉,注意这里不用选及其子目录,只用这一个目录即可。详见官方指南
-
执行
wsl --set-version Ubuntu 2
设置ubuntu为wsl2
2、升级之前,我是可以用2222端口通过xshell连接到ubuntu的,升级完以后连不上了。无论怎么卸载sshd,重装都没用。
最最最后只是把2222端口改成了22端口,就能连上了……
3、想偷懒就使用win的mysql和redis服务,死活连不上。
-
检查端口是否可以连接
telnet 127.0.0.1 6379
telnet 127.0.0.1 3306
这里发现不可以连接
查看本机局域网ip为192.168.1.3,尝试连接这个ip,3306连接成功,6379连接失败。这里将demo中的配置文件都换成这个ip,注意配置文件写法不要写错,注意版本
spring.datasource.url=jdbc:mysql://192.168.1.3:3306/jpa?serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root spring.redis.host=192.168.1.3 spring.redis.port=6379 spring.redis.timeout=5000 spring.redis.password= spring.redis.database=0
4、启动redis时未指定配置文件,应该指定配置文件为自己的redis.conf
5、zk原本只设置了dataDir,启动后已经在目录中生成了version-2目录。此时再设置datalogDir,启动闪退。这里删除原本产生的version目录重新启动即可。
6、注意win中的java版本要和linux中保持一致,由于win版本为11,linux中一开始安装的jdk1.8,导致项目启动后无法使用SpringBoot的部分功能