Linux MySQL离线安装

一、准备工作

1. 下载MySQL安装包

  • 访问MySQL官方网站,选择适合您Linux系统的MySQL版本进行下载。
  • 通常推荐下载Generic Linux (glibc 2.12)版本的.tar.gz压缩包,例如mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz
  • 将下载好的安装包拷贝到Linux服务器的某个目录下,例如/opt/mysql

2. 安装依赖包

在安装MySQL之前,需要确保系统已经安装了以下依赖包:

bash复制

sudo yum install -y libaio ncurses-compat-libs

如果使用的是apt包管理器,可以使用以下命令:

bash复制

sudo apt-get update
sudo apt-get install -y libaio1

3. 创建MySQL用户和组

为了安全起见,MySQL应该以非root用户运行。创建一个专门的MySQL用户和组:

bash复制

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

4. 创建安装目录

创建MySQL的安装目录和数据目录:

bash复制

sudo mkdir -p /usr/local/mysql
sudo mkdir -p /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql
sudo chown -R mysql:mysql /usr/local/mysql/data

二、安装MySQL

1. 解压安装包

进入存放MySQL安装包的目录,解压下载的文件:

bash复制

cd /opt/mysql
tar -xvf mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz -C /usr/local/mysql --strip-components=1

这里--strip-components=1的作用是将解压后的文件直接放到/usr/local/mysql目录下,而不是多一层文件夹。

2. 初始化MySQL

mysql用户身份初始化MySQL数据库:

bash复制

sudo -u mysql /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化完成后,MySQL会生成一个临时密码,记录在日志文件中。可以通过以下命令查看临时密码:

bash复制

