Linux中安装mysql8,转载及注意事项

一、先前往官网下载mysql8
下载地址:

https://dev.mysql.com/downloads/

请添加图片描述
选择Linux
在这里插入图片描述
在这里插入图片描述
二、删除Linux中的mysql(如果有的话),上传安装包
1、先查看mysql是否存在,命令如下:

rpm -qa|grep -i mysql

如果使用这个命令之后没有出现任何内容,表示没有安装过mysql,如果有出现,则删除。
2、如果存在,那么停止mysql,删除所有的服务
在这里插入图片描述
使用如下命令:

find / -name mysql

删除出现的所有文件(如图)
三、解压安装MySQL
1、解压MySQL压缩包

tar xvJf “你的安装包名称”,我这里是

tar xvJf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz

2、重命名解压后的MySQL
觉得解压之后的MySQL文件夹名称太长了,可以 mv “原文件名称” “新文件名称”,重命名一下,注意如果是在当前文件中重命名,新文件名中不能包含斜杆“/”,这是我的

mv mysql-8.0.31-linux-glibc2.12-x86_64 mysql-8.0.31

3、进入MySQL根目录,创建data文件夹
在这里插入图片描述
进入根目录

cd mysql-8.0.31/

创建data文件

mkdir data

四、创建mysql组和用户
这个我没发现有什么用,但很多教程都这么做,我这里也创建一下。
1、创建mysql组

groupadd mysql

2、创建mysql用户

useradd -g mysql mysql

在这里插入图片描述
出现这样的提示表示已经创建过mysql组和用户了。

3、将安装的MySQL权限给mysql用户
命令,chown -R “mysql组名”.“mysql用户名” “mysql安装根目录”

chown -R mysql.mysql /usr/MYSQL/mysql-8.0.31

在这里插入图片描述
五、MySQL初始化
1、初始化
在初始化之前提一嘴,Linux中的MySQL默认是区分表明大小写的,如果你是安装的也是MySQL8,那么不区分大小需要在数据库初始化时设置,不然初始化后,在配置文件在设置重启时是会报错的。

进入MySQL的bin目录进行初始化

./mysqld --user=mysql --basedir=/usr/MYSQL/mysql-8.0.31 --datadir=/usr/MYSQL/mysql-8.0.31/data --lower-case-table-names=1 --initialize

在这里插入图片描述
–lower-case-table-names=1 即设置不区分表明大小写,最后面的 dwW3</EIewj 为初始化生产的临时密码。
2、初始化失败(2023-11-9更新,初始化成功可以不看)
进入bin目录报如下错:

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

在这里插入图片描述
原因:
这是一个与运行MySQL数据库相关的问题。出现这个错误的原因是系统缺少了名为libaio.so.1的共享库文件。
使用命令查看是否已安装libaio软件包,命令如下:

rpm -qa|grep libaio

在这里插入图片描述
可以看到并没有安装libaio软件包。
解决办法:
先安装numactl软件包,命令如下:

yum -y install numactl.x86_64

在这里插入图片描述
然后安装libaio开发包,命令如下:

yum install  libaio-devel.x86_64

在这里插入图片描述
再次查看是否安装成功libaio软件包

rpm -qa|grep libaio

在这里插入图片描述
可以看到安装成功了,再次初始化应该就可以成功了。
在这里插入图片描述

六、修改MySQL配置文件
初次进入时配置是空的,进入命令

vim /etc/my.cnf

在这里插入图片描述

[mysqld]
port=3306
basedir=/usr/MYSQL/mysql-8.0.31/  # MySQL根目录
datadir=/usr/MYSQL/mysql-8.0.31/data/  # MySQL的data目录
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
symbolic-links=0#解决“java.sql.SQLException: Expression #1 of ORDER BY clause is not in SELECT list,references column”
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

保存退出

七、添加服务到系统
进入MySQL根目录,直接复制粘贴命令即可。

cp -a ./support-files/mysql.server /etc/init.d/mysql

在这里插入图片描述
八、授权以及添加服务
这里授权和添加服务都是在MySQL的根目录中操作。

1、授权

chmod +x /etc/init.d/mysql

在这里插入图片描述
2、添加服务

