linux离线安装mysql8(单机版)

news2024/9/23 23:26:53

文章目录

  • 一、检查服务器是否有残留mysql资源,有的话就全删除
    • 1.1、查询mysql已安装的相关依赖:
    • 1.2、查找含有MySQL的目录
  • 二、安装
    • 2.1、上传mysql安装包到文件夹下并解压
    • 2.2、移动及重命名
    • 2.3、mysql用户
    • 2.4、配置mysql所需的my.cnf文件
    • 2.5、给my.cnf配置文件中指定的目录配置权限:(否则会在初始化时或是启动时出现问题,如果出现问题,应该实时查看初始化时与启动时的mysql.log日志)
    • 2.6、配置命令
    • 2.7、修改系统配置
      • 2.7.1、修改/etc/profile,添加```export PATH=$PATH:/usr/local/mysql8/bin```
      • 2.7.2、配置启动项
  • 三、启动
    • 3.1、初始化mysql服务
  • 四、问题拓展
    • 4.1、安装成功后,登录报错ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO),或ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
      • 4.1.1 设置跳过密码验证
      • 4.1.2 重启mysql后进行登录
      • 4.1.3 将登录密码设置为空
      • 4.1.4、修改新密码
    • 4.2、新安装的mysql,登录后,执行任何命令报错:You must reset your password using ALTER USER statement before executing this statement.


  • 前言,这里以mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz版本为例

一、检查服务器是否有残留mysql资源,有的话就全删除

1.1、查询mysql已安装的相关依赖:

rpm -qa | grep mysql
  • 没有依赖是如图所示的
    在这里插入图片描述
  • 如果有依赖,就依次卸载依赖
# 这里的XXXXXX表示依赖名
rpm -e XXXXXX --nodeps

1.2、查找含有MySQL的目录

find / -name mysql

在这里插入图片描述

  • 如果有依赖存在,就使用rm -rf 依次全部删除
    例:
    rm -rf /var/lib/selinux/targeted/active/modules/100/mysql
    

二、安装

2.1、上传mysql安装包到文件夹下并解压

tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz

2.2、移动及重命名

mv mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql8

2.3、mysql用户

  • 创建mysql用户
useradd mysql
  • 配置mysql密码
passwd mysql
  • 给用户赋权限
chown  -R  mysql:mysql  /usr/local/mysql8

2.4、配置mysql所需的my.cnf文件

  • 编辑my.cnf
vim /etc/my.cnf
  • 配置文件内容
# 优先读取/etc/my.cnf.d目录下配置文件,一般用不着
#!includedir /etc/my.cnf.d
 
# 客服端设置
[client]
 
# 服务套接字位置
socket=/mnt/data/mysql/mysql.sock
 
[mysqld]
 
# 数据目录,路径的位置根据实际情况配置,给目录指定权限,否真会报权限问题
datadir=/mnt/data/mysql/mysql-data
 
# mysql端口号
port = 3306
 
# 日志文件输出,需要给目录配置权限,否则会报目录权限问题
log-error=/mnt/data/mysql/mysql-logs/mysql.log
 
# 不区分大小写
# MySQL在Windows上会将所有的表名和数据库名转换为小写,并且在查询时不区分大小写。这有助于在不同操作系统之间移植数据库
lower_case_table_names=1
 
# 服务套接字位置,需要给目录配置权限
socket=/mnt/data/mysql/mysql.sock
 
# 是否与旧版本的客户端兼容,可能需要将此参数设置为mysql_native_password
# default_authentication_plugin=mysql_native_password
 
# 最大传输如果数据包超过这个大小,MySQL会报错
# max_allowed_packet=64M
 
# 最大连接并发数据量
# max_connections=1000

2.5、给my.cnf配置文件中指定的目录配置权限:(否则会在初始化时或是启动时出现问题,如果出现问题,应该实时查看初始化时与启动时的mysql.log日志)

chown -R mysql:mysql /mnt/data/mysql/mysql-data
chown -R 755  /mnt/data/mysql/mysql-data
chown -R mysql:mysql /mnt/data/mysql/mysql-logs
chmod -R 755 /mnt/data/mysql/mysql-logs
chown -R mysql:mysql /mnt/data/mysql
chown -R 755  /mnt/data/mysql
chmod -R 777 /mnt/data/mysql/
  • 如果未检测到文件夹,就创建文件夹,然后再重新执行
