Linux环境离线安装MySQL8.0.33

news2024/11/20 7:07:57

目录

一、准备

1、检查libaio.so.1

2、卸载删除原有的mariadb

3、删除my.cnf

4、下载mysql安装包

二、安装

1、上传mysql

2、建立mysql所需目录

3、建立配置文件my.cnf

4、创建mysql用户并授权

5、初始化数据库

6、启动MySQL数据库

7、常见启动报错处理

8、配置MySQL环境变量

9、修改root登录密码

三、配置

1、开启MySQL远程连接

 2、解决Navicat连接报错“caching_sha2_password”


一、准备

1、检查libaio.so.1

mysql启动需要这个包,安装前提前检查下有没,没有则需要安装。

###查找
whereis libaio.so.1

###如果没有则安装
#在线安装
yum install -y libaio
#离线安装
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm

2、卸载删除原有的mariadb

 卸载删除原有的mariadb,否则可能会报异常。 

#查询原有的mariadb环境
rpm -qa|grep mariadb

#卸载操作,rpm -e --nodeps后续跟着相应查出的mariadb即可,--nodeps为忽略依赖
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

3、删除my.cnf

如果之前安装过mysql卸载了,可查看下有无my.cnf并删除

#查找
find / -name my.cnf

#删除
rm -rf /etc/my.cnf

4、下载mysql安装包

官网地址:MySQL :: Download MySQL Community Server (Archived Versions)icon-default.png?t=N7T8https://downloads.mysql.com/archives/community/

根据自己的操作系统情况选择下载,我选了第一个“mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz”

二、安装

1、上传mysql

#将文件mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz上传到服务器

#解压
tar -zxvf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz

#移动到要安装的目录并重命名
mv mysql8.0.33-linux-glibc2.12-x86_64 /usr/local/mysql

2、建立mysql所需目录

#建立mysql所需目录  /usr/local/mysql下建立
mkdir data
mkdir log
mkdir pid
mkdir tmp

3、建立配置文件my.cnf

#编辑my.cnf 
vim my.cnf

添加如下内容:

[mysqld]
port = 3306
basedir =/usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/log/mysqld.log
pid-file = /usr/local/mysql/pid/mysqld.pid
socket = /usr/local/mysql/tmp/mysql.sock
character-set-server=utf8
default-storage-engine=Innodb
max_connections=500
lower_case_table_names = 1
interactive_timeout=288000
wait_timeout=288000
net_read_timeout=900
net_write_timeout=900
max_allowed_packet=1073741824
log_bin_trust_function_creators=1
innodb_flush_log_at_trx_commit = 2
sync_binlog = 2000

key_buffer_size=8G
read_buffer_size=64K
sort_buffer_size=256K
myisam_max_sort_file_size=100G

innodb_buffer_pool_size=10G
innodb-buffer-pool-instances=8
innodb_read_io_threads=8
innodb_write_io_threads=8
innodb-file-per-table=true
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

 注意:

在MySQL8之后不支持NO_AUTO_CREATE_USER服务。也就是设置sql_mode中不能有NO_AUTO_CREATE_USER,否则后续MySQL无法启动,启动报错如下:

4、创建mysql用户并授权

#新建用户
adduser mysql

#授权
chown -R mysql:mysql /usr/local/mysql

5、初始化数据库

这里初始化后会有会打印出一个随机密码(如: root@localhost: JQ=ihNp-x64N ),记住他,后续修改root密码要用。

bin/mysqld --initialize --user=mysql --basedir=/tdx/mysql8.0.33 --lower_case_table_names=1

选项说明:
–initialize 初始化(真正开始干活)
–user=mysql 以mysql用户的身份初始化数据库,产生文件都是mysql作为拥有者
–basedir=xxx mysql其安装目录,非常重要
–lower_case_table_names=1 不区分大小写,初始化不指定,必须重装才能解决,非常重要

6、启动MySQL数据库

方式一:
#将mysql纳入服务管理,这步不执行的话service mysql start报错
cp support-files/mysql.server /etc/init.d/mysql
#启动
service mysql start

方式二:
#启动MySQL
systemctl start mysqld
#停止MySQL
systemctl stop mysqld
#查看MySQL运行状态
systemctl status mysqld
#设置MySQL开机自启
systemctl enable mysqld

这里解答下为什么方式一要复制 mysql.server 到 /etc/init.d/mysql

/etc/init.d/xxxx xxxx这样的方式是老版本Linux使用的服务管理方式(针对从官方软件仓库或官方镜像源安装的软件),针对CentOS来说,是CentOS 6.9及其以下版本才用这样的方式启动MySQL服务,从CentOS 7开始,改成了systemd管理系统服务,这样可以用方式二来管理服务。

