win11安装wsl作为linux子系统并当作服务器

wsl安装

打开控制面板,找到启用或关闭windows功能

在这里插入图片描述
开启windows虚拟机监控平台适用于Linux的Windows子系统,重启电脑。

打开microsoft store搜索ubuntu,找到合适的版本下载安装

在这里插入图片描述
输入wsl -l如下所示,即为安装成功。

在这里插入图片描述

安装过程比较繁琐,参考微软官方教程,注意将设置默认wsl2。

使用WSL

在使用WSL时,使用命令wsl进入linux子系统,如下,默认挂在c盘

在这里插入图片描述

当然也可以通过wsl --cd D:/tmp指定挂在目录,路劲必须是绝对路径,如下:

在这里插入图片描述
还可以通过Linux的目录,进入到子系统的制定目录:

在这里插入图片描述

此时就启动了基于windows的linux子系统,其本身就是一个ubuntu系统,通过heyper-V实现。

wsl非常轻量级,比使用虚拟机软件构件linux要轻量级的多。进入wsl需要什么软件直接下载即可。

配置开发环境

wsl作为windows的子系统也是应用广泛,主流软件都适配了wsl的开发环境,例如jetbrians全家桶,如下:

在这里插入图片描述
在goland的主界面有可选项wsl,如果要使用wsl远程开发,选择wsl即可。选择wsl后会下载一个客户端,然后进行远程开发。

可以选择IDE的版本,并在wsl中新建目录。如下

在这里插入图片描述

建完新目录后进入,远程客户端开发界面,如下图,显示了wsl的相关信息和上传于下载的速度信息。

在这里插入图片描述

在该编辑其可以实现开发任务了。

vs code也是支持wsl开发的,但是一般情况下不使用,相对来说远程开发的效率是没有本地高的。

配置服务

在开发中windows上很多使用起来是不方便的,基于wsl就可以完美解决这个问题。例如docker,k8s等,其运行环境只能在linux系统上。

如何将wsl配置,在主机上访问,并且在局域网内部也能访问呢?

安装mysql

在wsl上安装mysql并配置,使在主机上也能访问。

ubuntu上安装mysql8.0就不再过多叙述了,之前的文章有较为详细的过程,这里主要叙述遇到的问题和解决问题的过程。

  1. 本地mysql访问权限问题

安装配置完mysql后使用mysql -u root -p访问数据库报错:

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

在这里插入图片描述

但是使用管理员权限就没问题sudo mysql -u root -p。这个问题虽然不影响本地上的访问,但是影响远程访问,因为远程访问是无法加sudo的。

上述问题是由于mysql命令对文件的执行权限不够,连接mysql server需要通过mysqld.sock但是切到对应目录下查看权限,如下:

在这里插入图片描述

mysqld的权限为d显示mysql用户执权限不足,甚至都不能读取,那么就需要对文件授权,如下
在这里插入图片描述

或者直接sudo chomd 777 mysqld给予全部权限。

授权之后mysql命令就有权限了,使用mysql -u root -p 就不会再报错了,如下:

在这里插入图片描述

外部访问mysql

安装完mysql需要配置用户的远程访问,才可以实现该功能。

service mysql status确保mysql服务启动:

在这里插入图片描述

mysql -u root -p命令没有sudo也可以连接本地数据库。

确保3306端口开放并处于监控中
在这里插入图片描述

可视化工具远程连接
在这里插入图片描述

连接数据库一般需要ipusernamepassword。用户名和密码就不再说了,这个ip是wsl的私有ip,在win11的局域网是自动绑定的,只要知道wsl的内部ip即可,通过ip addr或者ifconfig查看,如下:

在这里插入图片描述
图上显示的wsl的ip就是172.19.129.149这个ip是私有的和192开头的差不多,这个ip和win11的局域网自动绑定,直接通过该ip实现连接如下:

在这里插入图片描述

在win11中通过数据库可视化软件使用wsl的ip连接wsl的数据库。

安装go环境

在wsl中安装go环境直接apt安装或者snap安装即可,当然也可以通过goland安装,小编就是使用goland安装的最新版。

