OpenStack离线Train版安装系列—1控制节点-环境准备

2024-09-08 10:58

本文主要是介绍OpenStack离线Train版安装系列—1控制节点-环境准备,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。
在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。

OpenStack部署系列文章
OpenStack Victoria版 安装部署系列教程
OpenStack Ussuri版 离线安装部署系列教程(全)
OpenStack Train版 离线安装部署系列教程(全)
欢迎留言沟通,共同进步。


文章目录

  • 控制节点环境准备
    • 一、部署规划
      • 1.系统说明
      • 2.部署规划
    • 二、环境准备
      • 1.基础网络
      • 2.主机名称
        • (1)文件修改
        • (2)验证连通性
      • 3.免密登录
      • 4.禁用防火墙
        • (1)关闭iptables
        • (2)关闭 selinux
      • 5.yum源配置
        • (1)新建repo文件
        • (2)更新软件源
    • 三、系统基础软件安装
      • 1.Linux工具
      • 2.NTP时间同步
    • 四、OpenStack基础软件安装
      • 1、(省略)OpenStack仓库安装
      • 2.OpenStack客户端相关软件
      • 3.数据库SQL database
      • 4、消息队列Message queue
      • 5、缓存服务Memcached
      • 6、服务发现与注册Etcd
    • 五、完成控制节点环境准备


控制节点环境准备

一、部署规划

官方参考链接:OpenStack安装指南:环境,OpenStack安装指南:服务组件
CSDN博客参考:CentOS7安装OpenStack(Rocky版)-01.控制节点的系统环境准备

1.系统说明

(1)服务器操作系统
系统:Centos7
版本:CentOS-7-x86_64-Minimal-1908
镜像:阿里云下载地址CentOS-7-x86_64-Minimal-1908

(2)开发环境
VMware workstation Pro
在这里插入图片描述

(3)OpenStack版本:Train

2.部署规划

在这里插入图片描述
(1)节点说明
控制节点:controller,服务组件
计算节点:compute1,服务组件
可选节点:block等,其他各种服务组件。。。等

(2)物理网络
在部署之前做好网络部署规划,相关参考OpenStack官方安装指南:环境-网络。
①管理网IP地址段选择,建议使用使用官方文档中的示例地址段;
②物理网卡1,默认使用第1张网卡ens33,作为管理网卡;
③物理网卡2,可以为供应商网络;provider network。
至少准备两张网卡,建议网卡数量≥3.

管理网络:10.0.0.0/24;
供应网络:192.168.2.0/24,(使用网卡,以及使用网段可以根据实际情况进行确定);

(3)虚拟网络

  • 供应网络:192.168.2.0/24,ens34,根据实际情况确定;参考launch-instance-networks-provider
    在这里插入图片描述

在这里插入图片描述

  • 私有网络1:172.16.0.0/24,实例私有局域网;参考launch-instance-networks-selfservice
    在这里插入图片描述

在这里插入图片描述

(4)规划概览

主机名管理网络网卡1供应网络网卡2配置
controller10.0.0.11ens33192.168.2.11ens344C8G64G
compute110.0.0.31ens33192.168.2.31ens344C8G64G
compute210.0.0.32ens33192.168.2.32ens344C8G64G
compute310.0.0.33ens33192.168.2.33ens344C8G64G

注:更多节点类型,可以依次递增,但最好完成各类网络的规划。

本教程实际测试为,在后面的教程中以下面的地址为准。

主机名管理网络网卡1供应网络网卡2配置
controller192.168.232.101ens33192.168.2.101ens344C8G64G
compute1192.168.232.111ens33192.168.2.111ens344C8G64G
compute2192.168.232.112ens33192.168.2.112ens344C8G64G
compute3192.168.232.113ens33192.168.2.113ens344C8G64G

二、环境准备

1.基础网络

(1)网卡配置
博客参考:Centos7设置静态IP地址,CentOS7设置静态IP而且还可以上网
配置文件:/etc/sysconfig/network-scripts/ifcfg-ens33

