linux单机部署mysql(离线环境解压即可)

一、下载官网压缩包(tar.gz)

MySQL :: Download MySQL Community Servericon-default.png?t=N7T8https://dev.mysql.com/downloads/mysql/根据自己的操作系统发行版本、位数、gclib版本、mysql版本来选择对应的压缩包

比如我是 linux系统debian10(官网只有linux generic通用版本的tar.gz包)、64位操作系统,gclib版本是2.28。(uname -m命令可查操作系统版本。ldd --version命令可查gclib版本),并且咱们选择的是8.0以上的mysql版本。

uname -m

ldd --version

我们复制下载链接之后,直接wget下载,输入以下命令

cd /root/soft

wget ​​​​​​https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.34-linux-glibc2.28-x86_64.tar.gz

二、解压缩

解压缩,把解压目录重命名为mysql8

tar -zxvf mysql-8.0.34-linux-glibc2.28-x86_64.tar.gz

mv mysql-8.0.34-linux-glibc2.28-x86_64 mysql8

三、添加PATH环境变量

echo "export PATH=$PATH:/usr/local/mysql8/bin" >>/etc/profile  # 编辑 /etc/profile 文件

source /etc/profile   # 使更改生效

查看环境变量是否生效

mysql --version

四、准备目录并赋权

cd mysql8

mkdir data

cd data

#datas用于存放数据,logs用于存放日志

mkdir datas logs 

cd /root/soft

chmod -R 750 mysql8

五、创建配置文件my.cnf

cd /etc

touch my.cnf

vim my.cnf

配置内容如下,这边只配了最最重要的,其他后续再补充:

[mysqld]
port=3306
basedir=/root/soft/mysql8
datadir=/root/soft/mysql8/data/datas
socket=/tmp/mysql.sock
pid-file=/root/soft/mysql8/data/logs/mysql.pid
log-error=/root/soft/mysql8/data/logs/error.log
tmpdir=/tmp
server_id=1
user=root

#数据库默认字符集, 主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server=utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci

#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数
default_time_zone = "+8:00"

#是否启用慢查询日志,1为启用,0为禁用  
slow_query_log = 1
#指定慢查询日志文件的路径和名字
slow_query_log_file = /root/soft/mysql8/data/logs/slow.log
#慢查询执行的秒数,必须达到此值可被记录
long_query_time = 3

#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800

#####RedoLog日志 和 binlog日志的写磁盘频率设置 BEGIN ###################################
# RedoLog日志(用于增删改事务操作) +  binlog日志(用于归档,主从复制)
# 为什么会有两份日志呢? 
# 因为最开始MySQL没有 InnoDB 引擎,自带MyISAM引擎没有 crash-safe能力,binlog日志只用于归档
# InnoDB 引擎是另一个公司以插件形式引入MySQL的,采用RedoLog日志来实现 crash-safe 能力

# redo log 的写入(即事务操作)拆成两阶段提交(2PC):prepare阶段 和 commit阶段
#(事务步骤1) 执行commit命令,InnoDB redo log 写盘,然后告知Mysql执行器:[你可以写binlog了,且一并提交事务],事务进入 prepare 状态
#(事务步骤2) 如果前面 prepare 成功,Mysql执行器生成 binlog 并且将binlog日志写盘
#(事务步骤3) 如果binlog写盘成功,Mysql执行器一并调用InnoDB引擎的提交事务接口,事务进入 commit 状态,操作完成,事务结束

#innodb_flush_log_at_trx_commit:取值:0/1/2,默认值1,是 InnoDB 引擎特有的,ib_logfile的刷新方式(记录的是redo log和undo log的信息)
#innodb_flush_log_at_trx_commit=0,表示每次事务提交时不进行刷盘操作(系统默认 master thread 每隔 1s 进行一次重做日志的同步)。兼顾安全性和性能。
#innodb_flush_log_at_trx_commit=1,表示每次事务提交时都将进行同步,刷盘操作(默认值)。最安全。
#innodb_flush_log_at_trx_commit=2,表示每次事务提交时都只把redo log buffer内容写入page cache,不进行同步。由操作系统自己决定什么时候同步到磁盘文件。最不安全。

#sync_binlog:是MySQL的二进制日志(binary log)同步到磁盘的频率。取值:0-N
#sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来做同步,或者cache满了之后才同步到磁盘。这个是性能最好的。
#sync_binlog=1,当每进行1次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。
#sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。


#控制 redolog 写磁盘频,安全性要求一般设为0即可,支付业务设为1
innodb_flush_log_at_trx_commit = 0

#控制 binlog 写磁盘频率,建议0到100,并发高可设置100
sync_binlog = 20

