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

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

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

相关文章

【前端性能优化】如何取消http请求

文章目录 需要取消http请求的3种经典场景原生XMLHttpRequest取消http请求fetch取消http请求axios取消http请求哪些情况需要取消HTTP请求取消http请求能带来哪些性能提升 ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 &#x1f3d9…

网络原理--http

目录 一、 DNS(应用层协议) 1、域名概念 2、维护ip地址和域名之间的映射(域名解析系统) 3、DNS系统(服务器) 4、如何解决DNS服务器高并发问题 二、HTTP(应用层协议) 1、htt…

旅游项目day07

目的地攻略展示 根据目的地和主题查询攻略 攻略条件查询 攻略排行分析 推荐排行榜:点赞数收藏数 取前十名 热门排行榜:评论数浏览数 取前十名 浏览数跟评论数差距过大,可设置不同权重,例如:将浏览数权重设置为0.3…

04 SpringBoot整合Druid/MyBatis/事务/AOP+打包项目

整合Druid 项目结构&#xff1a; 引入依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaL…

*(长期更新)软考网络工程师学习笔记——Section 22 无线局域网

目录 一、IEEE 802.11的定义二、IEEE 802.11系列标准三、IEEE 802.11的两种工作模式四、CDMA/CA协议&#xff08;一&#xff09;CDMA/CA协议的定义&#xff08;二&#xff09;CDMA/CA协议的过程 五、AC与AP&#xff08;一&#xff09;接入控制器AC&#xff08;二&#xff09;无…

分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测

分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测 目录 分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测。 2.自带数据…

simulink之Default Transitions

什么是默认转换 默认转换指定当两个或多个相邻的异或状态之间存在歧义时要进入哪个异或状态。默认转换有一个目标&#xff0c;但没有源对象。例如&#xff0c;默认转换指定在没有任何其他信息&#xff08;如历史连接&#xff09;的情况下&#xff0c;系统默认进入具有异或&…

代码随想录算法训练营29期|day 23 任务以及具体安排

669. 修剪二叉搜索树 class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {if (root null) {return null;}if (root.val < low) {return trimBST(root.right, low, high);}if (root.val > high) {return trimBST(root.left, low, high);}// ro…

BGP最通俗易懂的讲解——路由反射器防环机制

路由反射器防环机制&#xff1a;Originator ID与Cluster List 一、Originator ID 该属性属于BGP的可选非过渡属性&#xff1b;Originator ID由RR产生&#xff0c;使用的Router ID的值标识路由的发送者&#xff0c;用于防止集群内产生路由环路&#xff1b;当一条路由第一次被RR…

STM32标准库开发——串口收发HEX/文本数据包

数据包规则定义 定长HEX数据包 以0xFF为开头&#xff0c;0xFE为包围&#xff0c;中间固定四个字节长度的数据 定长HEX数据包状态机程序编写 //HEX数据包状态机程序编写 void USART1_IRQHandler(void) {static uint8_t RxState 0;static uint8_t pxRxPacket 0;if(USART_GetFl…

Vue 3 hooks的基本使用及疑问

前言 vue3也用过一段时间了&#xff0c;hooks听说过&#xff0c;但是一直没有用过。公司的前端项目里也没有相应的应用&#xff0c;因此打算系统的学习一下。 hooks与普通函数的区别 以实现一个加法功能为例。 普通函数未抽离 <template><div class"box&quo…

【网站项目】331基于jsp的超市库存商品管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…