Linux 安装 MySQL

一、安装 MySQL 的准备工作

1. 查看系统版本

cat /etc/redhat-release

在这里插入图片描述

2. 查看系统是否已经安装过 MySQL

查看是否安装了 MySQL

rpm -qa | grep mysql

查看是否有安装 mariadb,该软件与 MySQL 数据库有冲突,需要手动卸载

# 如果是 CentOS7 可以检测出已经安装了 mariadb
rpm -qa | grep mariadb

在这里插入图片描述

3. 移除 MySQL 相关的软件

如果系统中没有安装过与 MySQL 相关的软件,直接跳到下一步

rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

二、安装 MySQL

官网传送门

1. 找到压缩包的下载链接

点击 MySQL Community Server

在这里插入图片描述

选择 MySQL 的版本

注意 MySQL 的版本需要与 Linux 的版本对应上

  • centos7 系统对应的 MySQL 是 el7
  • centos8 系统对应的 MySQL 是 el8

一般情况下,直接选择第一个安装包即可,第一个安装包的版本会不定时的更新,与本文所用的安装包有略微的差别,但是并不影响具体的使用

截止 2023-5-11 最新版为 mysql-8.0.33-1.el8.x86_64.rpm-bundle.tar

在这里插入图片描述

2. 下载压缩包

此时有两种方法

  • 第一种,直接点击 No thanks, just start my download 进行下载,然后通过上传工具上传到服务器
  • 第二种,右键 No thanks, just start my download,选择复制链接,然后在服务器中通过 wget 命令下载到服务器

在这里插入图片描述

这里通过 wget 命令下载到服务器,安装到 usr/local 目录,总共 838.4M,下载速度比较慢,需要耐心等待

cd /usr/local
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar

在这里插入图片描述

3. 查看下载好的压缩包

ll

在这里插入图片描述

4. 解压

解压之后会有很多包产生,为了方便查看,将其解压到 /usr/local/mysql_package 里面

mkdir /usr/local/mysql_package
cd /usr/local/mysql_package
tar -xvf /usr/local/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar -C /usr/local/mysql_package

在这里插入图片描述

5. 使用 rpm 安装

必须按照顺序执行命令,否则会出现依赖错误的报错,如果安装过程中出现错误,可以参考下一步给出的总结

rpm -ivh mysql-community-common-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.0.31-1.el8.x86_64.rpm

6. 常见错误总结

(1)未按照规定顺序安装软件

按照顺序安装即可解决

在这里插入图片描述

(2)libc.so.6 缺失

大概率是因为下载的 MySQL版本与 Linux 版本对应不上,可以检查一下 MySQL 压缩包后缀名里面的参数是否与系统版本匹配

  • centos7 系统对应的 MySQL 是 el7
  • centos8 系统对应的 MySQL 是 el8

在这里插入图片描述

(3)openssl 缺失

安装 openssl-devel 即可解决

rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm

在这里插入图片描述

使用 yum install openssl-devel -y 安装 openssl-devel

yum install openssl-devel -y

在这里插入图片描述

再次安装该软件包即可

rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm

在这里插入图片描述

(4)perl 和 libaio 缺失

安装 prellibaio 即可解决

在这里插入图片描述

查看与 perl 相关的软件

yum list perl

在这里插入图片描述

安装

yum install -y perl.x86_64

查看与 libaio 相关的软件

yum list libaio

在这里插入图片描述

安装

yum install -y libaio*

7. 查看已安装的 MySQL 的版本

mysql -V
mysql --version

在这里插入图片描述

8. 删除无用的包

rm -rf /usr/local/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar
rm -rf /usr/local/mysql_package/

三、配置 MySQL 服务

1. 简单配置

查看 MySQL 服务状态

systemctl status mysqld

开启 MySQL 服务

systemctl start mysqld

设置 MySQL 服务开机自启

systemctl enable mysqld

重启 MySQL 服务

systemctl restart mysqld

再次查看 MySQL 服务状态,可以看到 MySQL 服务已经成功运行

systemctl status mysqld

在这里插入图片描述

2. 命令解析

(1)查看 MySQL 服务状态

systemctl status mysqld

(2)暂时关闭 MySQL 服务

服务器重新启动之后,MySQL 服务会再次启动

systemctl stop mysqld

(3)永久关闭 MySQL 服务

服务器重新启动之后,MySQL 服务也不会再次启动

systemctl disable mysqld

(4)开启 MySQL 服务

systemctl start mysqld

(5)设置 MySQL 服务开机自启

systemctl enable mysqld

(6)重启 MySQL 服务

systemctl restart mysqld

四、简单的使用 MySQL

1. 获取 root 用户的初始密码

第一次运行 MySQL 服务时,会进行初始化加载,同时会生成一个 root 用户的初始密码,可以通过查看日志文件 /var/log/mysqld.log 获取到 root 用户的初始密码,后续可手动修改密码

cat /var/log/mysqld.log | grep 'password'

在这里插入图片描述

2. 使用 root 用户登录到 MySQL 服务