chkconfig --add mysql

在这里插入图片描述
九、启动MySQL
1、启动MySQL命令

service mysql start

2、查看MySQL状态

service mysql status

在这里插入图片描述

3、踩坑(2023-4-12更新,成功启动的可以不看)
如果启动时报如下错
在这里插入图片描述
一个原因是上面新建的data目录没有权限,使用如下命令加上:

chmod -R 755 /usr/local/mysql/mysql-8.0.32/data

此处一定注意:将data目录改为你的data目录,然后再使用
在这里插入图片描述
然后再启动mysql
在这里插入图片描述可以看到报错比上面少了,接下来看看上面报错的日志,使用命令

cat /usr/local/mysql/mysql-8.0.32/data/iZ7xvbz75ed3prrdah1kceZ.err

在这里插入图片描述
前面在初始化时设置了表明大小写不敏感,这里要在mysql的配置文件中显示设置一下
在这里插入图片描述
保存退出,然后重启mysql
在这里插入图片描述
成功启动。

十、将MySQL命令添加到服务
1、添加服务
命令: ln -s “你的MySQL根目录/bin/mysql” /usr/bin ,这一步是为了能在任何地方通过用户名和密码登录MySQL,这是我的

ln -s /usr/MYSQL/mysql-8.0.31/bin/mysql /usr/bin

在这里插入图片描述
2、踩坑(2023-4-12更新,成功登录mysql可以不看)
直到上一步都没有出错,在登录mysql时报如下错:
在这里插入图片描述
可能是挂载的路径错了,到挂载目录查看,命令如下:

cd /usr/bin

可以看到mysql服务是红色的,并且一直在闪,正常的应该是绿色的。
在这里插入图片描述
我当前的mysql根目录是8.0.32,添加的时候写成了8.0.31,怪不得会报错。
解决办法:删除当前mysql的服务,重新添加。
先删除,命令如下:

rm -rf /usr/bin/mysql

重新添加:

ln -s /usr/local/mysql/mysql-8.0.32/bin/mysql /usr/bin

可以看到mysql服务添加成功,可以登录mysql了。
在这里插入图片描述
十一、修改密码
1、先使用前面初始化拿到的临时密码登录

mysql -uroot -p

输入的密码是不显示的
在这里插入图片描述
2、切换到mysql数据库
切换mysql命令

use mysql

如果切换mysql数据库时出现这样的错就直接修改密码:
在这里插入图片描述
查询用户表命令

select Host, User from user;

在这里插入图片描述
可以看到允许访问root的host有哪些,%表示所有,这里只有localhost,修改密码不成功可以看一下root对应的host的值。
注意:本人在此处出现了一个错误。

mysql报错:You must reset your password using ALTER USER statement before executing this statement.

这是因为新安装mysql后,登录后,执行任何命令都会报错:
You must reset your password using ALTER USER statement before executing this statement.
【解决办法】
MySQL版本5.7.6版本以前用户可以使用如下命令:

mysql> SET PASSWORD = PASSWORD('Admin2022!');  --此处后面跟随的是用户名一般是root

MySQL版本5.7.6版本开始的用户可以使用如下命令:

mysql> ALTER USER USER() IDENTIFIED BY 'root';

【出现原因】
出现这种情况的原因:
MySQL版本5.6.6版本起,添加了password_expired功能,它允许设置用户的过期时间。这个特性已经添加到mysql.user数据表,但是它的默认值是”N”,可以使用ALTER USER语句来修改这个值。

3、修改密码
修改密码的命令为:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'

修改之后需要刷新,使密码生效

flush privileges;

下面讲一下远程授权和防火墙开放端口
在服务器上登录MYSQL后,use mysql,依次执行如下两句SQL
第一步:更新域属性,'%'表示允许任意IP地址访问:
输入指令:

update user set host='%' where user ='root';

第二步:执行以上语句之后再执行:
输入指令:

FLUSH PRIVILEGES;

第三步:再执行授权语句:
输入指令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;

可以重启MYSQL

service mysql restart

防火墙需要开放对应端口
首先,查询端口是否开启

firewall-cmd --list-ports

