Linux环境离线安装MySQL8.0.33

目录

一、准备

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 = 2000key_buffer_size=8G
read_buffer_size=64K
sort_buffer_size=256K
myisam_max_sort_file_size=100Ginnodb_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.mzph.cn/news/58296.shtml

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

相关文章

JavaWeb 速通JSON

目录 一、JSON快速入门 1.基本介绍 : 2.定义格式 : 3.入门案例 : 二、JSON对象和字符串的相互转换 1.常用方法 : 2.应用实例 : 3.使用细节 : 三、JSON在Java中的使用 1.基本说明 : 2.应用场景 : 2.1 JSON <---> JavaBean 2.2 JSON <---> List 2.3 JSON …

JVM 内存大对象监控和优化实践

作者&#xff1a;vivo 互联网服务器团队 - Liu Zhen、Ye Wenhao 服务器内存问题是影响应用程序性能和稳定性的重要因素之一&#xff0c;需要及时排查和优化。本文介绍了某核心服务内存问题排查与解决过程。首先在JVM与大对象优化上进行了有效的实践&#xff0c;其次在故障转移与…

Gorilla LLM:连接海量 API 的大型语言模型

如果你对这篇文章感兴趣&#xff0c;而且你想要了解更多关于AI领域的实战技巧&#xff0c;可以关注「技术狂潮AI」公众号。在这里&#xff0c;你可以看到最新最热的AIGC领域的干货文章和案例实战教程。 一、前言 在当今这个数字化时代&#xff0c;大型语言模型&#xff08;LLM…

【C++】list类的模拟实现

&#x1f3d6;️作者&#xff1a;malloc不出对象 ⛺专栏&#xff1a;C的学习之路 &#x1f466;个人简介&#xff1a;一名双非本科院校大二在读的科班编程菜鸟&#xff0c;努力编程只为赶上各位大佬的步伐&#x1f648;&#x1f648; 目录 前言一、list类的模拟实现1.1 list的…

2023-08-28 LeetCode每日一题(插入区间)

2023-08-28每日一题 一、题目编号 57. 插入区间二、题目链接 点击跳转到题目位置 三、题目描述 给你一个 无重叠的 &#xff0c;按照区间起始端点排序的区间列表。 在列表中插入一个新的区间&#xff0c;你需要确保列表中的区间仍然有序且不重叠&#xff08;如果有必要的…

nacos服务器启动报错集合

报错1 Error creating bean with name ‘user‘: Unsatisfied dependency expressed through field ‘jwtTokenManage 开启鉴权之后&#xff0c;你可以自定义用于生成JWT令牌的密钥&#xff0c;application.properties中的配置信息为&#xff1a; ### Since 1.4.1, worked when…

Django(3)-创建第一个数据模型-ORM映射

数据库配置 根目录下settings.py 。这是个包含了 Django 项目设置的 Python 模块。 通常&#xff0c;这个配置文件使用 SQLite 作为默认数据库。如果你不熟悉数据库&#xff0c;或者只是想尝试下 Django&#xff0c;这是最简单的选择。Python 内置 SQLite&#xff0c;所以你无…

【科研论文配图绘制】task6直方图绘制

【科研论文配图绘制】task6直方图绘制 task6 主要掌握直方图的绘制技巧&#xff0c;了解直方图含义&#xff0c;清楚统计指标的添加方式 1.直方图 直方图是一种用于表示数据分布和离散情况的统计图形&#xff0c;它的外观和柱形图相近&#xff0c;但它所 表达的含义和柱形图…

《golang设计模式》第二部分·结构型模式-03-组合模式(Composite)

文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 将叶子节点和复合节点组合起来&#xff0c;定义一个抽象接口遍历他们 1.1 角色 Component&#xff08;抽象构件&#xff09;&#xff1a;为叶子构件和复合构件声明接口&#xff0c;定义了结构…

使用element-plus组件,默认显示英文 转换为中文

最近在边写项目边学习vue3 所以这几天没有更新 找机会把vue3的知识也统计一下吧 先说今天遇到的问题 最近做项目的时候使用element-plus分页组件时发现&#xff0c;显示的不是中文的了&#xff0c;是英文的 解决方法 在app.vue里面配置 <template><el-config-provi…

ROS2 CLI工具

目录 节点topic参数launch录包 节点 查看所有node&#xff1a;ros2 node list查看某个node的信息&#xff1a;ros2 node info node_name topic 查看topic输出&#xff1a; ros2 topic echo <topic_name> 查看topic频率&#xff1a;ros2 topic hz <topic_name> …

美创科技“签”手柠檬文才学堂,共推高校数据安全建设

近日&#xff0c;由柠檬文才学堂联合中国教育在线、东北财经大学网络教育学院共同主办的“三教统筹下高校继续教育数字化转型研讨”顺利召开。 国内高等院校&#xff08;高职院校&#xff09;继续教育分管领导&#xff0c;继续教育学院领导及继续教育信息化、教学教务管理、课程…

C++之ifstream成员函数get、tellg、eof实例(一百八十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

范式 事务 多表查询

范式 概念&#xff1a;设计数据库时&#xff0c;需要遵循的一些规范。要遵循后边的范式要求&#xff0c;必须遵循前边的所有范式要求 第一范式&#xff1a; 数据库表的每一列都是不可分割的基本数据项 这样子就不满足第一范式 这样子就满足第一范式 存在问题&#xff1a; 数…

无涯教程-PHP - 返回类型声明

在PHP 7中&#xff0c;引入了一个新函数返回类型声明&#xff0c;返回类型声明指定函数应返回的值的类型&#xff0c;可以声明返回类型的以下类型。 intfloatbooleanstringinterfacesarraycallable 有效返回类型 <?phpdeclare(strict_types1);function returnIntValue(i…

Unity打包Windows程序,概率性出现无法全屏或分辨率不匹配

排除代码和Resolution and Presentation面板设置问题 如果程序还是不能按照预期的分辨率运行&#xff0c;应该是系统注册表记录了对应的设置。 解决方案&#xff1a; 打开注册表&#xff0c;使用快捷键“Win” "R"组合快捷键。在打开后面键入命令&#xff1a;Rege…

一键快速还原修复人脸,CodeFormer 助力人脸图像修复

今天在查资料的时候无意间看到了一个很有意思的工具&#xff0c;就是CodeFormer &#xff0c;作者给出来的说明是用于人脸修复任务的&#xff0c;觉得很有意思就拿来实践了一下&#xff0c;这里记录分享一下。 首先对人脸修复任务进行简单的回顾总结&#xff1a; 人脸修复是指…

分发饼干【贪心算法】

分发饼干 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&#xff0c;都有一个…

MATLAB中符号变量的使用方法解析

简介 MATLAB中常常使用符号变量&#xff0c;这里定义符号变量的函数是syms 使用方法如下 syms x y z 其中&#xff0c;x、y、z 是符号变量&#xff0c;可以是任意字母、数字或下划线组合而成的字符串。 举例1&#xff1a; 代码 以下是一个简单的例子&#xff0c;演示如何…

[论文阅读笔记25]A Comprehensive Survey on Graph Neural Networks

这是一篇GNN的综述, 发表于2021年的TNNLS. 这篇博客旨在对GNN的基本概念做一些记录. 论文地址: 论文 1. 引言, 背景与定义 对于图像数据来说, CNN具有平移不变性和局部连接性, 因此可以在欧氏空间上良好地学习. 然而, 对于具有图结构的数据(例如社交网络 化学分子等)就需要用…