mysql -u root -p

在这里插入图片描述

3. 修改 root 的密码

(1)修改初始化密码

alter user 'root'@'localhost' identified by 'BuGu123456!';

在这里插入图片描述

(2)修改 MySQL 校验密码的安全策略【可选,一般不建议修改】

# 设置密码长度的最低位数
set global validate_password.length=4;
# 设置密码的安全等级,修改密码安全策略为低(只校验密码长度,至少8位)
set global validate_password.policy=LOW;

在这里插入图片描述

4. 测试是否正常工作

show databases;

在这里插入图片描述

5. 退出 MySQL 环境

exit;

在这里插入图片描述

五、远程链接 MySQL

1. 第一次远程连接测试

提示无法连接到主机,这是因为 3306 端口未开放

如果是云服务器,防火墙的端口、安全组的端口都需要开放

在这里插入图片描述

(1)开放 3306 端口

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

(2)重新加载服务

firewall-cmd --reload

(3)查看端口号是否开放

firewall-cmd --zone=public --list-port

在这里插入图片描述

2. 第二次远程连接测试

可以看到提示该 root 用户没有远程访问的权限,不被允许远程链接到 MySQL 数据库

在这里插入图片描述

(1)切换到 MySQL 数据库

mysql -u root -p
use mysql;

(2)查看用户的访问权限

user 表中的 host 字段表示用户的访问权限

  • localhost:只可以本地访问
  • %:允许任意地方访问
select host, user, plugin from user;

注意:此时 root 用户并没有被授权远程访问 MySQL 服务,下图中的 host 字段应该为 localhost,而不是 %,由于我的失误,下面这张图片并不是该步骤对应的图片,在此展示的图片中,root 用户的 host 字段应为 localhost

在这里插入图片描述

(3)设置 root 用户任意地方可以访问

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

(4)刷新权限

flush privileges;

(5)再次查看

select host, user, plugin from user;

经过修改,root 用户的 host 字段已经成功被修改为 %,表示 root 用户可以远程访问 MySQL 服务

在这里插入图片描述

3. 第三次远程连接测试

可以看到提示密码校验方式不被允许远程链接到 MySQL 数据库

在这里插入图片描述

caching_sha2_password 加密方式在远程访问时候不支持,需要修改为 mysql_native_password

(1)修改密码策略

注意、注意、注意!!!

修改密码策略的同时,将当前 root 用户的密码的验证策略也修改一下,否则当前用户的密码会失效,使得 root 用户无法使用原密码登录 MySQL 服务,目前我知道的解决办法就是重新安装 MySQL

mysql -u root -p
alter user 'root'@'%' identified with mysql_native_password by 'BuGu123456!';

(2)刷新权限

flush privileges;

4. 第四次远程连接测试

连接成功

在这里插入图片描述

六、数据的导入和导出

1. 导入数据到 MySQL 数据库

进入 MySQL 服务

mysql -uroot -p

创建新的数据库

create database test;

连接到目标数据库

use test;

运行指定路径的 SQL 文件

source /root/test.sql;

测试

select * from user;

在这里插入图片描述

2. 将 MySQL 数据库的数据导出

返回 Linux 界面,将名为 test的数据库备份到指路径的 test1.sql 文件中

mysqldump -uroot -p test > /root/test1.sql

完成后,使用 ll 命令可以查看到导出的 SQL 文件,也即完成备份

ll

在这里插入图片描述

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

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

相关文章

Scene Creator

场景创建器是一个方便、易于使用的编辑工具,旨在简化创建新场景的过程。使用场景创建器,您可以选择一个模板场景,定义一个目录来存储您的场景,并在需要时自动将新场景添加到构建中。 下载: ​​Unity资源商店链接 资…

vue3安装vue-tools

https://github.com/vuejs/devtools/tree/v6.5.0/packages 打开浏览器扩展程序 这个文件直接拖进扩展程序

【源码分析】 Calcite 处理流程详解:calcite架构、处理流程以及就一个运行示例进行源码分析

文章目录 一. Calcite整体架构二. Calcite处理流程三. 处理流程样例说明1. 样例demo1.1. 样例数据1.2. 使用calcite 2. 流程源码分析Step1: SQL 解析阶段(SQL–>SqlNode)Step2: SqlNode 验证(SqlNode–>SqlNode)1. 注册元数…

整理的6个Linux运维脚本

整理的6个Linux运维脚本 1、统计/etc/passwd 中能登录的用户,并将对应在/etc/shadow 中第二列密码提取2、查看当前连接到本机的远程IP地址3、检测本机当前用户是否为超级管理员(root)4、检查指定目录下是否存在对应文件5、查找 Linux 系统中的…

在线的omniplan甘特图制作工具

在线的omniplan甘特图制作工具 快捷键 按住空格键 可以拖动画布Tab 将选中的任务右缩进(设置为子任务)Shift Tab 将选中的任务提升一级(取消子任务)按住Shift可以选择多个任务按住Ctrl 或者 Mac 的 command 可以选择多个任务按…

Redis专题(持续更新)

