CentOS 8 如何安装java与mysql

ops/2025/1/14 16:43:07/

在CentOS 8上安装Java和MySQL的步骤如下:

1. 安装 Java

1.1 安装 OpenJDK(推荐)

CentOS 8 默认的软件仓库提供了 OpenJDK 包,您可以直接使用 dnf 命令安装。

# 更新系统
sudo dnf update -y# 安装 OpenJDK 11(CentOS 8 默认提供的版本)
sudo dnf install java-11-openjdk-devel -y# 安装完毕后,验证安装的 Java 版本
java -version

如果您需要安装其他版本的 OpenJDK(例如 JDK 8 或 JDK 17),可以通过以下命令进行安装:

# 安装 OpenJDK 8
sudo dnf install java-1.8.0-openjdk-devel -y# 安装 OpenJDK 17
sudo dnf install java-17-openjdk-devel -y
1.2 设置默认 Java 版本

如果您的系统上安装了多个版本的 Java,您可以通过以下命令设置默认的 Java 版本。

# 列出所有安装的 Java 版本
sudo alternatives --config java

根据提示选择您需要的版本。

2. 安装 MySQL

2.1 安装 MySQL 8

CentOS 8 默认仓库中并不包含 MySQL 8,因此需要通过 MySQL 官方的 YUM 仓库来安装。

# 下载并安装 MySQL 官方 YUM 仓库
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm -y# 安装 MySQL 服务器
sudo dnf install mysql-server -y# 启动 MySQL 服务并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld# 检查 MySQL 服务是否启动
sudo systemctl status mysqld
2.2 配置 MySQL

在安装完成后,MySQL 会自动生成一个临时的 root 密码。可以通过以下命令查找这个密码:

# 获取临时 root 密码
sudo grep 'temporary password' /var/log/mysqld.log

然后,使用该临时密码登录 MySQL 并进行安全设置:

# 登录 MySQL
mysql -u root -p# 在提示符下输入临时密码# 运行 MySQL 安全设置脚本
mysql_secure_installation

按照提示,您可以设置新的 root 密码,移除匿名用户,禁止远程登录等。

2.3 测试 MySQL 安装

使用以下命令验证 MySQL 是否工作正常:

# 登录 MySQL
mysql -u root -p# 输入密码后,可以执行一些 SQL 语句验证
SHOW DATABASES;

3. 配置防火墙(可选)

如果您需要远程访问 MySQL,确保防火墙已允许 MySQL 端口(默认是 3306)。

# 开放 MySQL 默认端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent# 重新加载防火墙规则
sudo firewall-cmd --reload

现在,您的 CentOS 8 系统上应该已经成功安装了 Java 和 MySQL

mysql_102">mysql配置

innodb_flush_log_at_trx_commit 是 MySQL 中 InnoDB 存储引擎的一项关键配置参数,控制事务提交时日志的刷盘行为。它影响数据库的可靠性、数据安全性以及性能,通常在高并发或对数据安全性有特殊要求的应用场景中需要进行调整。

参数选项及含义

innodb_flush_log_at_trx_commit 参数有三个可选值:012。每个选项的设置在数据一致性、可靠性和性能之间进行了不同的权衡。

1. innodb_flush_log_at_trx_commit = 0
  • 含义:事务提交时不将日志立即写入磁盘,仅仅把日志写入到日志缓冲区;而是每秒一次将日志缓冲区的内容写入到日志文件,并刷新到磁盘。
  • 性能:性能最好,因为减少了 I/O 操作。
  • 数据安全性:如果系统崩溃(如服务器断电、系统重启等),在崩溃前 1 秒内的事务数据可能会丢失。
  • 适用场景:适用于数据安全要求较低的场景,或对性能有极高要求且可以容忍少量数据丢失的场景。
2. innodb_flush_log_at_trx_commit = 1(默认值)
  • 含义:每次事务提交时都会立即将日志缓冲区内容写入到日志文件,并刷新到磁盘。
  • 性能:性能相对较低,因为每次事务提交都会执行一次磁盘 I/O 操作。
  • 数据安全性:最高,系统崩溃时不会丢失已提交的事务数据。
  • 适用场景:适用于数据安全性要求较高的场景,例如金融、银行等需要确保每一笔交易数据不丢失的应用。