mkdir -p /mnt/data/mysql/mysql-data
mkdir -p /mnt/data/mysql/mysql-logs

在这里插入图片描述

2.6、配置命令

  • 设置命令,方便命令操作,软链接执行mysql8下对应命令文件,执行下面所有的指令
ln -snf /usr/local/mysql8/bin/mysql /usr/bin/mysql
 
ln -snf /usr/local/mysql8/bin/mysqld /usr/sbin/mysqld 
 
ln -snf /usr/local/mysql8/bin/mysqladmin /usr/bin/mysqladmin
 
ln -snf /usr/local/mysql8/bin/mysqlbinlog /usr/bin/mysqlbinlog
 
ln -snf /usr/local/mysql8/bin/mysqlcheck /usr/bin/mysqlcheck
 
ln -snf /usr/local/mysql8/bin/mysql_config_editor /usr/bin/mysql_config_editor
 
ln -snf /usr/local/mysql8/bin/mysqldump /usr/bin/mysqldump
 
ln -snf /usr/local/mysql8/bin/mysqldumpslow /usr/bin/mysqldumpslow
 
ln -snf /usr/local/mysql8/bin/mysqlimport /usr/bin/mysqlimport
 
ln -snf /usr/local/mysql8/bin/mysqlpump /usr/bin/mysqlpump
 
ln -snf /usr/local/mysql8/bin/mysql_secure_installation /usr/bin/mysql_secure_installation
 
ln -snf /usr/local/mysql8/bin/mysqlshow /usr/bin/mysqlshow
 
ln -snf /usr/local/mysql8/bin/mysqlslap /usr/bin/mysqlslap
 
ln -snf /usr/local/mysql8/bin/mysql_tzinfo_to_sql /usr/bin/mysql_tzinfo_to_sql
 
ln -snf /usr/local/mysql8/bin/mysql_upgrade /usr/bin/mysql_upgrade
  • 这样就安装成功了,查看一下mysql版本
mysql -V
mysqld -V

在这里插入图片描述

2.7、修改系统配置

2.7.1、修改/etc/profile,添加export PATH=$PATH:/usr/local/mysql8/bin

vim /etc/profile
  • 在配置文件末尾添加
export PATH=$PATH:/usr/local/mysql8/bin

2.7.2、配置启动项

  • 在mysql8下拷贝mysql.server到/etc/init.d目录下:
cp /usr/local/mysql8/support-files/mysql.server  /etc/init.d/mysqld
  • 修改/etc/init.d/mysqld的基础路径:
vim  /etc/init.d/mysqld
  • 修改目录位置:
basedir=/usr/local/mysql8 (mysql的安装路径)
datadir=/mnt/data/mysql/mysql-data  (这里要与配置文件保持一致)

在这里插入图片描述

  • 保证service mysql 或 mysqld start均可启动:
cp  /etc/init.d/mysqld  /etc/init.d/mysql
  • 添加到启动列表:
chkconfig --add mysqld
  • 重新加载启动信息:
systemctl daemon-reload
  • 查看启动项列表
chkconfig --list

在这里插入图片描述

三、启动

3.1、初始化mysql服务

  • 初始化命令:–basedir:根据实际mysql安装路径
mysqld --user=mysql --basedir=/usr/local/mysql8 --initialize 
  • 初始化后,查看mysqld.log(默认/var/log/mysqld.log或本文取决于my.cnf的日志路径配置),找到root初始密码,在执行上方initialize语句时mysqld.log文件中就会打印,如图所示:
    在这里插入图片描述

  • 启动mysql:

service mysqld start
  • 使用root登录:
mysql -uroot  -p
  • 首次需要修改密码 :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY  '新密码';

在这里插入图片描述

四、问题拓展

4.1、安装成功后,登录报错ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO),或ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

出错原因
using password: NO:表示输入没有输入密码就尝试登陆了
using password: YES:表示输入了密码,但密码错误
这里表示很有可能是忘记密码了,或者初始化的时候,初始化密码不生效,因此需要重设密码。

4.1.1 设置跳过密码验证

