linux离线安装mysql8(单机版)

文章目录

  • 一、检查服务器是否有残留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/mysqlln -snf /usr/local/mysql8/bin/mysqld /usr/sbin/mysqld ln -snf /usr/local/mysql8/bin/mysqladmin /usr/bin/mysqladminln -snf /usr/local/mysql8/bin/mysqlbinlog /usr/bin/mysqlbinlogln -snf /usr/local/mysql8/bin/mysqlcheck /usr/bin/mysqlcheckln -snf /usr/local/mysql8/bin/mysql_config_editor /usr/bin/mysql_config_editorln -snf /usr/local/mysql8/bin/mysqldump /usr/bin/mysqldumpln -snf /usr/local/mysql8/bin/mysqldumpslow /usr/bin/mysqldumpslowln -snf /usr/local/mysql8/bin/mysqlimport /usr/bin/mysqlimportln -snf /usr/local/mysql8/bin/mysqlpump /usr/bin/mysqlpumpln -snf /usr/local/mysql8/bin/mysql_secure_installation /usr/bin/mysql_secure_installationln -snf /usr/local/mysql8/bin/mysqlshow /usr/bin/mysqlshowln -snf /usr/local/mysql8/bin/mysqlslap /usr/bin/mysqlslapln -snf /usr/local/mysql8/bin/mysql_tzinfo_to_sql /usr/bin/mysql_tzinfo_to_sqlln -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.mzph.cn/web/48688.shtml

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

相关文章

JVM之经典垃圾回收器

1.垃圾回收器的分类 处理范围划分: 新生代垃圾回收器:serial、parNew、parallel scavenge; 老年代垃圾回收器:serial Old、parallel Old、CMS; 整堆收集器:G1、ZGC; 2.Serial GC Serial是单…

java单元测试:Mockito常用技巧

Mockito是Java中最流行的Mock框架之一,主要用于创建和配置模拟对象(Mock),以测试代码的行为。Mockito使得单元测试更加简单和可控,特别是在需要隔离外部依赖的情况下。 1. Mockito简介 1.1 什么是Mockito Mockito是一个…

QGC二次开发入门教程(一):课程大纲

文章目录 前言一、课程大纲二、修改软件名称三、修改软件图标四、官方QGC中文版BUG修复五、汉化六、修改商标七、添加信号-槽八、添加QML和C交互九、MAVLINK的解析与发送十、换地图十一、添加自定义mavlink消息十二、在主工具栏添加一个自定义图标十三、解析自定义mavlink数据并…

SVN文件夹没有图标(绿钩子和红感叹号)

3分钟教会你解决SVN文件夹没有绿勾和红色感叹号的问题_svn文件被改动过不显示红色-CSDN博客https://blog.csdn.net/weixin_43382915/article/details/124251563 关于SVN状态图标不显示的解决办法(史上最全) - 简书 (jianshu.com)https://www.jianshu.com/p/92e8e1f345c0

华为OD机试D卷 --剩余银饰的重量--24年OD统一考试(Java JS Python C C++)

文章目录 题目描述输入描述输出描述用例题目解析java源码js源码python源码c源码c++源码题目描述 有 N 块二手市场收集的银饰,每块银饰的重量都是正整数,收集到的银饰会被熔化用于打造新的饰品。 每一回合,从中选出三块最重的银饰,然后一起熔掉。 假设银饰的重量分别为 x…

人工智能与机器学习原理精解【6】

文章目录 数值优化基础理论凹凸性定义在国外与国内存在不同国内定义国外定义总结示例与说明注意事项 国内凹凸性二阶定义的例子凹函数例子凸函数例子 凸函数(convex function)的开口方向凸函数的二阶导数凸函数的二阶定义单变量函数的二阶定义多变量函数…

微信小程序下载预览PDF并且分享出去