摘于:知乎 https://www.zhihu.com/question/455654934

7、常见启动报错处理

报错1:

error: log-error set to ‘/usr/local/mysql/log/mysqld.log’, however file don’t exists. Create writable for user ‘mysql’.
ERROR! The server quit without updating PID file (/usr/local/mysql/pid/mysqld.pid).=

需要建立所需文件并修改文件属主后再次启动。

#建立所需
touch /tdx/mysql8.0.33/log/mysqld.log
#修改所属用户
chown -R mysql:mysql /tdx/mysql8.0.33/log/mysqld.log

报错2:

ERROR! The server quit without updating PID file (/usr/local/mysql/pid/mysqld.pid).= 

可以查看日志文件/usr/local/mysql/log/mysqld.log确认具体原因。

比如:在MySQL8之后不支持NO_AUTO_CREATE_USER服务。

报错3:

mysql.sock文件路径不对的问题

方法一:在/tmp下创建一个link:ln -s /usr/local/mysql/tmp/mysql.sock /tmp/mysql.sock

方法二:在root权限下修改my.cnf文件(/etc/mysql/my.cnf),指定正确的路径。文件[mysqld]中加上“socket=/usr/local/mysql/tmp/mysql.sock”
 

8、配置MySQL环境变量

启动成功后修改环境变量,环境变量修改完后加载环境变量,然后输入mysql测试环境变量是否配置成功。

#打开/etc/profile文件编辑
sudo vim /etc/profile

#文件/etc/profile最下面加入如下内容
#MYSQL_HOME
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin

#修改保存后加载环境变量
source /etc/profile

9、修改root登录密码

#root登录
mysql -u root -p

#输入初始化数据库时让记住的密码
JQ=ihNp-x64N

#修改密码,注意如果密码不符合配置的密码策略,会报错,密码可以复杂点
alter user root@localhost identified by '123456';

三、配置

1、开启MySQL远程连接

一般都会通过Navicat连接,但root用户默认只能本地访问。

#使用mysql数据库
use mysql;

#查看root账号权限
select user,host from user;

#如果root不是 %,使用语句更新
update user set host = '%' where user = 'root';

#修改后仍无法远程访问可重启下服务
service mysql restart

 2、解决Navicat连接报错“caching_sha2_password”

Navicat连接时报错 Authentication plugin ‘caching_sha2_password‘ cannot be loaded

  • mysql5 默认加密方式是 my_native_password
  • mysql8 默认加密方式是 caching_sha2_password

这个问题就是MySQL使用了caching_sha2_password加密方式但Navicat却找不到某个必需的文件。可通过修改root加密方式来解决。

# 选择数据库mysql
use mysql; 
#方式一:修改加密方式
update user set plugin='mysql_native_password'; 
#方式二:只修改root加密方式,这里还需定义密码,注意如果密码不符合配置的密码策略,会报错,密码可以复杂点
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123@#a';

配置完成后再测试下连接,可以连接成功了。

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

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

相关文章

VS的调试技巧

Visual Studiohttps://visualstudio.microsoft.com/zh-hans/vs/ 目录 1、什么是调试? 2、debug和release 3、调试 3.1、环境 3.2、 快捷键 3.2.1、F10和F11 3.2.2、ctrlF5 3.2.3、F5与F9 3.2.3.1、条件断点 3.3、监视和内存观察 3.3.1、监视 3.3.2、内存 …

【爬虫GUI】YouTube评论采集软件,突破反爬,可无限爬取!

文章目录 一、背景介绍1.1 软件说明1.2 效果演示 二、科普知识2.1 关于视频id2.2 关于评论时间 三、爬虫代码3.1 界面模块3.2 爬虫模块3.3 日志模块 四、获取源码及软件 一、背景介绍 你好,我是马哥python说 ,一名10年程序猿。 最近我用python开发了一…

基于蜜獾算法优化的BP神经网络(预测应用) - 附代码

基于蜜獾算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于蜜獾算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.蜜獾优化BP神经网络2.1 BP神经网络参数设置2.2 蜜獾算法应用 4.测试结果:5.Matlab代码 摘要…

融合正余弦和柯西变异的麻雀搜索算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【数据结构】排序(插入、选择、交换、归并) -- 详解

一、排序的概念及其运用 1、排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记…

APP弱网测试

测试用例 在弱网的条件下 页面的响应正常页面展示的数据无误页面的一致性无误(图片展示、排版预期一致、数据展示无误)是否会出现ANR、Crash 在网络切换的情况下 页面交互无误无奔溃、显示错乱客户端服务端数据一致性展示无误请求堆积的出路无误 在无网…