找到 MySQL 的配置文件 “my.ini”,如果自己配置了配置文件,就到自己配置的配置文件里面找,比如我们当前文档2.4处配置的文件地址为/etc/my.cnf,vim配置文件后,找到 [mysqld],在其下面任意一行添加 skip-grant-tables,保存,如下图所示:
在这里插入图片描述

4.1.2 重启mysql后进行登录

  • 重启
service mysqld restart
    • 使用root登录,出现输入密码时,直接回车就好了:
mysql -uroot  -p

4.1.3 将登录密码设置为空

  • 依次执行命令
use mysql;

update user set authentication_string='' where user='root';

quit;

在这里插入图片描述

4.1.4、修改新密码

  • 重启
service mysqld restart
  • 使用root登录,出现输入密码时,直接回车就好了,因为此时密码为空:
mysql -uroot  -p
  • 刷新权限,输入 flush privileges;后回车
  • 最后输入ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';后回车
# 刷新权限
flush privileges;

# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

4.2、新安装的mysql,登录后,执行任何命令报错:You must reset your password using ALTER USER statement before executing this statement.

解决办法

  • MySQL版本5.7.6版本以前用户可以使用如下命令:
mysql> SET PASSWORD = PASSWORD('Admin2022!');
  • MySQL版本5.7.6版本开始的用户可以使用如下命令:
mysql> ALTER USER USER() IDENTIFIED BY 'Admin2022!';

在这里插入图片描述

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

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

相关文章

基于单片机控制的红外热释电家庭防盗报警器硬件系统设计

【摘要】 随着社会的发展和人们安全意识的提高,传统的家庭防盗系统不能适应现代生活中多变的环境。本文设计开发的红外热释电家庭防盗报警器能改善传统防盗系统结构复杂,计算繁琐、价格昂贵、监控盲区等缺陷,主要由单片机模块、复位电路模块、…

pycharm+pytorch2.3.1安装

成功运行 Anaconda简介 Anaconda 就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。 Anaconda安装 去官网地址下载 Download Anaconda Distribution | Anaconda​www.ana…

<数据集>棉花叶片病害识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:5837张 标注数量(xml文件个数):5837 标注数量(txt文件个数):5837 标注类别数:4 标注类别名称:[Bacterial Blight, Curl virus, Fussarium wilt, Healthy] 序号类别名…

springboot3-web-questions-分析

系列文章目录 文章目录 目录 系列文章目录 文章目录 前言 一、问题案例 1、maven项目compile时候出现告警warn 2、java文件打包然后在命令行中运行java会找不到主类 3、程序找不到数据库驱动和配置实例 4、springboot和mybatis-plus版本不兼容导致 5、springboot项目启动的解释…

docker 续 常用命令

ubuntu里的仓库文件使用不了的解决方法: 1.进入仓库文件的目录 cd /etc/apt/sources.list.d/ 2.删除 archive开头的文件 sudo rm -rf archive* 3.重新下载仓库文件 sudo add-apt-repository "deb [archamd64] https://mirrors.ustc.edu.cn/docker-ce/lin…

学术研讨 | 基于区块链的隐私计算与数据可信流通研讨会顺利召开

近日,由国家区块链技术创新中心组织的“基于区块链的隐私计算与数据可信流通研讨会”顺利召开,会议邀请了来自全国高校和科研院所的相关领域专家,围绕基于区块链与隐私计算技术的应用需求、研究现状、发展趋势、重点研究方向与研究进展等内容…

【相机与图像】1. 相机模型的介绍:内参、外参、畸变参数

想着整理下相机模型(内容上参考 slam十四讲)、相机的内外参标定。方便自己的使用和回顾。 不过,内外参标定啥时候记录随缘 -_- 概述 【构建相机模型】 相机将三位世界中的坐标点(单位为米)映射到二维图像平面&#xff…

【LeetCode】71.简化路径

1. 题目 2. 分析 3. 代码 我写了一版很复杂的代码&#xff1a; class Solution:def simplifyPath(self, path: str) -> str:operator [] # 操作符的栈dir_name [] # 文件名的栈idx 0cur_dir_name ""while(idx < len(path)):if path[idx] /:operator.ap…

MT6775(Helio P70)处理器规格参数_MTK联发科平台方案