02-VIP-Redis持久化、主从与哨兵架构详解 文章目录 02-VIP-Redis持久化、主从与哨兵架构详解正文Redis哨兵高可用架构redis哨兵架构搭建步骤:sentinel集群都启动完毕后,会将哨兵集群的元数据信息写入所有sentinel的配置文件里去(追加在文件的最下面)&…

基于深度学习的PCB板缺陷检测系统(含UI界面、yolov8、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下: 算法模型:     yolov8 yolov8主要包含以下几种创新:         1. 添加注意力机制(SE、CBAM等)         2. 修改可变形卷积(DySnake-主干c…

pod探针

Pod进阶: 探针* Poststart Prestop pod的声明周期开始: k8s的pod重启策略: Always deployment的yaml三种模式都可以,不论正常退出还是非正常退出都重启 OnFailure:只有状态码非零才会重启,正常退出事不重启的 …

(读书笔记)网络是如何连接的

1.1 生成 HTTP 请求消息 浏览器是一个具备多种客户端功能的综合性客户端软件,因此它需要 一些东西来判断应该使用其中哪种功能来访问相应的数据,而各种不同的 URL(Uniform Resource Locator,统一资源定位符。) 就是用来干这个的,比如访问 Web 服务器时用“http:”,而访…

2024.1.4 Spark Core ,RDD ,算子

目录 一 . RDD(弹性分布式数据集) 二 . RDD的五个特性 三 .RDD的五大特点 四 . 算子 五 . 分区算子 ,重分区算子 , 聚合算子 ,关联算子 分区算子: 重分区算子 聚合算子 关联算子: 一 . RDD(弹性分布式数据集) Resilent弹性 Distrbuted分布式 Dataset数据集…

vue day5

1、自定义指令 2、v-loading指令封装&#xff08;蒙层&#xff09; 3、插槽 默认插槽 使用组件时&#xff0c;传入具体标签内容 4、插槽 后备内容&#xff08;默认值&#xff09; 5、具名插槽 6、作用域插槽 7、案例 App.vue&#xff1a; <template><d…

ubuntu桥接方式上网

vmvare:VMware Workstation 17 Pro ubuntu: Ubuntu 14.04.6 LTS window10 下面是我的电脑配置 下面是ubuntu虚拟机的配置 vi /etc/network/interfaces 下面的gateway就是window -ipconfig 截图里的默认网关 auto lo iface lo inet loopbackauto eth0 iface eth0 inet stat…

前端实战第一期:悬浮动画

悬浮动画 像这样的悬浮动画该怎么做&#xff0c;让我们按照以下步骤完成 步骤&#xff1a; 先把HTML内容做起来&#xff0c;用button属性创建一个按钮&#xff0c;按钮内写上悬浮效果 <button classbtn>悬浮动画</button>在style标签内设置样式,先设置盒子大小&…

Linux 命令tail

命令作用 tail 命令用于显示文件的末尾内容&#xff0c;默认显示文件的最后 10 行。通常情况下&#xff0c;tail 命令用于实时查看动态日志文件&#xff0c;可以使用 -f 参数跟踪文件内容的变化。 语法 tail [选项] [文件名] 参数 以 log.txt 为例演示参数效果 -n -linesK…

大数据开发的专业术语

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 系列专栏目录 [Java项…

【LeetCode:11. 盛最多水的容器 | 双指针】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

阶段十-分布式-任务调度

第一章 定时任务概述 在项目中开发定时任务应该一种比较常见的需求&#xff0c;在 Java 中开发定时任务主要有三种解决方案&#xff1a;一是使用JDK 自带的 Timer&#xff0c;二是使用 Spring Task&#xff0c;三是使用第三方组件 Quartz Timer 是 JDK 自带的定时任务工具,其…

感知与认知的碰撞,大模型时代的智能文档处理范式

目录 0 写在前面1 GPT4-V&#xff1a;拓宽文档认知边界2 大语言模型的文档感知缺陷3 大一统文档图像处理范式3.1 像素级OCR任务3.2 OCR大一统模型3.3 长文档理解与应用 4 总结抽奖福利 0 写在前面 由中国图象图形学学会青年工作委员会发起的第十九届中国图象图形学学会青年科学…

ElasticSearch使用Grafana监控服务状态-Docker版

文章目录 版本信息构建docker-compose.yml参数说明 创建Prometheus配置文件启动验证配置Grafana导入监控模板模板说明 参考资料 版本信息 ElasticSearch&#xff1a;7.14.2 elasticsearch_exporter&#xff1a;1.7.0&#xff08;latest&#xff09; 下载地址&#xff1a;http…

如何使用 Python+selenium 进行 web 自动化测试?

Selenium是一个自动化测试工具&#xff0c;它可以模拟用户在浏览器中的操作&#xff0c;比如点击、输入、选择等等。它支持多种浏览器&#xff0c;包括Chrome、Firefox、Safari等等&#xff0c;并且可以在多个平台上运行。 安装和配置Selenium 在使用Selenium之前&#xff0c;…