当前位置: 首页 > article >正文

openEuler安装MySql8(tar包模式)

操作系统版本:

openEuler release 22.03 (LTS-SP4)

MySql版本:

下载地址:

https://dev.mysql.com/downloads/mysql/

准备安装:

关闭防火墙:

停止防火墙
#systemctl stop firewalld.service

关闭防火墙
#systemctl disable firewalld.service
执行disable命令关闭防火墙的同时,也取消了开机自启动。

查看防火墙状态
#systemctl status firewalld.service

mysql安装好后 ,如果需要开启防火墙,请执行下面2个命令:

#firewall-cmd --permanent --add-port=3306/tcp
#firewall-cmd --reload

关闭SELinux:

SElinux对服务的影响:SElinux是最全面的安全系统,若不关闭会对文件和服务有一定的限制

设置SELinux成为permissive模式,临时关闭SElinux。
#setenforce 0

查看SELinux状态,确认为permissive模式。
#getenforce

也可以永久关闭SELinux

#vi /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled

上传安装包:

把下载下来的安装包上传到服务器:/opt/software/mysql目录中

解压安装包:

#tar -xvf mysql-8.4.5-linux-glibc2.28-x86_64.tar.xz

创建用户与用户组:

#groupadd -g 1201 mysql
#useradd -g mysql -u 1201 -m mysql

设置mysql用户密码:

#passwd mysql #回车输入两次密码

修改目录owner:

#chowner -R mysql:mysql /opt/software/mysql

配置环境变量:

#vi /etc/profile

追加:

export PATH=$PATH:/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/bin

初始化数据库:

进入bin目录

执行初始化命令:

#./mysqld --initialize --user=mysql --port=3306 --basedir=/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64 --datadir=/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/data --plugin-dir=/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/lib/plugin --log-error=/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/logs/mysqld_error.log --open-files-limit=10240 --pid-file=/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/mysqld.pid --socket=/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/mysql.sock

 请记住生成的root用户临时密码,后面登录mysql会用到

也可以将初始化参数写入配置文件my.cnf中,然后通过指定初始化配置文件的方式初始化安装mysql,第一个参数必须是 defaults-file,指向准备好的my.cnf 配置文件,第二个参数是 initialize,指示 mysqld 进行初始化操作。

例如:

#./mysqld --defaults-file=/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/my.cnf --initialize

复制MySQL服务脚本(可选): 

如果你希望使用系统服务管理MySQL(例如使用systemctl),可以复制MySQL提供的系统服务脚本到/etc/systemd/system/目录: 

#cp support-files/mysql.server /etc/init.d/mysql

 开启mysql管理服务命令:

#systemctl enable mysql 

启动mysql服务:

#./mysqld_safe --user=mysql &

或者:

#systemctl start mysql

安全设置:

#mysql_secure_installation

会提示修改root用户密码,是否要设置验证密码组件,是否移除匿名用户,是否禁止root账户远程登录,是否删除test数据库及其访问权限,是否立即重新加载权限表(选y)等

[root@mysqlHost bin]# mysql_secure_installationSecuring the MySQL server deployment.Enter password for user root:The existing password for the user account root has expired. Please set a new password.New password:Re-enter new password:VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?Press y|Y for Yes, any other key for No: no
Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : yNew password:Re-enter new password:
Sorry, passwords do not match.New password:Re-enter new password:
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.Remove anonymous users? (Press y|Y for Yes, any other key for No) : no... skipping.Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.Disallow root login remotely? (Press y|Y for Yes, any other key for No) : no... skipping.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.Remove test database and access to it? (Press y|Y for Yes, any other key for No) : no... skipping.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.All done!

登录mysql:

#mysql -u root -p -P 3306

常遇到的问题:

1. 登录mysql时报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

解释/原因:这个提示是缺失mysql.sock文件,安装mysql后没有做安全设置,即没有执行mysql_secure_installation命令进行一系列的设置,就登录mysql,这样就会报这个错误,这个文件是在执行mysql_secure_installation命令后,才会产生。

如果没有进行安全设置就想登录,可以用这个方法:

./mysqld_safe --user=mysql --basedir=/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64 --datadir=/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/data &

然后再登录即可

my.cnf配置说明:

MySql8.4没有默认的my.cnf,需要用户根据需要自行配置my.cnf文件

