Mac安装多个版本node、java、python 等开发软件环境,安装、卸载、升级多个数据库

news2025/1/2 22:56:25

安装多个版本node、java、python 等开发软件环境

使用nvm(Node.js Version Manager)来管理多个Node.js版本。
使用jenv来管理多个Java版本。
使用pyenv来管理多个Python版本。

以下是安装和使用这些版本管理器的基本步骤:

1. 安装多个版本Node.js

方式一(使用nvm)

安装nvm:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
# 或者使用wget:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

重新启动终端或者运行以下命令以使用nvm:

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

安装Node.js的不同版本:

nvm install 16
nvm install 20

切换到特定版本的Node.js:

nvm use 20

方式二(使用n)

·······

2. 安装多个版本的Java

方式二(手动配置来切换):

在Mac上安装多个版本的JDK,你可以按照以下步骤操作:
1、下载你需要的JDK版本。你可以从Oracle官网或者其他合适的源下载。
2、安装,默认安装到/Library/Java/JavaVirtualMachines/目录下,多个版本并不会覆盖。
在这里插入图片描述

3、配置环境变量。你可以使用.bash_profile,.zshrc或者其他shell配置文件来设置JAVA_HOME和PATH变量,具体查看下自己电脑使用什么:echo $SHELL。不同类型的Shell所使用的配置文件不同,例如zsh使用的 .zshrc,而bash使用的 .bash_profile。
使用echo $SHELL 命令查看当前系统所使用的Shell类型
macOS Ventura默认使用的zsh
4、以下是一个示例,演示如何在.zshrc中为两个不同版本的JDK设置环境变量:

# 进入当前用户的 home 目录 cd /Users/修改为自己MAC电脑用户名称
# 或者输入
cd ~

# 打开环境变量配置文件
open .zshrc

# 报错:.bash_profile does not exist.
# 第一次配置环境变量,先创建文件
touch .zshrc

# 再次执行打开环境变量配置文件
open .zshrc

.bash_profile 加入:

export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
export JAVA_21_HOME=/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk21='export JAVA_HOME=$JAVA_21_HOME'

5、保存文件并重新加载配置(可以使用source ~/.zshrc或重启终端)。使用java -version命令来验证是否切换到了正确的JDK版本。

6、JDK 版本切换
我们定义了两个别名:jdk8 和 jdk21,其中默认配置为 jdk8。要切换版本,请在终端中输入命令 jdk8或者jdk21即可。

方式二(使用jenv)

安装jenv:

brew install jenv

将jenv添加到 ~/.bash_profile~/.zshrc

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

安装不同版本的Java:

brew install openjdk@11
brew install openjdk@17

将Java版本添加到jenv:

jenv add /Library/Java/JavaVirtualMachines/openjdk-11.0.1.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/openjdk-17.0.1.jdk/Contents/Home

设置全局或局部Java版本:

jenv global openjdk-11

3. 安装多个版本Python

方式一 (使用pyenv)

安装pyenv和pyenv-virtualenv:

brew update
brew install pyenv pyenv-virtualenv

将pyenv初始化添加到shell启动文件:

echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

安装Python版本:

pyenv install 3.8.1
pyenv install 3.10.0

设置全局或局部Python版本:

pyenv global 3.8.1

创建虚拟环境:

pyenv virtualenv 3.8.1 my-project-381

在 macOS 系统上安装常用数据库(MySQL、PostgreSQL、MongoDB、Redis 等)的方法有很多种,比如通过 Homebrew、Docker 或官方安装包。以下是详细教程,涵盖不同安装方式及其配置。

一、通过Homebrew 安装数据库

Homebrew 是 macOS 上强大的包管理工具,可以用来安装大部分数据库。以下是常用数据库的安装与配置。

  1. 安装 Homebrew
    如果没有安装 Homebrew,先执行以下命令安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装后更新 Homebrew:

brew update
  1. 安装 MySQL
# 安装
brew install mysql

# 启动 MySQL 服务
brew services start mysql

# 验证安装是否成功, 查看 MySQL 版本:
mysql --version

# 初始化 MySQL, 执行以下命令初始化 MySQL:
mysql_secure_installation