#####RedoLog日志 和 binlog日志的写磁盘频率设置 END #####################################

[client]
default-character-set=utf8mb4
socket=/tmp/mysql.sock
[mysql]
default-character-set = utf8mb4

更完整的参数可以查看下面官网文档的链接:

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.htmlicon-default.png?t=N7T8http://xn--5-uc2b586h.xn--7-818a010cpwbkdq3ik0c386aen5ehttps://dev.mysql.com/doc/refman/8.0/en/server-system-variables.htmlicon-default.png?t=N7T8http://xn--8-uc2b586h.xn--0-818a010cpwbkdq3ik0c386aen5e

也可以参考这篇博客

MySQL8配置文件详解_mysql8.03 配置文件-CSDN博客

六、初始化mysql

mysqld --defaults-file=/etc/my.cnf --basedir=/root/soft/mysql8 --datadir=/root/soft/mysql8/data/datas --user=root --initialize-insecure

各参数意义
            --defaults-file: 指定配置文件 (放在--initialize-insecure前)
            --user: 指定用户
            --basedir: 指定安装目录
            --datadir: 指定初始化数据目录
            --initialize-insecure: 初始化设置空密码(若无该参数,理论上会随机生成密码,需在/root/soft/mysql/data/logs/error.log中查看,但是实际情况我这边会初始化失败)

或者你也可以在配置文件中去配置basedir,datadir,user等信息,这样你就不用写这些选项了

mysqld --defaults-file=/etc/my.cnf  --initialize-insecure

如果生产环境或云服务设置了空密码,后续记得修改

七、启动MySQL

命令如下

mysqld_safe --defaults-file=/etc/my.cnf &

查看是否启动成功

ps -ef|grep mysql

如果失败可以查日志,不过一般失败原因都是my.cnf配置不对,或者目录没创建或者目录没权限,解决办法:先解决上面提到的问题,重新创建并赋权datas和logs目录,重新初始化和启动就好。

cd /root/soft/mysql8/data

tail -1111f logs/error.log

停止mysql服务命令如下

mysqladmin -uroot -p shutdown

八、连接mysql

mysql -uroot -p

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PaddleDetection学习1——使用Paddle-Lite在 Android 上实现实时的目标检测功能

在 Android 上使用Paddle-Lite实现实时的目标检测功能 1 环境准备1.1 安装Android Studio1.1.1 安装JAVA JDK1.1.2 Android Studio 安装步骤1.1.3 Android Studio 配置NDK 1.2 Android 手机 2 部署步骤2.1 下载Paddle-Lite-Demo2.2 打开 yolo_detection_demo项目2.2.1 修改buil…

001基于51单片机的弹丸测速系统设计

基于51单片机的弹丸测速系统设计[proteus仿真] 速度检测系统这个题目算是课程设计和毕业设计中常见的题目了,本期是一个基于51单片机的自行车测速系统设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2¥&am…

[网络安全] NDS部署与安全