[client]
# 客户端连接 MySQL 服务器的端口号,通常是 3306。
port = 3306
# MySQL 服务器的套接字文件路径,用于本地连接。
socket =/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/mysql.sock
#编码
default-character-set = utf8mb4[mysqld]
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id=1
# MySQL 服务器监听的端口号,通常也是 3306。
port = 3306
# MySQL 服务器的套接字文件路径,用于本地连接。
socket = /opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/mysql.sock
# MySQL 的根目录路径,通常用于安装 MySQL 的根目录(default /usr)
basedir = /opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64
# mysql存放数据库文件的目录路径,通常与basedir不在一个文件夹内
datadir=/var/lib/mysql
# 启用binglog日志文件,可以指定目录,如果不指定则放在数据目录下面
log_bin = mysql-bin
#存放 MySQL 进程 ID 的文件路径。
pid-file = /opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/data/mysql.pid
#错误日志路径
log_error = /opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/logs/mysql-error.log
#临时数据路径
tmpdir=/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/tmp
#用于指定 MySQL 服务器绑定的 IP 地址,0.0.0.0 表示绑定到所有可用的 IP 地址。
bind-address = 0.0.0.0
# 跳过密码登录
#skip-grant-tables
#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
#transaction_isolation=READ-COMMITTED
# 连接到 MySQL 服务器时初始化 SQL 命令。
init-connect = 'SET NAMES utf8mb4'
# 服务器默认的字符集。
character-set-server = utf8mb4
#允许在内核中等待的连接数量
back_log = 300
# 允许的最大并发连接数。
max_connections = 1000
# 最大连接错误数
max_connect_errors = 6000
# 打开的文件数限制。
open_files_limit = 65535
# 表缓存大小。
table_open_cache = 128
# 单个查询的最大允许数据包大小
max_allowed_packet = 4M
# 二进制日志缓存大小
binlog_cache_size = 1M#内部内存临时表的最大值 ,设置成128M。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
# 最大堆表大小
max_heap_table_size = 8M
# 临时表大小
tmp_table_size = 16M# 读取缓冲区大小
read_buffer_size = 2M
# 随机读取缓冲区大小
read_rnd_buffer_size = 8M
# 排序缓冲区大小
sort_buffer_size = 8M
# 连接缓冲区大小
join_buffer_size = 8M
# 键缓冲区大小
key_buffer_size = 4M
# 线程缓存大小
thread_cache_size = 8#禁用mysql的缓存查询结果集功能
#后期根据业务情况测试决定是否开启
#大部分情况下关闭下面两项
# 查询缓存类型 (1 表示启用)   
#query_cache_type = 0
# 查询缓存大小
#query_cache_size = 8M
# 查询缓存限制
#query_cache_limit = 2M# 全文索引最小词长度
ft_min_word_len = 4
# 二进制日志文件的格式
binlog_format = mixed# 二进制日志文件自动清理天数
expire_logs_days = 30#慢查询sql日志设置
# 启用慢查询日志 (1 表示启用)
#slow_query_log = 1
#慢查询sql日志路径
#slow_query_log_file = /opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/logs/mysql-slow.log
# 定义慢查询的阈值时间
#long_query_time = 1#检查未使用到索引的sql
log_queries_not_using_indexes=1# 性能模式 (0 表示禁用)
performance_schema = 0
#明确指定 MySQL 是否应该使用严格的模式来检查日期和时间值:TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp=true
# 表名大小写不敏感 (1 表示启用:不区分大小写)
lower_case_table_names = 1
# 禁用外部锁定,用于控制表级锁定
skip-external-locking
# 默认存储引擎 (InnoDB)
default_storage_engine = InnoDB
# 每个表使用单独的 InnoDB 文件
innodb_file_per_table = 1
# InnoDB 可以打开的最大文件数
innodb_open_files = 500
# InnoDB 缓冲池大小
innodb_buffer_pool_size = 64M
# InnoDB 写 I/O 线程数
innodb_write_io_threads = 4
# InnoDB 读 I/O 线程数
innodb_read_io_threads = 4
# InnoDB 线程并发度
innodb_thread_concurrency = 0
# InnoDB 清理线程数
innodb_purge_threads = 1
# InnoDB 日志刷新行为
innodb_flush_log_at_trx_commit = 2
# InnoDB 日志缓冲大小
innodb_log_buffer_size = 2M
# InnoDB 日志文件大小
innodb_log_file_size = 32M
# InnoDB 日志文件组数
innodb_log_files_in_group = 3
# InnoDB 最大脏页百分比
innodb_max_dirty_pages_pct = 90
# InnoDB 锁等待超时时间
innodb_lock_wait_timeout = 120
# 批量插入缓冲区大小
bulk_insert_buffer_size = 8M
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
# 交互超时时间
interactive_timeout = 28800
# 等待超时时间
wait_timeout = 28800
[mysqldump]
quick
# mysqldump 最大允许数据包大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 100M 
[myisamchk]
# MyISAM 检查工具的键缓冲区大小
key_buffer_size = 8M  
# MyISAM 检查工具的排序缓冲区大小
sort_buffer_size = 8M 
# 读缓存大小
read_buffer = 4M  
# 写缓存大小
write_buffer = 4M