#根据提示设置 root 密码,禁用匿名用户,删除测试数据库等。

# 登录 MySQL

mysql -u root -p
  1. 安装 PostgreSQL
# 安装
brew install postgresql

# 启动 PostgreSQL 服务
brew services start postgresql

# 验证安装是否成功,查看 PostgreSQL 版本:
psql --version

# 初始化数据库
initdb /usr/local/var/postgres

# 连接到 PostgreSQL ,默认用户是当前 macOS 的用户名,可以用以下命令登录:
psql postgres

#创建新用户和数据库
CREATE USER myuser WITH PASSWORD 'mypassword';
CREATE DATABASE mydb OWNER myuser;
  1. 安装 MongoDB
# 安装
brew tap mongodb/brew
brew install mongodb-community@6.0

# 启动 MongoDB 服务
brew services start mongodb/brew/mongodb-community

# 验证安装是否成功,查看 MongoDB 版本:
mongod --version

# 连接 MongoDB
mongosh

#常用命令
#查看所有数据库:
show dbs;

#创建/切换数据库:
use mydb;

# 插入文档:
db.mycollection.insertOne({ name: "John", age: 30 });
  1. 安装 Redis
# 安装
brew install redis

# 启动 Redis 服务
brew services start redis

# 验证安装是否成功,查看 Redis 版本:
redis-server --version

# 连接 Redis
redis-cli

# 常用命令
#查看所有键:
keys *

#设置键值对:
set mykey myvalue

# 获取键值:
get mykey

二、通过 Docker 安装数据库

如果需要快速运行数据库,Docker 是一个轻量级的选择。

  1. 安装 Docker
    从 Docker 官方网站 下载并安装 Docker Desktop for Mac。

  2. 安装并运行数据库容器

# MySQL
# 拉取并运行 MySQL 容器:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:latest
# 登录 MySQL:
docker exec -it mysql-container mysql -uroot -p

#PostgreSQL
#拉取并运行 PostgreSQL 容器:
docker run --name postgres-container -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:latest
# 登录 PostgreSQL:
docker exec -it postgres-container psql -U postgres

# MongoDB
# 拉取并运行 MongoDB 容器:
docker run --name mongodb-container -p 27017:27017 -d mongo:latest
#连接 MongoDB:
docker exec -it mongodb-container mongosh

# Redis
# 拉取并运行 Redis 容器:
docker run --name redis-container -p 6379:6379 -d redis:latest
# 连接 Redis:
docker exec -it redis-container redis-cli

三、通过官方安装包安装数据库

如果不想使用 Homebrew 或 Docker,也可以直接下载官方安装包:

  1. MySQL
    下载地址:MySQL 官方下载
    安装后可以通过 System Preferences 启动和管理 MySQL 服务。
  2. PostgreSQL
    下载地址:PostgreSQL 官方下载
    提供 GUI 工具,如 pgAdmin,可以直观管理数据库。
  3. MongoDB
    下载地址:MongoDB 官方下载
  4. Redis
    下载地址:Redis 官方下载

四、数据库管理工具

为方便操作和管理数据库,可以使用以下图形化工具:

MySQL:
MySQL Workbench
DBeaver
PostgreSQL:
pgAdmin
TablePlus
MongoDB:
MongoDB Compass
Redis:
RedisInsight

五、常见问题与解决

# 1. 数据库端口冲突
# 检查占用的端口:
lsof -i :3306 # MySQL 示例

#停止占用的服务:
kill -9 <PID>
2. 无法连接数据库,确保服务已启动:
brew services list
# 检查防火墙或网络配置,确保本地和容器的端口是开放的。
# 通过 Homebrew、Docker 或官方安装包安装数据库各有优缺点,选择适合自己开发环境的方案。如果是多项目开发,推荐 Docker 化部署以保持环境一致性。

在 macOS 上,无论通过 Homebrew、Docker 还是官方安装包安装的数据库,都有相应的卸载和升级方法。

一、卸载和升级Homebrew 安装的数据库

  1. 卸载数据库
    使用以下命令卸载指定数据库:
# MySQL:
brew uninstall mysql

#PostgreSQL:
brew uninstall postgresql