联发科MT6775(Helio P70)采用台积电12nm工艺制程节省功耗达 15%&#xff0c;搭载了四颗Arm Cortex-A73 2.1GHz和四颗ArmCortex-A53 2.0GHz的八核处理器。 GPU为ARM Mali-G72 MP3&#xff0c;运行时频率高达900MHz&#xff0c;相较于上一代产品HelioP60&#xff0c;效能提升了1…

搜索与下载Stable Diffusion 模型

我只是一个刚开始学习SD没多久小白&#xff0c;拿到别人的工作流想要运行时&#xff0c;很多时候还要下载对应的模型才能正常运行&#xff0c;虽然也可以通过comfyui-manager下载&#xff0c;不过有时候好像会下载失败&#xff0c;而单独下载所需模型&#xff0c;我自己试过&am…

解析西门子PLC的String和WString

西门子PLC有两种字符串类型&#xff0c;String与WString String 用于存放英文数字标点符号等ASCII字符&#xff0c;每个字符占用一个字节 WString宽字符串用于存放中文、英文、数字等Unicode字符&#xff0c;每个字符占用两个字节 之前我搞过一篇解析String的 关于使用TCP-…

SparkSql oom原因以及参数调优+数据倾斜解决方案

1、Spark历史版本对比 spark1 vs spark2 vs spark3 1、spark1引入内存计算的理念&#xff0c;解决中间结果落盘导致的效率低下。在理想状况下性能可达到MR的100倍。虽然提高了一定的计算效率&#xff0c;但也带来了大量的内存管理问题&#xff0c;典型的如内存oom问题频发。…

第124天:内网安全-代理 Sockets协议路由不出网后渗透通讯CS-MSF 控制上线

目录 思维导图 环境配置 案例一&#xff1a;网络通讯&控制上线--CS-路由添加&节点建立&协议生成&正反连接 案例二&#xff1a;网络通讯&控制上线--MSF-路由添加&节点建立&协议生成&正反连接 思维导图 环境配置 这里由于系统内存问题我只设…

79页PDF免费下载 | 全域数字化转型评估模型研究报告

一、前言&#xff1a; 随着数字技术的飞速发展&#xff0c;零售行业正站在转型的十字路口。如何在变革中找到方向&#xff0c;如何通过数字化转型提升企业竞争力&#xff0c;已成为每个零售企业必须面对的课题。腾讯智慧零售与伏羲智库深度合作&#xff0c;推出《2024年全域数…

【Python selenium过极验滑块】用自动化selenium 操作GEETEST极验滑块,简单粗暴

文章日期&#xff1a;2024.07.24 使用工具&#xff1a;Python 文章类型&#xff1a;自动化过极验滑块 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 标准算法&…

使用FileZilla Cilent快速让手机与电脑进行文件互传(无需生态)

目录 前言使用 FileZilla笔者的话 前言 当设备多的时候文件的传输就成了一种问题。 就比如说我想将手机上的文件传到电脑里面&#xff0c;因为我使用的电脑跟我的手机不是一个生态的&#xff0c;它们唯一的联系或许就是连接到了统一 WIFI 下&#xff0c;也就是说它们在同一个…

Redis与MySQL的数据一致性问题

目录 一、策略模式 1、旁路缓存模式&#xff08;Cache Aside Pattern&#xff09; 2、读写穿透&#xff08;Read-Through/Write-Through&#xff09; 3、异步缓存写入&#xff08;Write Behind&#xff09; 二、一致性解决方案 1、缓存延迟双删 2、删除重试机制 3、读取…

【概率论】-2-概率论公理(Axioms of Probability)

上一篇文章我们学习了基本的概率论内容-排列组合&#xff0c;本次我们学习概率论公理的内容&#xff0c;正式开始计算概率&#xff0c;在开始前我们需要学习一些基本概念。 目录 一.样本空间和事件 1.样本空间 2.事件 3.交并补 二、概率公理 1.基本公理 2.对称差 2.布尔…

Mysql中(基于GTID方式)实现主从复制,单主复制详细教程

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

Android Studio 一键删除 Recent Projects信息的方法

Android Studio打开项目多了就一堆最近项目的记录&#xff0c;在IDE里面只能一个个手动删除。 File - Recent Projects 解决方案&#xff1a;修改配置文件 Note&#xff1a;方法不唯一。 Android Studio 存储了一个包含最近打开项目信息的配置文件。通过手动编辑或删除recentP…