谈谈智能安防领域

目录 1.什么是智能安防 2.智能安防的发展过程 3.智能安防涉及到的知识 4.智能安防给人类带来的福利 1.什么是智能安防 智能安防是基于人工智能技术的安全防护系统,旨在通过智能化的方法保护人员和财产的安全。它利用传感器、摄像头、算法等技术,通过识…

前端面试必备 | uni-app 篇(P1-15)

文章目录 1. 请简述一下uni-app的定义和特点。2. uni-app兼容哪些前端框架?请列举几个。3. 请简述一下uni-app的跨平台工作原理。4. 什么是条件编译?在uni-app中如何实现条件编译?5. uni-app中的页面生命周期有哪些?请简要介绍。6…

【卷积神经网络】MNIST 手写体识别

LeNet-5 是经典卷积神经网络之一,1998 年由 Yann LeCun 等人在论文 《Gradient-Based Learning Applied to Document Recognition》中提出。LeNet-5 网络使用了卷积层、池化层和全连接层,实现可以应用于手写体识别的卷积神经网络。TensorFlow 内置了 MNI…

网络基础知识socket编程

目录 网络通信概述网络互连模型:OSI 七层模型TCP/IP 四层/五层模型数据的封装与拆封 IP 地址IP 地址的编址方式IP 地址的分类特殊的IP 地址如何判断2 个IP 地址是否在同一个网段内 TCP/IP 协议TCP 协议TCP 协议的特性TCP 报文格式建立TCP 连接:三次握手关…

vue2 支持图片放大

添加 :preview-src-list属性 <el-imagev-for"item in specialData.urls":src"item":key"item.index":preview-src-list[item]class"pictrue"/>

李跳跳apk

李跳跳下载&#xff0c;密码 65c9

【VRRP】虚拟路由冗余协议

什么是VRRP&#xff1f; 虚拟路由冗余协议VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;是一种用于提高网络可靠性的容错协议。通过VRRP&#xff0c;可以在主机的下一跳设备出现故障时&#xff0c;及时将业务切换到备份设备&#xff0c;从而保障网络通信的…

【桌面小屏幕项目】ESP32开发环境搭建

视频教程链接&#xff1a; 【【有手就行系列】嵌入式单片机教程-桌面小屏幕实战教学 从设计、硬件、焊接到代码编写、调试 ESP32 持续更新2022】 https://www.bilibili.com/video/BV1wV4y1G7Vk/?share_sourcecopy_web&vd_source4fa5fad39452b08a8f4aa46532e890a7 一、esp…

C++标准库STL容器详解

目录 C标准模板库STL容器容器分类容器通用接口 顺序容器vectorlistdeque 容器适配器queuestackpriority_queue 关联容器&#xff1a;红黑树setmultisetmapmultimap 关联容器&#xff1a;哈希表unordered_set和unordered_multisetunordered_map和unordered_multimap 附1&#xf…

机械硬盘HDD的基础知识介绍

机械硬盘在价格&#xff0c;容量&#xff0c;磨损度上面都只有着SSD不可取代的地方&#xff0c;目前世界上80%的数据仍然存储在HDD上&#xff0c;不过随着科技的进步&#xff0c;以及SSD技术不断的突破和逐渐降低的价格&#xff0c;HDD的占比会越来越低,至于未来会不会被SSD完全…

任务执行和调度----Spring线程池/Quartz

定时任务 在服务器中可能会有定时任务&#xff0c;但是不知道分布式系统下次会访问哪一个服务器&#xff0c;所以服务器中的任务就是相同的&#xff0c;这样会导致浪费。使用Quartz可以解决这个问题。 JDK线程池 RunWith(SpringRunner.class) SpringBootTest ContextConfi…

Redis的五大数据类型的数据结构

概述 Redis底层有六种数据类型包括&#xff1a;简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组。这六种数据结构五大数据类型关系如下&#xff1a; String&#xff1a;简单动态字符串List&#xff1a;双向链表、压缩列表Hash&#xff1a;压缩列表、哈希表Sorted…

指针(个人学习笔记黑马学习)

1、指针的定义和使用 #include <iostream> using namespace std;int main() {int a 10;int* p;p &a;cout << "a的地址为&#xff1a;" << &a << endl;cout << "a的地址为&#xff1a;" << p << endl;…

CPU和GPU的区别

介绍什么是GPU, 那就要从CPU和GPU的比较不同中能更好更快的学习到什么是GPU CPU和GPU的总体区别 CPU&#xff1a; 叫做中央处理器&#xff08;central processing unit&#xff09; 可以形象的理解为有25%的ALU(运算单元)、有25%的Control(控制单元)、50%的Cache(缓存单元)…