# MongoDB:
brew uninstall mongodb-community@6.0

# Redis:
brew uninstall redis

#彻底清理数据文件
#卸载后,数据库的数据文件可能仍然保留。要彻底清理:
rm -rf /usr/local/var/mysql        # MySQL 数据文件
rm -rf /usr/local/var/postgres     # PostgreSQL 数据文件
rm -rf /usr/local/var/mongodb      # MongoDB 数据文件
rm -rf /usr/local/var/db/redis     # Redis 数据文件
  1. 升级Homebrew 安装数据库
    Homebrew 的升级命令非常简单,但需要注意升级后数据文件的兼容性。

升级 Homebrew, 确保 Homebrew 是最新版本:

brew update
brew upgrade

升级Homebrew 安装指定数据库

# MySQL:
brew upgrade mysql

# PostgreSQL:
brew upgrade postgresql

注意:PostgreSQL 升级后可能需要迁移数据。可以使用 pg_dump 备份数据库,然后还原到新版本:

pg_dumpall > backup.sql
brew upgrade postgresql
psql -f backup.sql postgres

# MongoDB:
brew upgrade mongodb-community@6.0

# Redis:
brew upgrade redis

检查升级后的版本

mysql --version
psql --version
mongod --version
redis-server --version

二、卸载和升级Docker 安装的数据库

Docker 容器的升级和卸载非常灵活。

  1. 卸载数据库容器
#停止容器:
docker stop <container_name>

#删除容器:
docker rm <container_name>

#查看镜像:
docker images

#删除数据库镜像:
docker rmi <image_id>
  1. 升级数据库容器
    拉取新版本的镜像, 以 MySQL 为例:
docker pull mysql:latest

#备份旧数据
#在升级前,将旧容器中的数据备份到本地。可以通过挂载数据卷的方式备份:
docker cp <container_name>:/var/lib/mysql /path/to/backup

#重新运行新版本的容器
#删除旧容器后,使用新镜像重新运行数据库容器:

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:latest

#验证数据完整性
#将备份的数据还原到新容器中。

三、卸载和升级官方安装包的数据库

官方安装包管理的数据库卸载和升级需要手动操作,通常与 GUI 管理工具结合使用。

  1. 卸载数据库
#MySQL
#打开终端,运行:
sudo rm -rf /usr/local/mysql /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf ~/Library/Preferences/com.oracle.mysql.*
#删除 MySQL 的数据目录:
sudo rm -rf /usr/local/var/mysql

#PostgreSQL
#运行以下命令卸载 PostgreSQL:

rm -rf /Library/PostgreSQL
rm -rf /private/etc/postgres-reg.ini
rm -rf ~/.psql_history

#MongoDB
#停止 MongoDB:
brew services stop mongodb-community
#删除 MongoDB 的安装文件和数据文件:
sudo rm -rf /usr/local/var/mongodb
sudo rm -rf /usr/local/bin/mongo*

#Redis
#停止 Redis 服务:
brew services stop redis
#删除 Redis 文件:
sudo rm -rf /usr/local/var/db/redis
sudo rm -rf /usr/local/etc/redis.conf
  1. 升级数据库
    下载新版安装包
    访问数据库的官方网站,下载最新的安装包。
    MySQL:MySQL 下载页面
    PostgreSQL:PostgreSQL 下载页面
    MongoDB:MongoDB 下载页面
    Redis:Redis 下载页面]

  2. 升级时的数据迁移
    MySQL 和 PostgreSQL: 使用导出导入工具进行数据迁移:

mysqldump -u root -p --all-databases > backup.sql
## 重新安装新版本后
mysql -u root -p < backup.sql
pg_dumpall > backup.sql
## 重新安装新版本后
psql -f backup.sql postgres

四、总结

安装方式卸载方法升级方法
Homebrewbrew uninstall brew upgrade
Docker删除容器和镜像拉取新镜像,备份还原数据
官方包手动删除安装目录和配置文件下载新版本手动覆盖安装

如果是生产环境,建议使用 Docker 来管理数据库服务,升级和卸载更加灵活,同时可以轻松切换版本和回滚操作。

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

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