wx.downloadFile({url: url, //要预览的PDF的地址// filePath: ${wx.env.USER_DATA_PATH}/${docName}.pdf, // 添加后缀,可以分享出去success: function (res) { console.log(res);if (res.statusCode 200) { //成功const { filePa…

基于springboot+vue+uniapp的网上花店小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

DNS主从服务架构(thirteen day)

回顾 编号主机名IP地址说明修改1web服务器192.168.1.11发布部署web服务发布了一个nginx web服务2DNS服务器192.168.1.22用于解析域名和IP地址 1、安装bind 2、配置一个conf,zones,zone 3、检查了3个文件 4、启动 3client主机192.168.1.33用于模拟客户机…

FreeSWITCH 1.10.10 简单图形化界面26-在网页上播放SIP设备视频

​ FreeSWITCH 1.10.10 简单图形化界面26-在网页上播放SIP设备视频 1、前言2、大概流程3、测试环境4、安装流媒体服务器5、设置流媒体服务器接口6、简单写个web接口7、测试一下1、web播放在线播放器1在线播放器2本地video控件 2、vlc播放vlc播放rtmpvlc播放rtsp 8、总结 1、前…

https改造-python https 改造

文章目录 前言https改造-python https 改造1.1. https 配置信任库2. 客户端带证书https发送,、服务端关闭主机、ip验证 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每…

git操作的一些备忘录

1.回退本地合并 git merge --abort 2.撤销上一次的提交 方法一:(已经提交到git线上仓库了,git reset操作,会把之前提交的都删除,感觉有点危险) 想要让Git回退历史,有以下步骤: 使用git log命令&#xff0c…

SpringSecurity--DelegatingFilterProxy工作流程

什么是 DelegatingFilterProxy? DelegatingFilterProxy 是 Spring 提供的一个特殊的过滤器,它起到了桥梁的作用,可以让你在 Spring 容器中管理 Servlet 容器中的过滤器。 为什么需要 DelegatingFilterProxy? 通常情况下&#x…

【项目日记(三)】梦幻笔耕-博客模块

❣博主主页: 33的博客❣ ▶️文章专栏分类:项目日记◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多项目内容 目录 1.前言2.获取博客列表3.获取博客详情4.新增博客5.更新博客6.删除博客7.拦截器9.统一处…

日常开发记录分享-SQL中的partition分区功能使用

文章目录 需求来源实现思路实施SQL 语句结构内部查询(子查询)外部查询 结果 partition的升级使用解释 验证一下看看分区 分区的一些操作1. 普通查询2. 分区表上的查询优化3. 插入数据4. 删除分区中的数据5. 分区维护操作添加新的分区删除分区重组分区 6.…

银河麒麟服务器V10 SP3 安装人大金仓V009R001C001B0030

原文链接:银河麒麟服务器V10 SP3 安装人大金仓V009R001C001B0030 Hello,大家好啊,今天给大家带来一篇关于在银河麒麟服务器V10 SP3上安装人大金仓V009R001C001B0030的文章。人大金仓是国内知名的数据库管理系统,它在高性能、高可靠…

AWS全服务历史年表:发布日期、GA和服务概述一览 (全)

我一直在尝试从各种角度撰写关于Amazon Web Services(AWS)的信息和魅力。由于我喜欢技术历史,这次我总结了AWS服务发布的历史年表。 虽然AWS官方也通过“Whats New”发布了官方公告,但我一直希望能有一篇文章将公告日期、GA日期&…

【C++】标准库:介绍string类

string 一.string类介绍二.string类的静态成员变量三.string类的常用接口1.构造函数(constructor)2.析构函数(destructor)3.运算符重载(operator)1.operator2.operator[]3.operator4.operator 4.string的四…

算法从零到精通 (一) ~ 快慢双指针

1. 前言 快慢双指针是一种常用的算法技巧,通常用于解决涉及链表或数组的问题。它的基本思想是使用两个指针,一个移动速度快(快指针),一个移动速度慢(慢指针),来解决特定的问题。这两…

计算机软考之计算机网络知识详解

目录 计算机网络概述计算机网络体系结构 OSI参考模型TCP/IP模型 物理层 传输介质信号传输 数据链路层 数据帧错误检测与纠正 网络层 IP协议路由协议 传输层 TCP协议UDP协议 应用层 常见应用层协议 网络安全 常见安全威胁安全措施 实战案例分析总结 计算机网络概述 计算机网络…