如发现此处输出列表中没有3306端口,可以使用以下命名开放3306端口:

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload

此处接口使用Navacate连接数据库

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

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

相关文章

《算法导论(第4版)》阅读笔记:p4-p5

《算法导论(第4版)》学习第 3 天&#xff0c;p4-p5 总结&#xff0c;总计 2 页。 一、技术总结 1.instance Thus, given the input sequence h31; 41; 59; 26; 41; 58i, a correct sorting algorithm returns as output the sequence h26; 31; 41; 41; 58; 59i. Such an inp…

第十四篇:系统分析师第三遍——15章

目录 一、目标二、计划三、完成情况四、意外之喜(最少2点)1.计划内的明确认知和思想的提升标志2.计划外的具体事情提升内容和标志 五、总结六、后面准备怎么做&#xff1f; 一、目标 通过参加考试&#xff0c;训练学习能力&#xff0c;而非单纯以拿证为目的。 1.在复习过程中&…

Easy云盘总结篇-登录注册

**说在前面&#xff1a;该项目是跟着B站一位大佬写的&#xff0c;不分享源码&#xff0c;支持项目付费 ** 获取图形验证码 可以看到这里有2两种图形验证码&#xff0c;分为&#xff1a; type0&#xff1a;如上图下面那个&#xff0c;是完成操作后要进行注册的验证码 type1: 如…

【前端知识】Vue3状态组件Pinia详细介绍

Vue3状态组件Pinia详细介绍 关联知识 Pinia 组件介绍、核心原理及使用方式 Pinia 组件介绍 Pinia 是 Vue.js 的官方状态管理库&#xff0c;专为 Vue 3 设计&#xff0c;提供简洁的 API 和强大的 TypeScript 支持。其核心组件包括&#xff1a; • Store&#xff1a;状态存储容器…

mysql 云服务远程linux创建数据库

1. 本地使用已创建好的用户创建数据库出现问题 提示access deniey finalshell远程创建新用户 :~# mysql -u root -pR***34 > CREATE DATABASE r***e; > CREATE USER r**ue% IDENTIFIED BY Ry****34; > GRANT ALL PRIVILEGES ON ry_vue.* TO r***e%; > FLUSH PRI…

【“星瑞” O6 评测】 — CPU llama.cpp不同优化速度对比

前言 随着大模型应用场景的不断拓展&#xff0c;arm cpu 凭借其独特优势在大模型推理领域的重要性日益凸显。它在性能、功耗、架构适配等多方面发挥关键作用&#xff0c;推动大模型在不同场景落地 1. Kleidi AI 简介 Arm Kleidi 成为解决这些挑战的理想方案&#xff0c;它能…

wireshark抓包也能被篡改?

wireshark本身并不能修改数据包&#xff0c;但是tcprewrite 可以修改数据包&#xff0c;然后通过tcpreplay 进行重放&#xff0c;这个时候wireshark抓的包&#xff0c;就是被篡改后的pcap包了。 ailx10 网络安全优秀回答者 互联网行业 安全攻防员 去咨询 步骤一&#xff1a…

使用PyTorch进行热狗图像分类模型微调

本教程将演示如何使用PyTorch框架对预训练模型进行微调&#xff0c;实现热狗与非热狗图像的分类任务。我们将从数据准备开始&#xff0c;逐步完成数据加载、可视化等关键步骤。 1. 环境配置与库导入 %matplotlib inline import os import torch from torch import nn from d2l…

内容中台与企业内容管理核心差异剖析

功能定位与架构设计差异 在企业数字化进程中&#xff0c;内容中台与企业内容管理&#xff08;ECM&#xff09;的核心差异首先体现在功能定位层面。传统ECM系统以文档存储、版本控制及权限管理为核心&#xff0c;主要服务于企业内部知识库的静态管理需求&#xff0c;例如通过Ba…

使用PyMongo连接MongoDB的基本操作

MongoDB是由C语言编写的非关系型数据库&#xff0c;是一个基于分布式文件存储的开源数据库系统&#xff0c;其内容存储形式类似JSON对象&#xff0c;它的字段值可以包含其他文档、数组及文档数组。在这一节中&#xff0c;我们就来回顾Python 3下MongoDB的存储操作。 常用命令:…