相关文章

【深度学习】卷积网络代码实战ResNet

ResNet (Residual Network) 是由微软研究院的何凯明等人在2015年提出的一种深度卷积神经网络结构。ResNet的设计目标是解决深层网络训练中的梯度消失和梯度爆炸问题&#xff0c;进一步提高网络的表现。下面是一个ResNet模型实现&#xff0c;使用PyTorch框架来展示如何实现基本的…

添砖java第四更@(+)@

今天的学习内容主要是围绕着实体类来进行的&#xff0c;就是说在java里面我们常常会把数据存放和方法分别存放在不同的类里面。 首先就是关于实体类是什么&#xff0c;实体类就是只提供了get方法,set方法,和默认构造器的类。 接着就是熟悉java与别的语言的不同之处就在于它是…

算法题(19):多数元素

审题&#xff1a; 数组不为空且一定存在众数。需要返回众数的数值 思路&#xff1a; 方法一&#xff1a;哈希映射 先用哈希映射去存储对应数据出现的次数&#xff0c;然后遍历找到众数并输出 当然也可以在第一次映射的过程中就维护一个出现次数最多的数据&#xff0c;这样子就可…

电子商务网站的三层架构的理解和实践

在电子商务领域&#xff0c;网站架构的设计对于系统的稳定性、可扩展性和用户体验至关重要。其中&#xff0c;三层架构作为一种经典的设计模式&#xff0c;被广泛应用于各类电子商务网站中。本文将从理论、理解和实践三个方面&#xff0c;详细探讨电子商务网站的三层架构。 一、…

LVS 负载均衡原理 | 配置示例

注&#xff1a;本文为 “ LVS 负载均衡原理 | 配置” 相关文章合辑。 部分内容已过时&#xff0c;可以看看原理实现。 使用 LVS 实现负载均衡原理及安装配置详解 posted on 2017-02-12 14:35 肖邦 linux 负载均衡集群是 load balance 集群的简写&#xff0c;翻译成中文就是负…

JavaScript甘特图 dhtmlx-gantt

背景 需求是在后台中&#xff0c;需要用甘特图去展示管理任务相关视图&#xff0c;并且不用依赖vue&#xff0c;兼容JavaScript原生开发。最终使用dhtmlx-gantt&#xff0c;一个半开源的库&#xff0c;基础功能免费&#xff0c;更多功能付费。 甘特图需求如图&#xff1a; 调…

领域驱动设计第一篇-DP主题

一&#xff1a;领域驱动设计概述 领域驱动设计。Domain-Driven Design 可以理解为基于领域的工程设计。 1&#xff1a;什么是领域&#xff1f; 初步理解领域&#xff1a;业务问题的范畴。 领域可大可小&#xff0c;对应着大小业务问题的边界。业务上要做的几个事&#xff0…

EMNLP'24 最佳论文解读 | 大语言模型的预训练数据检测:基于散度的校准方法

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 点击 阅读原文 观看作者讲解回放&#xff01; 作者简介 张伟超&#xff0c;中国科学院计算所网络数据科学与技术重点实验室三年级直博生 内容简介 近年来&#xff0c;大语言模型&#xff08;LLMs&#xff09;的…

IntelliJ IDEA 远程调试

IntelliJ IDEA 远程调试 在平时开发 JAVA 程序时&#xff0c;在遇到比较棘手的 Bug 或者是线上线下结果不一致的情况下&#xff0c;我们会通过打 Log 或者 Debug 的方式去定位并解决问题&#xff0c;两种方式各有利弊&#xff0c;今天就简要介绍下如何通过远程 Debug 的情况下…

【Webug】攻防实战详情

世界上只有一种真正的英雄主义&#xff0c;那就是认清了生活的真相后&#xff0c;仍然热爱她 显错注入 首先整体浏览网站 注入点&#xff1a; control/sqlinject/manifest_error.php?id1 判断注入类型 输入: and 11 正常, 再输入: and 12 还正常, 排除数字型 输入单引号:…

SpringMVC核心、两种视图解析方法、过滤器拦截器 “ / “ 的意义