使用goland安装会自动下载gopath和goroot了,并且在/home/xiaoxu类似的路径下,需要配置环境变量:

export GOROOT=/home/xiaoxu/sdk/go1.21.6
export GOPATH=/home/xiaoxu/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

同理安装Java,python环境即可。

外部访问

在win11中如何访问wsl的网络呢?

小编在Goland的wsl远程开发,写了一个建议的gin服务,如下:

在这里插入图片描述
启动服务后在本地显然是可以访问的

在这里插入图片描述
在这里插入图片描述

那么在win11中呢?

小编直接将上述地址复制到了浏览器的地址栏,出乎意料的是竟然能直接访问,如下:

在这里插入图片描述
也就是所在wsl启动的web服务,在win11中都可以通过localhost加对应端口访问。

在这里插入图片描述
ip自动实现绑定可以直接访问,对web服务目前是这样,可能是对http协议可以直接访问。

docker安装

安装教程就不过多叙述了,网上教程很多,这里推荐一个比较详细的教程https://linux.cn/article-14871-1.html

sudo service docker status查看docker是否启动

在这里插入图片描述

sudo service docker start启动docker

在这里插入图片描述

当我需要将docker设置为开机自启时又出现了问题如下:

System has not been booted with systemd as init system (PID 1). Can't operate

在这里插入图片描述
使用apt安装了也不可以使用,正在我疑惑之际看到了修复 "System has not been booted with systemd as init system "的错误。
文章,解决了我的疑惑,感谢作者大大!

System has not been booted with systemd as init system (PID 1). Can't operate.
原因:您的Linux系统没有使用systemd。
原因是你想用systemd命令来管理Linux上的服务,但你的系统并没有使用systemd,wsl使用的是经典的SysV init(sysvinit)系统。

Alt
使用等价命令依然可以得到同样的效果。

在这里插入图片描述

sudo chmod 777 docker.sock再次授权。

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

出现上述错误说明docekr没有启动成功,重启docker即可。

除了上述使用service名另外,也可以安装systemctl命令。

参考

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/659981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang语言异常机制解析:错误策略与优雅处理

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站https://www.captainbed.cn/kitie。 前言 作为开发者来说,我们没办法保证程序在运行过程中永远不会出现异常,对于异常…

Maven:Dmaven.multiModuleProjectDirectory system propery is not set.

eclipse中使用maven插件的时候,运行run as maven build的时候报错 -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match. 直接的解决方法:使用低版本的maven 可以设一个环境变量…

分布式搜索引擎_学习笔记_2

分布式搜索引擎_学习笔记_2 在昨天的学习中,我们已经导入了大量数据到elasticsearch中,实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以今天,我们研究下elasticsearch的数据搜索功能。我们会分别使用…

Vue.js 中子组件向父组件传值的方法

Vue.js 是一款流行的 JavaScript 前端框架,它提供了一套完整的工具和 API,使得开发者可以更加高效地构建交互式的 Web 应用程序。其中,组件化是 Vue.js 的一个核心概念,通过组件化可以将一个复杂的应用程序拆分成多个独立的部分&a…

系统架构设计师考试大纲2023

一、 考试方式(机考) 考试采取科目连考、 分批次考试的方式, 连考的第一个科目作答结束交卷完成后自动进 入第二个科目, 第一个科目节余的时长可为第二个科目使用。 高级资格: 综合知识科目考试时长 150 分钟&#xff…

基于ecal的foxglove studio可视化工具的使用

ecal通讯在自动驾驶和机器人中的应用越来越多,在调试测试过程中,可以使用ecal monitor,ecal recoder和ecal player等工具,对ecal 消息进行监测录制回播。但是,有时候需要对消息进行可视化查看,比如雷达点云信息,相机图像等,可以使用foxglove studio可视化工具。 Foxg…

CSRF靶场练习

简述:CSRF漏洞实际很少;条件限制很多;局限性很大;实验仅供参考,熟悉csrf概念和攻击原理即可 Pikachu靶场 CSRF GET 登录用户vince的账户可以看到用户的相关信息; 点击修改个人信息,发现数据包…

