Linux 安装 MySQL【CentOS】_linux 安装mysql-程序员宅基地

技术标签: Linux  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

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bugu_hhh/article/details/130625482

智能推荐

基于Kepler.gl 和 Google Earth Engine 卫星数据创建拉伸多边形地图-程序员宅基地

文章浏览阅读965次,点赞18次,收藏21次。现在我们有了 2021 年和 2023 年的 NDVI 数据帧,我们需要从 2021 年的值中减去 2023 年的值以捕获 NDVI 的差异。该数据集包括像素级别的植被值,我们将编写一个自定义函数来根据红色和绿色波段的表面反射率计算 NDVI。在我的上一篇文章中,我演示了如何将单个多边形分割/镶嵌为一组大小均匀的六边形。现在我们有了植被损失数据,让我们使用 Kepler.gl 可视化每个六边形的植被损失。将地图保存为 HTML 文件,在浏览器中打开 HTML 以获得更好的视图。现在我们将调用该函数并使用、

Echarts绘制任意数据的正态分布图_echarts正态分布图-程序员宅基地

文章浏览阅读3.3k次,点赞6次,收藏5次。正态分布,又称高斯分布或钟形曲线,是统计学中最为重要和常用的分布之一。_echarts正态分布图

Android中发送短信等普通方法_android bundle.get("pdus");-程序员宅基地

文章浏览阅读217次。首先要在Mainfest.xml中加入所需要的权限:[html] view plain copyprint?uses-permission android:name="android.permission.SEND_SMS"/> uses-permission android:name="android.permission.READ_SMS"/> _android bundle.get("pdus");

2021-07-26 WSL2 的安装和联网_wsl2 联网-程序员宅基地

文章浏览阅读2.6k次。0、说明最近在学习 Data Assimilation Research Testbed (DART) 相关内容,其软件是在 Unix/Linux 操作系统下编译和运行的 ,由于我的电脑是 Windows 10 的,DART 推荐可以使用 Windows Subsystem For Linux (WSL) 来创建一个 Windows 下的 Linux 子系统。以下的内容主要介绍如何安装 WSL2,以及 WSL2 的联网。1、如何在 Windows 10 下安装WSL具体的安装流程可以在 microso_wsl2 联网

DATABASE_LINK 数据库连接_添加 database link重复的数据库链接命-程序员宅基地

文章浏览阅读1k次。DB_LINK 介绍在本机数据库orcl上创建了一个prod_link的publicdblink(使用远程主机的scott用户连接),则用sqlplus连接到本机数据库,执行select * from scott.emp@prod_link即可以将远程数据库上的scott用户下的emp表中的数据获取到。也可以在本地建一个同义词来指向scott.emp@prod_link,这样取值就方便多了..._添加 database link重复的数据库链接命

云-腾讯云-实时音视频:实时音视频(TRTC)-程序员宅基地

文章浏览阅读3.1k次。ylbtech-云-腾讯云-实时音视频:实时音视频(TRTC)支持跨终端、全平台之间互通,从零开始快速搭建实时音视频通信平台1.返回顶部 1、腾讯实时音视频(Tencent Real-Time Communication,TRTC)拥有QQ十几年来在音视频技术上的积累,致力于帮助企业快速搭建低成本、高品质音视频通讯能力的完整解决方案。..._腾讯实时音视频 分享链接

随便推点

用c语言写个日历表_农历库c语言-程序员宅基地

文章浏览阅读534次,点赞10次,收藏8次。编写一个完整的日历表需要处理许多细节,包括公历和农历之间的转换、节气、闰年等。运行程序后,会输出指定年份的日历表。注意,这个程序只是一个简单的示例,还有很多可以改进和扩展的地方,例如添加节气、节日等。_农历库c语言

FL Studio21.1.1.3750中文破解百度网盘下载地址含Crack补丁_fl studio 21 注册机-程序员宅基地

文章浏览阅读1w次,点赞28次,收藏27次。FL Studio21.1.1.3750中文破解版是最优秀、最繁荣的数字音频工作站 (DAW) 之一,日新月异。它是一款录音机和编辑器,可让您不惜一切代价制作精美的音乐作品并保存精彩的活动画廊。为方便用户,FL Studio 21提供三种不同的版本——Fruity 版、Producer 版和签名版。所有这些版本都是独一无二的,同样具有竞争力。用户可以根据自己的需要选择其中任何一种。FL Studio21.1.1.3750中文版可以说是一站式综合音乐制作单位,可以让您录制、作曲、混音和编辑音乐。_fl studio 21 注册机

冯.诺伊曼体系结构的计算机工作原理是,冯 诺依曼型计算机的工作原理是什么...-程序员宅基地

文章浏览阅读1.3k次。冯诺依曼计算机工作原理冯 诺依曼计算机工作原理的核心是 和 程序控制世界上不同型号的计算机,就其工作原理而言,一般都是认为冯 诺依曼提出了什么原理冯 诺依曼原理中,计算机硬件系统由那五大部分组成的 急急急急急急急急急急急急急急急急急急急急急急冯诺依曼结构计算机工作原理的核心冯诺依曼结构和现代计算机结构模型 转载重学计算机组成原理 一 冯 诺依曼体系结构从冯.诺依曼的存储程序工作原理及计算机的组成来..._简述冯诺依曼计算机结构及工作原理

四国军棋引擎开发(2)简单的事件驱动模型下棋-程序员宅基地

文章浏览阅读559次。这次在随机乱下的基础上加上了一些简单的处理,如进营、炸棋、吃子等功能,在和敌方棋子产生碰撞之后会获取敌方棋子大小的一些信息,目前采用的是事件驱动模型,当下完一步棋界面返回结果后会判断是否触发了相关事件,有事件发生则处理相关事件,没有事件发生则仍然是随机下棋。1.事件驱动模型首先定义一个各种事件的枚举变量,目前的事件有工兵吃子,摸暗棋,进营,明确吃子,炸棋。定义如下:enum MoveE..._军棋引擎

STL与泛型编程-第一周笔记-Geekband-程序员宅基地

文章浏览阅读85次。1, 模板观念与函数模板简单模板: template< typename T > T Function( T a, T b) {… }类模板: template struct Object{……….}; 函数模板 template< class T> inline T Function( T a, T b){……} 不可以使用不同型别的..._geekband 讲义

vb.net正则表达式html,VB.Net常用的正则表达式(实例)-程序员宅基地

文章浏览阅读158次。"^\d+$"  //非负整数(正整数 + 0)"^[0-9]*[1-9][0-9]*$"  //正整数"^((-\d+)|(0+))$"  //非正整数(负整数 + 0)"^-[0-9]*[1-9][0-9]*$"  //负整数"^-?\d+$"    //整数"^\d+(\.\d+)?$"  //非负浮点数(正浮点数 + 0)"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0..._vb.net 正则表达式 取html中的herf