sudo grep 'temporary password' /usr/local/mysql/data/*.err

3. 配置MySQL

创建MySQL的配置文件my.cnf,并将其放置在/etc目录下:

bash复制

sudo vi /etc/my.cnf

在文件中添加以下内容:

ini复制

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
port=3306
pid-file=/usr/local/mysql/mysql.pid[client]
socket=/usr/local/mysql/mysql.sock

根据需要,可以进一步调整配置文件中的参数,例如内存使用、字符集等。

4. 启动MySQL服务

启动MySQL服务,并设置开机自启:

bash复制

sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo systemctl enable mysql
sudo systemctl start mysql

三、配置MySQL

1. 修改默认密码

使用临时密码登录MySQL,然后修改默认密码:

bash复制

mysql -u root -p

输入临时密码后,执行以下命令修改密码:

sql复制

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

new_password替换为您希望设置的新密码。

2. 配置远程访问

如果需要从其他主机访问MySQL数据库,需要修改MySQL的用户权限。执行以下命令:

sql复制

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'new_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

这将允许root用户从任何IP地址访问MySQL数据库。出于安全考虑,建议仅允许信任的IP地址访问。

3. 创建数据库和用户

根据需要创建新的数据库和用户:

sql复制

CREATE DATABASE mydb;
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';
FLUSH PRIVILEGES;

mydbmyusermypassword替换为您需要的数据库名称、用户名和密码。

四、验证安装

1. 检查服务状态

检查MySQL服务是否正常运行:

bash复制

sudo systemctl status mysql

2. 登录MySQL

使用新密码登录MySQL:

bash复制

mysql -u root -p

输入密码后,如果能够成功登录,说明MySQL安装成功。

3. 测试数据库操作

在MySQL命令行中,执行以下命令测试数据库操作:

sql复制

USE mydb;
CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO test_table (name) VALUES ('Kimi');
SELECT * FROM test_table;

如果能够正常执行上述操作,说明MySQL安装并配置成功。

五、常见问题及解决方法

1. 启动失败

如果MySQL服务无法启动,可能是配置文件或数据目录有问题。检查日志文件:

bash复制

sudo tail -f /usr/local/mysql/data/*.err

根据日志中的错误信息进行排查。

2. 远程连接失败

如果无法从远程主机连接MySQL,可能是防火墙或用户权限问题:

  • 确保防火墙允许MySQL端口(默认为3306):

    bash复制

    sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
    sudo firewall-cmd --reload
    
  • 确保MySQL用户权限已正确设置。

3. 性能问题

如果MySQL性能不佳,可以调整配置文件中的参数,例如:

ini复制

[mysqld]
innodb_buffer_pool_size = 2G
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 2

根据服务器的硬件配置调整参数,并重启MySQL服务。


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

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

相关文章

TRTC实时对话式AI解决方案,助力人机语音交互极致体验

近年来,AI热度持续攀升,无论是融资规模还是用户热度都大幅增长。2023 年,中国 AI 行业融资规模达2631亿人民币,较2022年上升51%;2024年第二季度,全球 AI 初创企业融资规模为 240 亿美金,较第一季…

Android多语言开发自动化生成工具

在做 Android 开发的过程中,经常会遇到多语言开发的场景,尤其在车载项目中,多语言开发更为常见。对应多语言开发,通常都是在中文版本的基础上开发其他国家语言,这里我们会拿到中-外语言对照表,这里的工作难…

最新最详细的配置Node.js环境教程

配置Node.js环境 一、前言 (一)为什么要配置Node.js?(二)NPM生态是什么(三)Node和NPM的区别 二、如何配置Node.js环境 第一步、安装环境第二步、安装步骤第三步、验证安装第四步、修改全局模块…

Greenplum临时表未清除导致库龄过高处理

1.问题 Greenplum集群segment后台日志报错 2.回收库龄 master上执行 vacuumdb -F -d cxy vacuumdb -F -d template1 vacuumdb -F -d rptdb 3.回收完成后检查 仍然发现segment还是有库龄报警警告信息发出 4.检查 4.1 在master上检查库年龄 SELECT datname, datfrozen…

CAPL自动化测试

CAPL自动化测试 目录 CAPL自动化测试1. 引言2. 测试用例设计与实现2.1 测试用例设计2.2 测试用例实现3. 测试报告生成与分析3.1 测试报告生成3.2 测试报告分析4. 自动化测试框架搭建4.1 自动化测试框架设计4.2 自动化测试框架实现5. 案例说明5.1 案例1:测试用例设计与实现5.2 …

【go语言】map 和 list

一、map map 是一种无序的键值对的集合。 无序 :map[key]键值对:key - value map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。map 是一种集合,所以我们可以像迭代数组和切片那样迭代他。…

Python自动化运维:一键掌控服务器的高效之道

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在互联网和云计算高速发展的今天,服务器数量的指数增长使得手动运维和管理变得异常繁琐。Python凭借其强大的可读性和丰富的生态系统,成为…

数据融合的经典模型:早期融合、中期融合与后期融合的对比

在多模态数据融合中,如何将不同模态(如图像、文本、语音等)的数据整合到一个统一的表示中,是至关重要的环节。不同的任务需求和数据特点决定了我们应该采用哪种融合策略,而早期融合、中期融合和后期融合是多模态数据处…

使用python调用JIRA6 进行OAuth1认证获取AccessToken

Jira配置应用程序链接 1) 创建应用程序链接 登录 JIRA 管理后台。转到 Administration > Applications > Application Links。在输入框中输入外部应用程序的 URL(例如 GitLab 或自定义应用),然后点击 Create new link。 2) 配置 Con…

WPF基础 | WPF 基础概念全解析:布局、控件与事件

WPF基础 | WPF 基础概念全解析:布局、控件与事件 一、前言二、WPF 布局系统2.1 布局的重要性与基本原理2.2 常见布局面板2.3 布局的测量与排列过程 三、WPF 控件3.1 控件概述与分类3.2 常见控件的属性、方法与事件3.3 自定义控件 四、WPF 事件4.1 路由事件概述4.2 事…

2K高刷电竞显示器推荐

2K高刷电竞显示器推荐,各位喜欢打游戏,身为电竞迷的小伙伴,如果你想选一款2K高刷电竞显示器,那么下面的内容不容错过。 1.HKC G27H4Pro - 2K高刷电竞显示器推荐 外观 - HKC G27H4Pro 2K高刷电竞显示器 初见 HKC G27H4Pro&#x…

【29】Word:李楠-学术期刊❗

目录 题目​ NO1.2.3.4.5 NO6.7.8 NO9.10.11 NO12.13.14.15 NO16 题目 NO1.2.3.4.5 另存为手动/F12Fn光标来到开头位置处→插入→封面→选择花丝→根据样例图片,对应位置填入对应文字 (手动调整即可)复制样式:开始→样式对话框→管理…

破解浏览器渲染“死锁”:CSS与JS如何影响页面加载速度?

破解浏览器渲染“死锁”:CSS与JS如何影响页面加载速度? 在这个快速发展的Web世界里,性能是开发者们永恒的追求。当你打开一个网页,可能会注意到一些页面加载特别慢,甚至产生短暂的“白屏”,你有没有想过&a…

1.CSS的三大特性

css有三个非常重要的三个特性&#xff1a;层叠性、继承性、优先级 1.1 层叠性 想通选择器给设置想听的样式&#xff0c;此时一个样式就会覆盖&#xff08;层叠&#xff09;另一个冲突的样式。层叠性主要是解决样式冲突的问题。 <!DOCTYPE html> <html lang"en&…

随机矩阵投影长度保持引理及其证明

原论文中的引理 2 \textbf{2} 2 1. \textbf{1. } 1. 引理 1 \textbf{1} 1(前提之一) 1.1. \textbf{1.1. } 1.1. 引理 1 \textbf{1} 1的内容 &#x1f449;前提&#xff1a; X ∼ N ( 0 , σ ) X\sim{}N(0,\sigma) X∼N(0,σ)即 f ( x ) 1 2 π σ e – x 2 2 σ 2 f(x)\text{}…

C语言-构造数据类型

1、构造数据类型 结构体、共用体、枚举。 2、结构体 1、结构体的定义 结构体是一个自定义的复合数据类型&#xff0c;它允许将不同类型的数据组合在一起。 struct 结构体名 {数据类型1 成员变量1;数据类型2 成员变量2;数据类型3 成员变量3;数据类型4 成员变量4; } 2、结构体变…

Effective C++ 规则48: 认识 Template 元编程

1、什么是模板元编程 模板元编程是指利用 C 的模板机制&#xff0c;在编译期执行某些逻辑运算或代码生成的技术。通过模板元编程&#xff0c;可以在编译阶段完成类型推导、条件分支、递归计算等任务。C 语言的模板功能不仅仅是为了解决类型参数化的问题&#xff0c;它还可以在…

CSS:跑马灯

<div class"swiper-container"><div class"swiper-wrapper"><!-- 第一组 --><div class"item" v-for"item in cardList" :key"first-item.id"><img :src"item.image" alt""…

99.16 金融难点通俗解释:营业总收入

目录 0. 承前1. 简述2. 比喻&#xff1a;小明家的小卖部2.1 第一步&#xff1a;了解小卖部的收入来源2.2 第二步&#xff1a;计算一天的收入2.3 第三步&#xff1a;理解营业总收入 3. 生活中的例子3.1 小卖部的一周营业3.2 不同季节的变化 4. 小朋友要注意4.1 营业总收入不等于…

MyBatis Plus 的 InnerInterceptor:更轻量级的 SQL 拦截器

在 Spring Boot 项目中使用 MyBatis Plus 时&#xff0c;你可能会遇到 InnerInterceptor 这个概念。 InnerInterceptor 是 MyBatis Plus 提供的一种轻量级 SQL 拦截器&#xff0c;它与传统的 MyBatis 拦截器&#xff08;Interceptor&#xff09;有所不同&#xff0c;具有更简单…