openEuler安装MySql8(tar包模式)

news2025/7/22 5:20:05

操作系统版本:

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_installation

Securing 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) : y

New 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和设置的新密码登录

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

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

相关文章

基于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…

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

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

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

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

day12 leetcode-hot100-19(矩阵2)

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

密钥管理系统在存储加密场景中的深度实践:以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 开发旋转机械智能监测与故障诊断系统,通过集品牌硬件与先进信号处理技术,实现旋转机械振动信号的实时采集、分析及故障预警。系统突破传统监测手段的局限性,解决了复杂工业环境下信号干扰强、故障特征提取难等问题,为…

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

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

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

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

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

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

Electron 桌面程序读取dll动态库

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

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

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

API Gateway CLI 实操入门笔记(基于 LocalStack)

API Gateway CLI 实操入门笔记(基于 LocalStack) Categories: Cloud Google Rank Proof: No Last edited time: May 26, 2025 4:18 AM Status: Early draft Tags: aws 主要先简单的走一下流程,熟悉一下在 terminal 操作 API Gateway local…

数据分析案例-基于红米和华为手机的用户评论分析

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

深度学习入门:从零搭建你的第一个神经网络

深度学习入门:从零搭建你的第一个神经网络 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 深度学习入门:从零搭建你的第一个神经网络摘要引言第一章:神经网络基础原理1.1 神经元…

【Python办公】Excel简易透视办公小工具

目录 专栏导读1. 背景介绍2. 功能介绍3. 库的安装4. 界面展示5. 使用方法6. 实际应用场景7. 优化方向完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系…