SpringMVC的执行流程 1. Spring MVC 的视图解析机制 Spring MVC 的核心职责之一是将数据绑定到视图并呈现给用户。它通过 视图解析器&#xff08;View Resolver&#xff09; 来将逻辑视图名称解析为具体的视图文件&#xff08;如 HTML、JSP&#xff09;。 核心流程 Controlle…

CyclicBarrier线程辅助类的简单使用

文章目录 简述内部机制构造函数使用案例异常处理 简述 CyclicBarrier 是另一个用于协调多个线程之间操作的同步辅助类&#xff0c;它允许一组线程互相等待彼此到达一个共同的屏障点&#xff08;barrier&#xff09;。与 CountDownLatch 不同的是&#xff0c;CyclicBarrier 可以…

B站推荐模型数据流的一致性架构

01 背景 推荐系统的模型&#xff0c;通过学习用户历史行为来达到个性化精准推荐的目的&#xff0c;因此模型训练依赖的样本数据&#xff0c;需要包括用户特征、服务端推荐的视频特征&#xff0c;以及用户在推荐视频上是否有一系列的消费行为。 推荐模型数据流&#xff0c;即为…

无需训练!多提示视频生成最新SOTA!港中文腾讯等发布DiTCtrl:基于MM-DiT架构

文章链接&#xff1a;https://arxiv.org/pdf/2412.18597 项目链接&#xff1a;https://github.com/TencentARC/DiTCtrl 亮点直击 DiTCtrl&#xff0c;这是一种基于MM-DiT架构的、首次无需调优的多提示视频生成方法。本文的方法结合了新颖的KV共享机制和隐混合策略&#xff0c;使…

尔湾市圣诞节文化交流会成功举办,展示多元文化魅力

洛杉矶——12月21日,圣诞节文化交流会在尔湾成功举办。圣诞节文化交流会旨在促进不同文化之间的交流与理解。通过举办舞蹈表演、演讲和互动游戏等,为参与者提供了一个展示和欣赏多元文化艺术的平台。这些活动不仅增加了社区成员之间的互动,也加深了他们对不同文化传统和艺术形式…

适用于项目经理的跨团队协作实践:Atlassian Jira与Confluence集成

适用于项目经理的跨团队协作实践&#xff1a;Atlassian Jira与Confluence集成 现代项目经理的核心职责是提供可视性、保持团队一致&#xff0c;并确保团队拥有交付出色工作所需的资源。在过去几年中&#xff0c;由于分布式团队的需求不断增加&#xff0c;项目经理这一角色已迅速…

Spring Cloud LoadBalancer (负载均衡)

目录 什么是负载均衡 服务端负载均衡 客户端负载均衡 Spring Cloud LoadBalancer快速上手 启动多个product-service实例 测试负载均衡 负载均衡策略 自定义负载均衡策略 什么是负载均衡 负载均衡(Load Balance&#xff0c;简称 LB) , 是高并发, 高可用系统必不可少的关…

探究步进电机与输入脉冲的关系

深入了解步进电机 前言一、 步进电机原理二、 细分三、脉冲数总结 前言 主要是探究以下内容&#xff1a; 1、步进电机的步进角。 2、什么是细分。 3、脉冲的计算。 最后再扩展以下STM32定时器的计算方法。 一、 步进电机原理 其实语言描述怎么样都不直观&#xff0c;我更建议…

HCIA-Access V2.5_7_1_XG(S)原理_系统概述

近年来&#xff0c;随着全球范围内接入市场的飞快发展以及全业务运营的快速开展&#xff0c;已有的PON技术标准在带宽需求&#xff0c;业务支撑能力以及接入节点设备和配套设备的性能提升等方面都面临新的升级需求&#xff0c;而GPON已经向10G GPON演示&#xff0c;本章将介绍1…

安装了python,环境变量也设置了,但是输入python不报错也没反应是为什么?window的锅!

目录 问题 结论总结 衍生问题 1 第1步&#xff1a;小白python安装&#xff0c;不要埋头一直点下一步&#xff01;&#xff01;&#xff01; 2 第2步&#xff1a;可以选择删了之前的&#xff0c;重新安装python 3 第3步&#xff1a;如果你不想或不能删了重装python&#…