轻量式RPC调用日志链路设计方案

导语: 调用链跟踪系统,又称为tracing,是微服务设计架构中,从系统层面对整体的monitoring和profiling的一种技术手 背景说明 由于我们的项目是微服务方向,中后台服务调用链路过深,追踪路径过长,其中某个服务报错或者异…

【Redis】实现购物秒杀及分布式锁

Redis实现购物秒杀及分布式锁 全局唯一ID Redis自增ID策略 ID构造是:时间戳 + 计数器 每天一个key,方便统计订单量 业务实现 获取指定时间的秒数 LocalDateTime timeBegin = LocalDateTime.of(2024, 1, 1, 0, 0, 0); long second = timeBegin.toEpochSecond(ZoneOffset…

Java面试题宝典(万字长文)

Java 基础 1. JDK 和 JRE 有什么区别? JRE是Java运行环境,即(Java Runtime Environment),也就是Java平台。所有的Java程序都要在JRE下才能运行。 JDK是开发工具包,即(Java Development Kit&am…

【Docker与微服务】基础篇

1 Docker简介 1.1 docker是什么 1.1.1 问题:为什么会有docker出现? 假定您在开发一个项目,您使用的是一台笔记本电脑而且您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。您正在开发的应用依赖于您当前的配置且还要依…

android 自定义下拉框

一、 简介: 原生Android 提供的spinner下拉框不怎么方便,样式有点丑。修改起来麻烦,于是就自己动手写了一下拉列表。 实现原理使用的是,popwindow弹框,可实现宽高自定义,下拉列表使用listview. 二、pop弹框…

大模型基础架构的变革:剖析Transformer的挑战者(中)

上一篇文章中,我们介绍了RetNet、RWKV、Mamba等有可能会替代Transformer的模型架构,这一篇文章我们将要介绍另外三个有可能会替代Transformer的模型架构,它们分别是UniRepLKNet、StripedHyena、PanGu-π,想了解之前的内容&#xf…

vue项目改造服务端渲染

vue项目改造服务端渲染 概述 【定义】 服务器渲染的Vue应用程序被认为是"同构"或"通用",因为应用程序的大部分代码都可以在服务器和客户端上运行 【优点】 与传统SPA相比,服务器端渲染(SSR)的优势主要在于: 1、更好的…

二叉树-堆应用(1)

目录 堆排序 整体思路 代码实现 Q1建大堆/小堆 Q2数据个数和下标 TopK问题 整体思路 代码实现 Q1造数据CreateData Q2建大堆/小堆 建堆的两种方法这里会用到前面的向上/向下调整/交换函数。向上调整&向下调整算法-CSDN博客 堆排序 整体思路 建堆(直…

Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(三)

1.QSet: toList 中的toList 函数已不存在,遇到xx->toList改成直接用,如下: 2.开源QWT 图形库中QwtDial中的 setPenWidth 变成 setPenWidthF函数。 3.QDateTime 中无setTime_t 改为了setSecsSinceEpoch函数。 4.QRegExp 类已不存在 可以用Q…

【定位·HTML】

定位布局可以分为以下四种: 静态定位(inherit) 相对定位(relative) 绝对定位(absolute) 固定定位(fixed) 一般的标签元素不加任何定位属性时,默认都属于静态…

百川终入海 ,一站式海量数据迁移工具 X2Doris 正式发布

在大数据分析领域,Apache Doris 作为广受认可的开源实时数据仓库,已经在越来越多行业用户的真实业务场景中得到广泛应用,成为许多企业数据分析基础设施的重要基座。尤其在过去一年多的时间里,越来越多企业选择基于 Apache Doris 进…

node.js(nest.js控制器)学习笔记

nest.js控制器: 控制器负责处理传入请求并向客户端返回响应。 为了创建基本控制器,我们使用类和装饰器。装饰器将类与所需的元数据相关联,并使 Nest 能够创建路由映射(将请求绑定到相应的控制器)。 1.获取get请求传参…

牛客——中位数图(连续子数组和二维前缀和)

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。 输入描述: 第一行为两个正…