第 12 届蓝桥杯 C++ 青少组中 / 高级组省赛 2021 年真题

一、选择题 第 1 题 题目&#xff1a;下列符号中哪个在 C 中表示行注释 ( )。 A. ! B. # C. ] D. // 正确答案&#xff1a;D 答案解析&#xff1a; 在 C 中&#xff0c;//用于单行注释&#xff08;行注释&#xff09;&#xff0c;从//开始到行末的内容会被编译器忽略。选项 A…

【python】【UV】一篇文章学完新一代 Python 环境与包管理器使用指南

&#x1f40d; UV&#xff1a;新一代 Python 环境与包管理器使用指南 一、UV 是什么&#xff1f; UV 是由 Astral 团队开发的高性能 Python 环境管理器&#xff0c;旨在统一替代 pyenv、pip、venv、pip-tools、pipenv 等工具。 1.1 UV 的主要功能 &#x1f680; 极速包安装&…

前端性能优化2:结合HTTPS与最佳实践,全面优化你的网站性能

点亮极速体验&#xff1a;结合HTTPS与最佳实践&#xff0c;为你详解网站性能优化的道与术 在如今这个信息爆炸、用户耐心极其有限的数字时代&#xff0c;网站的性能早已不是一个可选项&#xff0c;而是关乎生存和发展的核心竞争力。一个迟缓的网站&#xff0c;无异于在数字世界…

JavaWeb:vueaxios

一、简介 什么是vue? 快速入门 <!-- 3.准备视图元素 --><div id"app"><!-- 6.数据渲染 --><h1>{{ msg }}</h1></div><script type"module">// 1.引入vueimport { createApp, ref } from https://unpkg.com/vu…

Tauri联合Vue开发中Vuex与Pinia关系及前景分析

在 TauriVue 的开发场景中&#xff0c;Vuex 和 Pinia 是两种不同的状态管理工具&#xff0c;它们的关系和前景可以从以下角度分析&#xff1a; 一、Vuex 与 Pinia 的关系 继承与发展 Pinia 最初是作为 Vuex 5 的提案设计的&#xff0c;其目标是简化 Vuex 的复杂性并更好地适配 …

Linux中的时间同步

一、时间同步服务扩展总结 1. 时间同步的重要性 多主机协作需求&#xff1a;在分布式系统、集群、微服务架构中&#xff0c;时间一致性是日志排序、事务顺序、数据一致性的基础。 安全协议依赖&#xff1a;TLS/SSL证书、Kerberos认证等依赖时间有效性&#xff0c;时间偏差可能…

【算法基础】三指针排序算法 - JAVA

一、基础概念 1.1 什么是三指针排序 三指针排序是一种特殊的分区排序算法&#xff0c;通过使用三个指针同时操作数组&#xff0c;将元素按照特定规则进行分类和排序。这种算法在处理包含有限种类值的数组时表现出色&#xff0c;最经典的应用是荷兰国旗问题&#xff08;Dutch …

《操作系统真象还原》第十二章(2)——进一步完善内核

文章目录 前言可变参数的原理实现系统调用write更新syscall.h更新syscall.c更新syscall-init.c 实现printf编写stdio.h编写stdio.c 第一次测试main.cmakefile结果截图 完善printf修改main.c 结语 前言 上部分链接&#xff1a;《操作系统真象还原》第十二章&#xff08;1&#…

ICML2021 | DeiT | 训练数据高效的图像 Transformer 与基于注意力的蒸馏

Training data-efficient image transformers & distillation through attention 摘要-Abstract引言-Introduction相关工作-Related Work视觉Transformer&#xff1a;概述-Vision transformer: overview通过注意力机制蒸馏-Distillation through attention实验-Experiments…

深度学习:AI 机器人时代

在科技飞速发展的当下&#xff0c;AI 机器人时代正以汹涌之势席卷而来&#xff0c;而深度学习作为其核心驱动力&#xff0c;正重塑着我们生活与工作的方方面面。 从智能工厂的自动化生产&#xff0c;到家庭中贴心服务的智能助手&#xff0c;再到复杂环境下执行特殊任务的专业机…