[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
# BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
# IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="ea1c227b-1fad-48f0-942f-968d183b3523"
DEVICE="ens33"
ONBOOT="yes"# add follow
BOOTPROTO="static"
IPADDR="192.168.232.101"
NETMASK="255.255.255.0"
GATEWAY="192.168.232.2"
DNS1="1.1.1.1"

(2)网关配置
配置文件:/etc/networks

[root@controller ~]# cat /etc/networks
default 0.0.0.0
loopback 127.0.0.0
link-local 169.254.0.0#add follow
NETWORKING=yes
GATEWAY=192.168.232.2

2.主机名称

(1)文件修改

配置文件/etc/hosts
控制节点

hostnamectl set-hostname controller
exec bash
[root@controller ~]# hostnamectl set-hostname controller
echo 192.168.232.101 controller >> /etc/hosts
echo 192.168.232.111 compute1 >> /etc/hosts
echo 192.168.232.112 compute2 >> /etc/hosts
echo 192.168.232.113 compute3 >> /etc/hosts

计算节点1

hostnamectl set-hostname compute1
exec bash
[root@compute1 ~]# hostnamectl set-hostname compute1
echo 192.168.232.101 controller >> /etc/hosts
echo 192.168.232.111 compute1 >> /etc/hosts
echo 192.168.232.112 compute2 >> /etc/hosts
echo 192.168.232.113 compute3 >> /etc/hosts

计算节点2

hostnamectl set-hostname compute2
exec bash
[root@compute2 ~]# hostnamectl set-hostname compute2
echo 192.168.232.101 controller >> /etc/hosts
echo 192.168.232.111 compute1 >> /etc/hosts
echo 192.168.232.112 compute2 >> /etc/hosts
echo 192.168.232.113 compute3 >> /etc/hosts

计算节点3

hostnamectl set-hostname compute3
exec bash
[root@compute3 ~]# hostnamectl set-hostname compute3
echo 192.168.232.101 controller >> /etc/hosts
echo 192.168.232.111 compute1 >> /etc/hosts
echo 192.168.232.112 compute2 >> /etc/hosts
echo 192.168.232.113 compute3 >> /etc/hosts

存储节点(可选),参考官方说明官方environment-networking-storage-cinder
注:
①某些发行版本在/etc/hosts 文件中添加了多余的条目,该条目将实际的主机名解析为另一个回送IP地址,例如127.0.1.1。如果有的话,则必须将其注释或删除,以防止名称解析问题。
②不要删除127.0.0.1条目。
③每一个节点都需要对其他节点进行主机名的解析配置。
主机名修改完成后,退出当前终端,重新登录服务器。

(2)验证连通性

在每一个节点都要进行连通性测试,最后一条ping qq.com,管理网络不一定需要和公用互联网络连通。

ping -c 4 controller
ping -c 4 compute1
ping -c 4 compute2
ping -c 4 compute3
ping -c 4 qq.com

3.免密登录

【可选】

  • 在此之前,需要先进行root密码的设置
  • 以及允许root的ssh远程登陆(一般为permissionrootlogin项)设置为yes,并且重启ssh服务
  • 至少保证控制节点和计算节点,(如果需要配置所有控制和计算节点相互之间的无密码登录,每个节点都 要进行以下操作。)
ssh-keygen -t rsa
ssh-copy-id controller
ssh controller
ssh-copy-id compute1
scp -r .ssh compute1:~/
ssh compute1

控制节点计算节点

[root@controller ~]# ssh-keygen -t rsa			#生成公私钥文件,连续回车
[root@controller ~]# ssh-copy-id controller		#将公钥复制到目标机器中,需要输入当前用户为root,对应controller主机的也应是root的密码
[root@controller ~]# ssh controller				#测试登录,然后exit退出测试终端[root@controller ~]# ssh-copy-id compute1 		#将公钥复制到目标机器中,需要输入当前用户为root,对应compute1主机的也应是root的密码
[root@controller ~]# scp -r .ssh compute1:~/ 	#文件复制到compute1,完成相互免密登录。
[root@controller ~]# ssh compute1				#测试登录,然后exit退出测试终端[root@controller ~]# ssh-copy-id compute2 		#将公钥复制到目标机器中,需要输入当前用户为root,对应compute2主机的也应是root的密码
[root@controller ~]# scp -r .ssh compute2:~/ 	#文件复制到compute2,完成相互免密登录。
[root@controller ~]# ssh compute2				#测试登录,然后exit退出测试终端
。。。

4.禁用防火墙

(1)关闭iptables

在CentOS7上面是firewalld服务,停止并且禁止开机启动firewalld.service

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
(2)关闭 selinux
setenforce 0
getenforce
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
grep SELINUX=disabled /etc/sysconfig/selinux

5.yum源配置

(1)新建repo文件

首先移除原系统自带的repo文件,避免和新建的配置文件内容冲突

cd
mkdir ori_repo-config
mv /etc/yum.repos.d/* ./ori_repo-config/
touch /etc/yum.repos.d/CentOS-PrivateLocal.repo
vim /etc/yum.repos.d/CentOS-PrivateLocal.repo

文件内容:/etc/yum.repos.d/CentOS-PrivateLocal.repo

[base]
name=CentOS-$releasever - Base
baseurl=http://192.168.2.111/yumrepository/base/
gpgcheck=0
enabled=1[updates]
name=CentOS-$releasever - Updates
baseurl=http://192.168.2.111/yumrepository/updates/
gpgcheck=0
enabled=1[extras]
name=CentOS-$releasever - Extras
baseurl=http://192.168.2.111/yumrepository/extras/
gpgcheck=0
enabled=1[centos-openstack-train]
name=CentOS-7 - OpenStack train
baseurl=http://192.168.2.111/yumrepository/centos-openstack-train/
gpgcheck=0
enabled=1[centos-qemu-ev]
name=CentOS-$releasever - QEMU EV
baseurl=http://192.168.2.111/yumrepository/centos-qemu-ev/
gpgcheck=0
enabled=1[centos-ceph-nautilus]
name=CentOS-7 - Ceph Nautilus
baseurl=http://192.168.2.111/yumrepository/centos-ceph-nautilus/
gpgcheck=0
enabled=1[centos-nfs-ganesha28]
name=CentOS-7 - NFS Ganesha 2.8
baseurl=http://192.168.2.111/yumrepository/centos-nfs-ganesha28/
gpgcheck=0
enabled=1
(2)更新软件源
[root@controller ~]# yum clean all
[root@controller ~]# yum makecache
[root@controller ~]# yum repolist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                 repo name                     status
base                    CentOS-7 - Base               10097 
centos-ceph-nautilus    CentOS-7 - Ceph Nautilus      224 
centos-nfs-ganesha28    CentOS-7 - NFS Ganesha 2.8    140 
centos-openstack-train  CentOS-7 - OpenStack train    2323 
centos-qemu-ev          CentOS-7 - QEMU EV            87 
extras                  CentOS-7 - Extras             341 
updates                 CentOS-7 - Updates            1787 
repolist: 14999
[root@controller ~]# 

三、系统基础软件安装

1.Linux工具

yum install -y lsof vim net-tools wget git 

2.NTP时间同步

官方参考:OpenStack官方文档:环境-NTP
博客园参考:CentOS7安装OpenStack(Rocky版)-01.控制节点的系统环境准备

yum  -y install chrony
vim /etc/chrony.conf

(1)编辑chrony.conf文件,添加以下内容。

# add follow
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
allow 192.168.232.2/24

注意:
①替换NTP_SERVER为合适的更准确(较低层)NTP服务器的主机名或IP地址。
②该配置支持多个server键。默认情况下,控制器节点通过公共服务器池同步时间。但是也可以选择配置备用服务器,例如组织提供的服务器。
③要使其他节点能够连接到控制器节点上的chrony守护程序,请将此密钥添加到上述相同的chrony.conf文件中:allow 10.0.0.0/24,如有必要,请替换10.0.0.0/24为您的子网描述。

(2)重新启动NTP服务,并配置开机启动:

systemctl restart chronyd.service
systemctl status chronyd.service
systemctl enable chronyd.service
systemctl list-unit-files |grep chronyd.service

(3)设置时区,同步时间

timedatectl set-timezone Asia/Shanghai
chronyc sources
timedatectl status
[root@controller ~]# timedatectl set-timezone Asia/Shanghai
[root@controller ~]# chronyc sources
210 Number of sources = 6
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^- 139.199.214.202               2   9   377   424  +2409us[+2409us] +/-   33ms
^- 4-53-160-75.rev.nuso.clo>     2   9   173    57    -19ms[  -19ms] +/-  165ms
^- hydra.spiderspace.co.uk       2   9   157   599  +2178us[+2178us] +/-  139ms
^- srcf-ntp.stanford.edu         2   9   137     3    +15ms[  +15ms] +/-  118ms
^* 120.25.115.20                 2   9   377   779  +1182us[+1340us] +/-   10ms
^- 203.107.6.88                  2  10   377   403  -5063us[-5063us] +/-   37ms
[root@controller ~]# timedatectl statusLocal time: Wed 2020-04-22 14:33:50 CSTUniversal time: Wed 2020-04-22 06:33:50 UTCRTC time: Wed 2020-04-22 06:26:21Time zone: Asia/Shanghai (CST, +0800)NTP enabled: yes
NTP synchronized: noRTC in local TZ: noDST active: n/a
[root@controller ~]#

四、OpenStack基础软件安装

1、(省略)OpenStack仓库安装

【所有节点】
在进行本地源配置的时候已经将本地仓库中的相关yum源配置其中,故此步骤周可省略。
OpenStack官方文档environment-packages-rdo

  • On CentOS, the extras repository provides the RPM that enables the OpenStack repository.
  • CentOS includes the extras repository by default, so you can simply install the package to enable the OpenStack repository.
yum clean all
yum makecache
yum repolist
yum update -y #可选
yum install centos-release-openstack-train -y
yum clean all
yum makecache

2.OpenStack客户端相关软件

yum install python-openstackclient openstack-selinux -y
yum install openstack-utils -y 

openstack-utils 用于OpenStack配置文件的快速配置。

3.数据库SQL database

(1)安装mariadb相关软件包

[root@controller ~]# yum install mariadb mariadb-server MySQL-python python2-PyMySQL -y

(2)创建openstack的数据库配置文件,/etc/my.cnf.d/mariadb_openstack.cnf

[root@controller ~]# vim /etc/my.cnf.d/mariadb_openstack.cnf

在[mysqld]添加以下配置

[mysqld]
bind-address = 0.0.0.0
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
init-connect = 'SET NAMES utf8'

配置解释:

#默认存储引擎
default-storage-engine = innodb   
#使用独享表空间模式,每一个表都会建一个表空间,都会有索引文件,查索引快,共享表空间,共用一个表空间和索引,如果有损坏很难修复,比如说zabbix用到的数据库如果不使用的独享表空间,很难进行优化
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

(3)启动数据库,初始化数据库并设置开机启动

systemctl restart mariadb.service
systemctl status mariadb.service systemctl enable mariadb.service 
systemctl list-unit-files |grep mariadb.service

设置数据库root账户密码,默认密码为空

/usr/bin/mysql_secure_installation
# 输入命令后,第一次按回车,Y,设置密码,然后输入root账户,密码为root,然后一路y回车,直至安装成功。
systemctl restart mariadb.service
systemctl status mariadb.service

注意:生产环境可以使用pwgen工具生成数据库密码

openssl rand -hex 10

(4)测试下数据库,相关的数据库在需要时单独创建

mysql -proot
-----------------------------------
flush privileges;
show databases;
select user,host from mysql.user;
exit
-----------------------------------

4、消息队列Message queue

消息队列( MQ)全称为 Message Queue, 是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。
消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。
队列的使用除去了接收和发送应用程序同时执行的要求。
RabbitMQ 是一个在 AMQP 基础上完整的,可复用的企业消息系统。遵循 Mozilla Public License 开源协议。

(1).安装rabbitmq-server

yum install rabbitmq-server -y

(2).启动rabbitmq,并配置自启动
端口5672,15672,用于排错

systemctl start rabbitmq-server.service
systemctl status rabbitmq-server.servicesystemctl enable rabbitmq-server.service
systemctl list-unit-files |grep rabbitmq-server.service

(3).创建消息队列中openstack账号及密码
添加openstack用户和密码,配置用户权限,配置读,写权限
格式为:

rabbitmqctl add_user openstack RABBIT_PASS

将Replace RABBIT_PASS 更换为安全性合适的密码.

#这里可能会报错,修改主机名之后,需要退出当前终端重新登陆。
rabbitmqctl add_user openstack openstack
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
rabbitmqctl set_permissions -p "/" openstack ".*" ".*" ".*"

(4)启用rabbitmq_management插件实现 web 管理

#查看支持的插件
rabbitmq-plugins list
# 启用web管理插件,需要重启服务使之生效
rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server.service
systemctl status rabbitmq-server.service
rabbitmq-plugins listlsof -i:15672

(5).浏览器访问RabbitMQ进行测试
访问地址:http://192.168.232.101:15672
默认用户名密码都是guest,web界面可以管理和创建用户,管理权限如果无法访问请查看控制节点的防火墙配置状态。
可以进入选择admin,点击openstack用户名,设置openstack用户的密码和权限,然后update user,退出当前guest用户,使用用户名openstack密码openstack登录。
至此,RabbitMQ配置完毕

5、缓存服务Memcached

认证服务使用Memcached缓存令牌。缓存服务memecached运行在控制节点。在生产部署中,推荐联合启用防火墙、认证和加密保证它的安全。
(1)安装Memcached用于缓存令牌

yum install memcached python-memcached -y

(2)修改memcached配置文件

# 如果没有启用IPv6地址需要删掉::1的地址绑定
vim /etc/sysconfig/memcached
----------------------------------
OPTIONS="-l 127.0.0.1,controller"
----------------------------------# memcached参数说明:
-d选项是作为守护进程在后台运行 
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, 
-u是运行Memcache的用户,我这里是root, 
-l是监听的服务器IP地址,如果有多个地址的话 
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口, 
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定, 
-P是设置保存Memcache的pid文件
-vv是以very vrebose模式启动,将调试信息和错误输出到控制台

(3)启动memcached并设置开机自启动

systemctl start memcached.service
systemctl status memcached.service
netstat -anptl|grep memcachedsystemctl enable memcached.service
systemctl list-unit-files |grep memcached.service

至此,memcached配置完毕

6、服务发现与注册Etcd

这个Etcd服务是新加入的,用于自动化配置
(1).安装etcd服务

yum install etcd -y

(2).修改etcd配置文件

# 注意IP地址不能用controller替代,无法解析  
vim /etc/etcd/etcd.conf
-----------------------------------
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.232.101:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.232.101:2379"
ETCD_NAME="controller"#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.232.101:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.232.101:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.232.101:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
------------------------------------

(3)启动etcd并设置开机自启动

systemctl start etcd.service
systemctl status etcd.service
netstat -anptl|grep etcdsystemctl enable etcd.service
systemctl list-unit-files |grep etcd.service

五、完成控制节点环境准备

至此,控制节点controller就完成基础环境的配置,后面可以开始安装 openstack 的组件。
使用VMware虚拟机的话,现在可以关机做快照 。

这篇关于OpenStack离线Train版安装系列—1控制节点-环境准备的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147922

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完