mysql bin目录几个常见的服务:

  • mysql: MySQL客户端程序,用于连接和管理MySQL服务器。
  • mysqldump: 用于备份MySQL数据库的工具。
  • mysqladmin: 用于执行管理操作的MySQL客户端工具。
  • mysqld: MySQL服务器的主程序。
  • mysql_config: 用于获取MySQL编译配置信息的工具。
  • mysql_secure_installation: 用于增强新安装MySQL服务器安全性的脚本。

忘记密码的解决办法:

忘记密码的处理办法,通过指定的参数启动 mysql,执行 flush privileges 命令,加载用户和权限相关的表,修改密码后重新启动

--skip-networking 选项禁用了MySQL的网络功能,这意味着只能通过本地连接(例如使用localhost或127.0.0.1)访问MySQL服务器。

 #./mysqld_safe --defaults-file=/opt/software/mysql/mysql-8.4.5-linux-glibc2.28-x86_64/my.cnf --skip-grant-tables --skip-networking &

--skip-grant-tables 选项使得MySQL服务器启动时跳过权限表的加载,这意味着任何人都可以连接到 MySQL服务器而无需密码。

然后用root账号登录mysql数据库

#mysql -uroot

然后修改root账号密码

#alter user 'root'@'localhost' identified by 'xxx'  

退出mysql,重新用root和设置的新密码登录

相关文章:

openEuler安装MySql8(tar包模式)

操作系统版本: openEuler release 22.03 (LTS-SP4) MySql版本: 下载地址: https://dev.mysql.com/downloads/mysql/ 准备安装: 关闭防火墙: 停止防火墙 #systemctl stop firewalld.service 关闭防火墙 #systemc…...

Opencv实用操作6 开运算 闭运算 梯度运算 礼帽 黑帽

1.相关函数 开运算 img_open cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)#(图片,算法,核) 闭运算 img_close cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)#(图片,算法,核) 梯度…...

基于python,html,flask,echart,ids/ips,VMware,mysql,在线sdn防御ddos系统

详细视频:【基于python,html,flask,echart,ids/ips,VMware,mysql,在线sdn防御ddos系统-哔哩哔哩】 https://b23.tv/azUqQXe...

Git:现代软件开发的基石——原理、实践与行业智慧·优雅草卓伊凡