3. innodb_flush_log_at_trx_commit = 2
  • 含义:每次事务提交时会将日志缓冲区内容写入到日志文件,但不会立即将日志文件刷新到磁盘,而是每秒进行一次刷盘。
  • 性能:比设置为 1 性能更高,因为减少了磁盘 I/O 次数。
  • 数据安全性:如果系统崩溃,在崩溃前的 1 秒内可能会丢失事务日志数据,但已提交的事务数据通常不会丢失。
  • 适用场景:适用于数据安全性要求中等的场景,可以容忍少量数据丢失,但仍需要较好的性能。
[mysqld]
basedir = /usr
datadir = /var/lib/mysql
port = 3306
socket = /var/lib/mysql/mysql.sock
log-error = /var/log/mysql/error.log
pid-file = /var/run/mysqld/mysqld.pid# 调优选项
max_connections = 200lower_case_table_names=2
#skip-grant-tables
bind-address = 0.0.0.0
# 谨慎选择,不记录binlog日志
skip-log-bin
binlog_format=STATEMENT
expire_logs_days=1
#slow_query_log = 1
#slow_query_log_file = /var/log/mysql/slow.log
#long_query_time = 2
#performance_schema = ON
innodb_flush_log_at_trx_commit=0
#innodb_buffer_pool_size=256M

http://www.ppmy.cn/ops/150051.html

相关文章

B. Gorilla and the Exam 题解

Problem - 2057B - Codeforces 这个题目著需要知道有多少不重复的数字,然后再把数量最少的数字进行变更为其它数量多的数字,直到剩余一个数字。 当然做这个我第一反应是使用unordered_map来进行储存数字和数字的数量,然后再排序。 后来翻题…

decltype

decltype 是 C11 引入的关键字,用于推导表达式的类型。它可以在编译时获取某个表达式或变量的类型,并将其作为类型使用。decltype 的主要用途包括: (1)推导变量或表达式的类型。 (2)在泛型编程中…

Android SystemUI——基础简介(一)

Android SystemUI 是 Android 操作系统的一部分,负责处理与用户界面相关的所有元素。它是 Android 设备上的一个关键组件,管理着屏幕顶部的状态栏(显示时间、信号强度、电池电量等)、屏幕底部的导航栏(返回、主页、最近…

Airflow:TimeSensor感知时间条件

在数据管道工作流中,任务可能需要在特定的时间执行,或者在继续之前等待一定的时间。为了满足这些需求,Apache Airflow提供了TimeSensor,这是一种内置Sensor,可以监控当前时间,并在达到指定时间时触发后续任…

Swift 开发指南:数字字面量(Numeric Literals)

Swift 开发指南:Numeric Literals 1. 整数字面量(Integer Literals)表示方法总结 2. 浮点数字面量(Floating-point Literals)表示方法指数的含义总结 3. 数字字面量的格式化常见格式化方式总结 4. 示例代码总结5. 扩展…

人工智能实验(五)-基于神经网络的模式识别实验

一、实验目的 理解BP神经网络的结构和原理,掌握反向传播算法对神经元的训练过程,了解反向传播公式。通过构建BP网络模式识别实例,熟悉BP网络的原理及结构 二、实验内容 基于提供的数据集,训练1个BP神经网络模型: 1. …

深入详解DICOM医学影像定位线相关知识:理解定位线的概念、定位线的作用以及定位线显示和计算原理

DICOM医学影像中的定位线(Localization Line) 在医学影像学中,DICOM是用于存储和交换医学影像的标准格式。定位线(Localization Line)在医学影像的显示和分析中起着重要作用,它帮助医生和医学专业人员在影像中精确地标定重要的解剖结构、区域或特征,辅助进行定位、治疗计…

一个可以把玩的针对WebSocket分段的处理方案

市场上各种高级语言的WebSocket Echo的测试方案不少,但找来找去,愣是没有一个现成的可以针对分段(fragmetation)处理的Echo服务端。分段处理在一些对实时性要求较高的场合非常重要,比如流媒体,实时监控等场…