一、NDS服务器 (域名系统Domain Name System) 二、域名组成: 1.域名组成概述 如“www.baidu.com” 是个域名,严格意义来讲"baidu.com"为域名(全球唯一), www为主机名. “主机名.域名”称为完全限定域名(F…

133基于matlab的智能微电网粒子群优化算法

基于matlab的智能微电网粒子群优化算法,输出微型燃气轮机、电网输入微网运行计划、储能运行计算。程序已调通,可直接运行。 133智能微电网粒子群优化算法 (xiaohongshu.com)

鸿蒙使用 axios

1、已安装ohpm,可参考上一篇 2、回到项目的根目录执行 ohpm install ohos/axios 安装成功后,查看项目的package 3、开放网络权限 在模块的module.json5中添加权限 "module": {"requestPermissions": [{"name": "…

一篇搞定CMake入门:让你轻松学会C++项目构建!

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 CMake专栏介绍CMake基础篇CMake核心篇CMake高级篇CMake实战篇 CMake专栏介绍 …

C++初入(四)

1.万能头文件 #include <bits/stdc.h> 里面包含了大量我们日常所需的头文件&#xff0c;如果使用它&#xff0c;我们就可以减少大量时间去写头文件&#xff0c;但是其实在平常练习和实际运用中&#xff0c;该头文件几乎没有实际价值&#xff0c;原因&#xff1a;1.里面…

【Python】线程threading与GUI窗口tkinter结合应用

Python的threading模块是一个强大的工具&#xff0c;它提供了高级别的线程编程接口。通过这个模块&#xff0c;Python程序员可以在应用程序中实现多线程并发执行。 线程&#xff08;Thread&#xff09;是程序执行流的最小单元&#xff0c;被包涵在进程之中&#xff0c;是进程中…

GitHub图床搭建

1 准备Github账号 如果没有Github账号需要先在官网注册一个账号 2 创建仓库 在github上创建一个仓库&#xff0c;随便一个普通的仓库就行&#xff0c;选择公共仓库 并且配置github仓库的pages&#xff0c;选择默认访问的分支及默认路径 3 github token获取 github token创…

线下安防监控店如何制作小程序商城?开通线上销售渠道

线下安防监控店可以通过制作小程序商城来开通线上销售渠道&#xff0c;为顾客提供更方便快捷的购物体验。下面介绍一种简单的制作小程序商城的方法。 首先&#xff0c;登录【乔拓云】网后台&#xff0c;进入【商城】管理页面。在该页面中&#xff0c;找到并点击【小程序商城】模…

第一次开发基于SpringBoot的Java应用

第一次开发基于SpringBoot的Java应用 一、 方式1&#xff1a;IDEA创建New Project Spring Boot官方文档的Getting Started1、IDEA创建New Project2、Spring Boot官方文档的Getting Started2.1 Creating the POM &#xff08;实际是&#xff0c;更新pom.xml&#xff09;2.2 Add…

如何选择适合的乔拓云小程序付费服务

在数字化时代&#xff0c;微信小程序已经成为商家与客户互动的重要平台。乔拓云小程序作为一款便捷的微信小程序&#xff0c;不仅提供免费的基本功能&#xff0c;还为商家提供了多种付费增值服务和广告投放选择&#xff0c;以满足不同需求。本文将为您揭秘乔拓云小程序的费用明…

rabbitmq基础教程(ui,java,springamqp)

概述&#xff1a;安装看我上篇文章Docker安装rabbitmq-CSDN博客 任务一 创建一个队列 这样创建两个队列 在amq.fanout交换机里面发送数据 模拟发送数据 发送消息&#xff0c;发现一下信息&#xff1a; 所以得出理论&#xff0c;消息发送是先到交换机&#xff0c;然后由交换机…

部署配置zabbix监控平台(server端)

目录 引言&#xff1a;明人不说暗话&#xff0c;分享一下部署配置zabbix监控平台的详细过程 1.进入官网 2.进入下载页面选择需要下载的版本信息 &#xff08;案例zabbix5.0&#xff09; 划到下面有安装的过程&#xff0c;下面我详细讲解一下这些步骤 3、安装Zabbix存储库 …

Tide Quencher 7.1WS azide,TQ7.1WS N3,适用于多种荧光物质的分析

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;Tide Quencher 7.1WS 叠氮&#xff0c;TQ7.1WS 叠氮&#xff0c;Tide Quencher 7.1WS azide&#xff0c;TQ7.1WS N3&#xff0c;TQ7.1WS azide&#xff0c;Tide Quencher 7.1WS N3 一、基本信息 产品简介&#xff1…

【揭秘AI】穿越时光隧道,探秘AI起源与发展01

算盘 被誉为世界上最古老的计算机之一&#xff0c;是一种手动操作的计算工具&#xff0c;起源于中国。它主要由框、梁和珠子组成&#xff0c;通过移动珠子在档位上的位置来进行加减乘除运算。算盘的发明时间可以追溯到公元前或公元初期&#xff0c;据历史记载&#xff0c;东汉…

vue实现 marquee(走马灯)

样式 代码 <div class"marquee-prompt"><div class"list-prompt" refboxPrompt><span v-for"item in listPrompt" :title"item" class"prompt">{{item}}</span></div> </div>data() {…

【IAP】核心开发流程

最近做了IAP U盘升级模块开发&#xff0c;总结下IAP基本开发流程&#xff0c;不深入讨论原理。 详细原理参考 首先需要知道我们需要把之前的APP区域拆一块出来做BOOT升级程序区域。 以STM32F103为例&#xff0c;0x08000000到0x0807FFFF为FLASH空间&#xff0c;即上图代码区域…

多线程中的run方法和start方法有什么区别?

package org.example;public class MyThread2 extends Thread{/*1&#xff1a;继承Thread2:重写run方法3:创建实例对象并且启动线程* */public static void main(String[] args) {MyThread2 myThread1new MyThread2();myThread1.start();}Overridepublic void run() {for (int …

重置aws上的ssh默认登录端口

aws上的ec2机器&#xff0c;默认ssh的登录都是22&#xff0c;为了防止被黑&#xff0c;记录下修改该默认端口的方法 修改/etc/ssh/sshd_config文件,将Port 22注释去掉在上面的文件中&#xff0c;加入一行&#xff0c;你想要增加的端口号&#xff0c;格式和22一致注意&#xff1…