Git:现代软件开发的基石——原理、实践与行业智慧优雅草卓伊凡 一、Git的本质与核心原理 1. 技术定义 Git是一个分布式版本控制系统(DVCS),由Linus Torvalds在2005年为管理Linux内核开发而创建。其核心是通过快照(Sna…...

NLua性能对比:C#注册函数 vs 纯Lua实现

引言 在NLua开发中,我们常面临一个重要选择:将C#函数注册到Lua环境调用,还是直接在Lua中实现逻辑? 直觉告诉我们,C#作为编译型语言性能更高,但跨语言调用的开销是否会影响整体性能?本文通过基准…...

【计算机网络】第2章:应用层—Web and HTTP

目录 一、Web 与 HTTP 二、总结 (一)Web 的定义与功能 (二)HTTP 协议的定义与功能 (三)HTTP 协议的核心机制 1. HTTP 请求与响应流程 2. HTTP 的连接类型 3. HTTP 的状态码 (四&#xf…...

HarmonyOS 5 应用开发导读:从入门到实践

一、HarmonyOS 5 概述 HarmonyOS 5 是华为推出的新一代分布式操作系统,其核心设计理念是"一次开发,多端部署"。与传统的移动操作系统不同,HarmonyOS 5 提供了更强大的跨设备协同能力,支持手机、平板、智能穿戴、智慧屏…...

大数据治理:分析中的数据安全

引言 随着大数据技术在各行业的深度应用,海量数据蕴含的价值被不断挖掘。然而,数据规模的爆发式增长与分析场景的复杂化,使数据安全问题日益凸显。从数据泄露、隐私侵犯到非法访问,每一个安全漏洞都可能带来难以估量的损失。本文将…...

数字孪生技术赋能西门子安贝格工厂:全球智能制造标杆的数字化重构实践

在工业4.0浪潮席卷全球制造业的当下,西门子安贝格电子制造工厂(Electronic Works Amberg, EWA)凭借数字孪生技术的深度应用,构建起全球制造业数字化转型的典范。这座位于德国巴伐利亚州的“未来工厂”,通过虚实融合的数…...

国内高频混压PCB厂家有哪些?

一、技术领先型厂商(聚焦材料与工艺突破) 猎板PCB 技术亮点:真空层压工艺实现FR-4与罗杰斯高频材料(RO4350B/RO3003)混压,阻抗公差3%,支持64单元/板的5G天线模块,插损降低15%。 应用…...

【图像处理基石】立体匹配的经典算法有哪些?

1. 立体匹配的经典算法有哪些? 立体匹配是计算机视觉中从双目图像中获取深度信息的关键技术,其经典算法按技术路线可分为以下几类,每类包含若干代表性方法: 1.1 基于区域的匹配算法(Local Methods) 通过…...

day12 leetcode-hot100-19(矩阵2)

54. 螺旋矩阵 - 力扣(LeetCode) 1.模拟路径 思路:模拟旋转的路径 (1)设计上下左右方向控制器以及边界。比如zy1向右,zy-1向左;sx1向上,sx-1向下。上边界0,下边界hang-1&a…...

将Java应用集成到CI/CD管道:从理论到生产实践

在2025年的软件开发领域,持续集成与持续部署(CI/CD)已成为敏捷开发和DevOps的核心实践。根据2024年DevOps报告,85%的企业通过CI/CD管道实现了交付周期缩短50%以上,特别是在金融、电商和SaaS行业。Java,作为…...

密钥管理系统在存储加密场景中的深度实践:以TDE透明加密守护文件服务器安全

引言:数据泄露阴影下的存储加密革命 在数字化转型的深水区,企业数据资产正面临前所未有的安全挑战。据IBM《2025年数据泄露成本报告》显示,全球单次数据泄露事件平均成本已达465万美元,其中存储介质丢失或被盗导致的损失占比高达…...

webpack打包基本配置

需要的文件 具体代码 webpack.config.js const path require(path);const HTMLWebpackPlugin require(html-webpack-plugin);const {CleanWebpackPlugin} require(clean-webpack-plugin); module.exports {mode: production,entry: "./src/index.ts",output: {…...

酷派Cool20/20S/30/40手机安装Play商店-谷歌三件套-GMS方法

酷派Cool系列主打低端市场,系统无任何GMS程序,也不支持直接开启或者安装谷歌服务等功能,对于国内部分经常使用谷歌服务商店的小伙伴非常不友好。涉及机型有酷派Cool20/Cool20S /30/40/50/60等旗下多个设备。好在这些机型运行的系统都是安卓11…...

LabVIEW旋转机械智能监测诊断系统

采用 LabVIEW 开发旋转机械智能监测与故障诊断系统,通过集品牌硬件与先进信号处理技术,实现旋转机械振动信号的实时采集、分析及故障预警。系统突破传统监测手段的局限性,解决了复杂工业环境下信号干扰强、故障特征提取难等问题,为…...

数据结构 -- 判断正误

1、栈只能顺序存储。 答案: 错误 原因 栈是一种 逻辑结构,表示“后进先出”(LIFO)的操作规则。栈的实现方式不限于顺序存储,还可以使用链式存储。 顺序存储:使用数组实现栈,称为顺序栈。链式…...

vue3前端实现一键复制,wangeditor富文本复制

首先需要拿到要复制的内容,然后调用https的navigator.clipboard方法进行复制,但是这个因为浏览器策略只能在本地localhost和https环境下才能生效,http环境访问不到这个方法,在http环境在可以使用传统方式创建 textarea 进行复制 …...

小白畅通Linux之旅-----Linux进程管理

目录 一、进程查看命令 1、pstree 2、ps 3、pgrep 4、top、htop 二、进程管理命令 1、kill 2、pkill 和 killall 三、进程类型 1、前台进程 2、后台进程 一、进程查看命令 1、pstree 用于查看进程树之间的关系,谁是父进程,谁是子进程&#…...

【芯片设计中的跨时钟域信号处理:攻克亚稳态的终极指南】

在当今芯片设计中,多时钟域已成为常态。从手机SoC到航天级FPGA,不同功能模块运行在各自的时钟频率下,时钟域间的信号交互如同“语言不通”的对话,稍有不慎就会引发亚稳态、数据丢失等问题。这些隐患轻则导致功能异常,重…...

接地气的方式认识JVM(一)

最近在学jvm,浮于表面的学了之后,发现jvm并没有我想象中的那么神秘,这篇文章将会用接地气的方式来说一说这些jvm的相关概念以及名词解释。 带着下面两个问题来阅读 认识了解JVM大致有什么在代码运行时的都在背后做了什么 JVM是个啥&#xf…...

教师申报书课题——项目名称: 基于DeepSeek-R1与飞书妙记的课堂话语智能分析实践计划

明白了!针对教师个人能力范围(无需编程、无需服务器、零预算),我设计一个纯手工+免费工具组合的极简技术方案,用飞书基础功能和DeepSeek网页版就能实现核心分析。申报书重点突出 “轻量、易用、快速启动”。 项目申报书(极简个人实践版) 项目名称: 基于DeepSeek-R1与飞…...

JAVA:Kafka 消息可靠性详解与实践样例

🧱 1、简述 Apache Kafka 是高吞吐、可扩展的流处理平台,在分布式架构中广泛应用于日志采集、事件驱动和微服务解耦场景。但在使用过程中,消息是否会丢?何时丢?如何防止丢? 是很多开发者关心的问题。 Kafka 提供了一套完整的机制来保障消息从生产者 ➜ Broker ➜ 消费…...

【前端】Twemoji(Twitter Emoji)

目录 注意使用Vue / React 项目 验证 Twemoji 的作用: Twemoji 会把你网页/应用中的 Emoji 字符(如 😄)自动替换为 Twitter 风格的图片(SVG/PNG); 它不依赖系统字体,因此在 Android、…...

Electron 桌面程序读取dll动态库

序幕:被GFW狙击的第一次构建 当我在工位上输入npm install electron时,控制台跳出的红色警报如同数字柏林墙上的一道弹痕: Error: connect ETIMEDOUT 104.20.22.46:443 网络问题不用愁,请移步我的另外文章进行配置:…...

实时技术对比:SSE vs WebSocket vs Long Polling

早期网站仅展示静态内容,而如今我们更期望:实时更新、即时聊天、通知推送和动态仪表盘。 那么要如何实现实时的用户体验呢?三大经典技术各显神通: • SSE(Server-Sent Events):轻量级单向数据…...

js 手写promise

const PENDING pending; const FULFILLED fulfilled; const REJECTED rejected;class MyPromise {#status PENDING;#result undefined;#handler undefined;constructor(executor) {// 不能写在外面,因为this指向会出问题const resolve (data) > {this.#ch…...

HTTP 与 HTTPS 深度解析:原理、实践与大型项目应用

1. HTTP 与 HTTPS 基础概念 1.1 HTTP(超文本传输协议) 定义:应用层协议,基于 TCP/IP 通信,默认端口 80 特点: 无状态协议(需 Cookie/Session 维护状态) 明文传输(易被…...

QT6.9中opencv引用路径的其中一种设置

RC_ICONSappimage.ico unix|win32: LIBS -L$$PWD/opencv455/vc15/lib/ -lopencv_world455 INCLUDEPATH $$PWD/opencv455/include DEPENDPATH $$PWD/opencv455/include RC_ICONS为指定图标文件,只写图标名appimage.ico,那么一般和pro文件在同一目录…...