Linux部署MySQL5.7和8.0版本 | CentOS和Ubuntu系统详细步骤安装

一、MySQL数据库管理系统安装部署【简单】

简介

MySQL数据库管理系统(后续简称MySQL),是一款知名的数据库系统,其特点是:轻量、简单、功能丰富。

MySQL数据库可谓是软件行业的明星产品,无论是后端开发、大数据、AI、运维、测试等各类岗位,基本上都会和MySQL打交道。

让我们从MySQL开始,进行实战的Linux软件安装部署。

本次课程分为2个版本进行安装:
    ① MySQL 5.7版本安装
    ② MySQL 8.x版本安装

由于MySQL5.x和8.x各自有许多使用者,所以这两个版本我们都演示安装一遍

注意

MySQL的安装过程中,除了会使用Linux命令外,还会使用到少量的数据库专用的:SQL语句

对于SQL语句我们并未涉及,所以可以跟随教程的内容,复制粘贴即可

1、MySQL5.7版本在CentOS系统安装

注意:安装操作需要root权限

MySQL的安装我们可以通过前面学习的yum命令进行。

安装

① 配置yum仓库

# 更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

# 安装Mysql yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm

由于MySQL并不在CentOS的官方仓库中,所以我们通过上述rpm命令:

  • 导入MySQL仓库的密钥

  • 配置MySQLQ的yum仓库

② 使用yum安装MySQL

# yum安装Mysql
yum -y install mysql-community-server

③ 安装完成后,启动MySQL并配置开机自启动

systemctl start mysqld		# 启动
systemctl enable mysqld		# 开机自启

MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理

④ 检查MySQL的运行状态

systemctl status mysqld

配置

主要配置管理员用户root的密码以及配置允许远程登录的权限。

① 获取MySQL的初始密码
 

# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
grep 'temporary password' /var/log/mysqld.log

② 登陆MySQL数据库系统

# 执行
mysql -uroot -p
# 解释
# -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
# -p,表示使用密码登陆

# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库

③ 修改root用户密码

# 在MySQL控制台内执行
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc

④ [扩展] 配置root的简单密码

我们可以给root设置简单密码,如123456.

请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

# 如果你想设置简单密码,需要降低Mysql的密码安全级别
set global validate_password_policy=LOW; # 密码安全级别低
set global validate_password_length=4;	 # 密码长度最低4位即可

# 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样)
ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码';

⑤ [扩展] 配置root运行远程登录

默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

请注意,允许root远程登录会带来安全风险

# 授权root远程登录
grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option;  
# IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址
# 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同

# 刷新权限,生效
flush privileges;

⑥ 退出MySQL控制台页面

# 退出命令
exit

# 或者通过快捷键退出:ctrl + d

⑦ 检查端口

MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

netstat -anp | grep 3306

至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。

2、MySQL8.0版本在CentOS系统安装

注意:安装操作需要root权限

安装

① 配置yum仓库

# 更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

# 安装Mysql8.x版本 yum库
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

② 使用yum安装MySQL

# yum安装Mysql
yum -y install mysql-community-server

③ 安装完成后,启动MySQL并配置开机自启动

systemctl start mysqld		# 启动
systemctl enable mysqld		# 开机自启

MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理

④ 检查MySQL的运行状态

systemctl status mysqld

配置

主要修改root密码和允许root远程登录

① 获取MySQL的初始密码

# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
grep 'temporary password' /var/log/mysqld.log

② 登录MySQL数据库系统

# 执行
mysql -uroot -p
# 解释
# -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
# -p,表示使用密码登陆

# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库

③ 修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc

④ [扩展]配置root的简单密码

我们可以给root设置简单密码,如123456.

请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

set global validate_password.policy=0;		# 密码安全级别低
set global validate_password.length=4;		# 密码长度最低4位即可

⑤ 允许root远程登录,并设置远程登录密码

默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

请注意,允许root远程登录会带来安全风险

# 第一次设置root远程登录,并配置远程密码使用如下SQL命令
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc

# 后续修改密码使用如下SQL命令
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

⑥ 退出MySQL控制台页面

# 退出命令
exit

# 或者通过快捷键退出:ctrl + d

⑦ 检查端口

MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态

netstat -anp | grep 3306

至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。

3、MySQL5.7版本在Ubuntu(WSL环境)系统安装

课程中配置的WSL环境是最新的Ubuntu22.04版本,这个版本的软件商店内置的MySQL是8.0版本

所以我们需要额外的步骤才可以安装5.7版本的MySQL

安装操作需root权限,你可以:
1.通过 sudo su -,切换到root用户
     课程中选择这种方式操作

2.或在每一个命令前,加上sudo,用来临时提升权限

安装

① 下载apt仓库文件

# 下载apt仓库的安装包,Ubuntu的安装包是.deb文件
wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb

② 配置apt仓库

# 使用dpkg命令安装仓库
dpkg -i mysql-apt-config_0.8.12-1_all.deb

弹出框中选择:ubuntu bionic (Ubuntu18.04系统的代号是bionic,选择18.04的版本库用来安装)

弹出框中选择: MySQL Server  & Cluster

 弹出框中选择:mysql-5.7

最后选择:ok

 ③ 更新apt仓库的信息

# 首先导入仓库的密钥信息
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
# 更新仓库信息
apt update

④ 检查是否成功配置MySQL5.7的仓库

apt-cache policy mysql-server

 ⑤ 安装MySQL5.7

# 使用apt安装mysql客户端和mysql服务端
apt install -f -y mysql-client=5.7* mysql-community-server=5.7*

弹出框中输入root密码并选择ok,密码任意,课程中以123456代替

再次输入root密码确认

 ⑥ 启动MySQL

/etc/init.d/mysql start			# 启动
/etc/init.d/mysql stop			# 停止
/etc/init.d/mysql status		# 查看状态

 

⑦ 对MySQL进行初始化

# 执行如下命令,此命令是MySQL安装后自带的配置程序
mysql_secure_installation
# 可以通过which命令查看到这个自带程序所在的位置
root@DESKTOP-Q89USRE:~# which mysql_secure_installation
/usr/bin/mysql_secure_installation
1、输入密码:

2、是否开启密码验证插件,如果需要增强密码安全性,输入y并回车,不需要直接回车(课程中选择直接回车)

3、是否更改root密码,需要输入y回车,不需要直接回车(课程不更改)

 4、是否移除匿名用户,移除输入y回车,不移除直接回车(课程选择移除)
 5、是否进制root用户远程登录,禁止输入y回车,不禁止直接回车(课程选择不禁止)
6、是否移除自带的测试数据库,移除输入y回车,不移除直接回车(课程选择不移除)  

 7、是否刷新权限,刷新输入y回车,不刷新直接回车(课程选择刷新)

8、登陆MySQL
mysql -uroot -p
# 输入密码即可登陆成功

至此,在Ubuntu上安装MySQL5.7版本成功。

 4、MySQL8.0版本在Ubuntu(WSL环境)系统安装

课程中配置的WSL环境是最新的Ubuntu22.04版本,这个版本的软件商店内置的MySQL是8.0版本

所以直接可以通过apt安装即可

注意,课程是以WSL获得的Ubuntu操作系统环境。

如果你通过VMware虚拟机的方式获得了Ubuntu操作系统环境,操作步骤不用担心,和课程中使用WSL环境是完全一致的

安装操作需root权限,你可以:

  1. 通过 sudo su -,切换到root用户

    课程中选择这种方式操作

  2. 或在每一个命令前,加上sudo,用来临时提升权限

安装

① 如果已经安装过MySQL5.7版本,需要卸载仓库信息哦

# 卸载MySQL5.7版本
apt remove -y mysql-client=5.7* mysql-community-server=5.7*

# 卸载5.7的仓库信息
dpkg -l | grep mysql | awk '{print $2}' | xargs dpkg -P

② 更新apt仓库信息

apt update

③ 安装mysql

apt install -y mysql-server

④ 启动MySQL

/etc/init.d/mysql start			# 启动
/etc/init.d/mysql stop			# 停止
/etc/init.d/mysql status		# 查看状态

⑤ 登陆MySQL设置密码

# 直接执行:mysql
mysql

⑥ 设置密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

⑦ 退出MySQL控制台

exit

⑧ 对MySQL进行初始化

# 执行如下命令,此命令是MySQL安装后自带的配置程序
mysql_secure_installation
# 可以通过which命令查看到这个自带程序所在的位置
root@DESKTOP-Q89USRE:~# which mysql_secure_installation
/usr/bin/mysql_secure_installation
1、输入密码:

 2、是否开启密码验证插件,如果需要增强密码安全性,输入y并回车,不需要直接回车(课程中选择直接回车)

 3、是否更改root密码,需要输入y回车,不需要直接回车(课程不更改)

4、是否移除匿名用户,移除输入y回车,不移除直接回车(课程选择移除)

 5、是否进制root用户远程登录,禁止输入y回车,不禁止直接回车(课程选择不禁止)

 6、是否移除自带的测试数据库,移除输入y回车,不移除直接回车(课程选择不移除)

 7、是否刷新权限,刷新输入y回车,不刷新直接回车(课程选择刷新)

 8、重新登陆MySQL(用更改后的密码)
mysql -uroot -p

至此,在Ubuntu上安装MySQL5.7版本成功。  

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis——02,redis-benchmark 性能测试

redis-benchmark 性能测试 一、benchmark 性能测试。二、参数详解: 一、benchmark 性能测试。 在bin目录下,有一个redis-benchmark 工具,是用来测试性能的。 二、参数详解: http://doc.yaojieyun.com/www.runoob.com/redis/re…

VMP泄露编译的一些注意事项

VMP编译教程 鉴于VMP已经在GitHub上被大佬强制开源,特此出一期编译教程。各位熟悉的可以略过,不熟悉的可以参考一下。 环境(软件) Visual Studio 2015 - 2022 (建议使用VS2019,Qt插件只有这个版本及以上…

Python等比例缩放图片并修改对应的Labelme标注文件(v2.0)

Python等比例缩放图片并修改对应的Labelme标注文件(v2.0) 前言前提条件相关介绍实验环境Python等比例缩放图片并修改对应的Labelme标注文件Json文件代码实现输出结果 前言 此版代码,相较于Python等比例缩放图片并修改对应的Labelme标注文件&a…

原子学习笔记1——阻塞和非阻塞IO

阻塞式 I/O 顾名思义就是对文件的 I/O 操作(读写操作)是阻塞式的,非阻塞式 I/O 同理就是对文件的I/O 操作是非阻塞的。 当对文件进行读操作时,如果数据未准备好、文件当前无数据可读,那么读操作可能会使调用者阻塞&…

编程实际应用实例:洗车店会员管理系统操作教程

一、前言 洗车店在会员管理有时候需要一卡多用,基本也不需要做卡,直接报手机号或车牌号即可完成电子会员卡录入。 下面以 佳易王洗车店会员管理系统软件为例说明, 软件试用版下载或技术支持可以点击下方的官网卡片 如图:这个卡…

[HCTF 2018]WarmUp (代码审计)

打开题目: 好好好。 看看源码: ? source.php 让我看看! 发现还有个文件叫hint,php 看看: 得到目的文件是ffffllllaaaagggg 分析代码: $_REQUEST 变量 $_REQUEST用于收集HTML表单提交的数据&#x…

迅为RK3568开发板使用OpenCV处理图像-ROI区域-位置提取ROI

在图像处理过程中,我们可能会对图像的某一个特定区域感兴趣,该区域被称为感兴趣区域(Region of Interest, ROI)。在设定感兴趣区域 ROI 后,就可以对该区域进行整体操作。 位置提取 ROI 本小节代码在配套资料“iTOP-3…

RocketMQ系统性学习-RocketMQ领域模型及Linux下单机安装

MQ 之间的对比 三种常用的 MQ 对比,ActiveMQ、Kafka、RocketMQ 性能方面: 三种 MQ 吞吐量级别为:万,百万,十万消息发送时延:毫秒,毫秒,微秒可用性:主从,分…

【深度学习】机器学习概述(一)机器学习三要素——模型、学习准则、优化算法

​ 文章目录 一、基本概念二、机器学习的三要素1. 模型a. 线性模型b. 非线性模型 2. 学习准则a. 损失函数1. 0-1损失函数2. 平方损失函数(回归问题)3. 交叉熵损失函数(Cross-Entropy Loss)4. Hinge 损失函数 b. 风险最小化准则1.…

MQTT 介绍与学习 —— 筑梦之路

之前写过的相关文章: MQTT协议(转载)——筑梦之路_mqtt url-CSDN博客 k8s 部署mqtt —— 筑梦之路-CSDN博客 CentOS 7 搭建mqtt服务——筑梦之路_腾讯云宝塔搭 centos 7.9.2009 x86_64 建标准mqtt服务器-CSDN博客 mqtt简介 MQTT&#xff…

tcp/ip协议2实现的插图,数据结构5 (22 - 章)

(103) 103 二二1 协议控制块 结构 file, socket , rawcb , inpcb , tcpcb 之间的联系 (104) (105)

Python:如何将MCD12Q1\MOD11A2\MOD13A2原始数据集批量输出为TIFF文件(镶嵌/重投影/)?

博客已同步微信公众号:GIS茄子;若博客出现纰漏或有更多问题交流欢迎关注GIS茄子,或者邮箱联系(推荐-见主页). 00 前言 之前一段时间一直使用ENVI IDL处理遥感数据,但是确实对于一些比较新鲜的东西IDL并没有python那么好的及时性&…

【Linux】使用官方脚本自动安装 Docker(Ubuntu 22.04)

前言 Docker是一种开源平台,用于开发、交付和运行应用程序。它利用了容器化技术,使开发人员能够将应用程序及其依赖项打包到一个称为Docker容器的可移植容器中。这些容器可以在任何运行Docker的机器上快速、一致地运行,无论是开发环境、测试…

微服务架构之争:Quarkus VS Spring Boot

在容器时代(“Docker时代”),无论如何,Java仍然活着。Java在性能方面一直很有名,主要是因为代码和真实机器之间的抽象层,多平台的成本(一次编写,随处运行——还记得吗?&a…

Ubuntu虚拟机怎么设置静态IP

1 首先先ifconfig看一下使用的是哪个网络接口: 2 编辑 sudo vi /etc/netplan/00-installer-config.yamlnetwork:ethernets:ens33: # 根据您的网络接口进行修改,有的是eth0,有的是ens33,具体看第一步显示的是哪个网络接口addres…

【css】css实现文字两端对齐效果:

文章目录 一、方法1:二、方法2:三、注意: 一、方法1: 给元素设置 text-align: justify;text-align-last: justify;并且加上text-justify: distribute-all-line; 目的是兼容ie浏览器 p{width: 130px;text-align: justify;text-alig…

教育数字化转型 赋能家庭场景自主学习习惯养成

北京市气象台12月12日22时升级发布暴雪橙色预警信号,北京市教委决定自12月13日开始,全市中小学幼儿园采取学生临时居家学习措施。自疫情以来,家庭已经成为另一个学习中心,学校不再是教育的孤岛。 学习方式的变革,数字…

【️什么是分布式系统的一致性 ?】

😊引言 🎖️本篇博文约8000字,阅读大约30分钟,亲爱的读者,如果本博文对您有帮助,欢迎点赞关注!😊😊😊 🖥️什么是分布式系统的一致性 &#xff1f…

【C++】POCO学习总结(十七):日志系统(级别、通道、格式化、记录流)

【C】郭老二博文之:C目录 1、Poco::Message 日志消息 1.1 说明 所有日志消息都在Poco::Message对象中存储和传输。 头文件:#include “Poco/Message.h” 一条消息包含如下内容:优先级、来源、一个文本、一个时间戳、进程和线程标识符、可选…

MacOS下载配置OpenCV

主要参考的是OpenCV官方的这篇文章:OpenCV: Installation in MacOS 安装OpenCV需要下载一些安装包:CMake3.9、Git、Python这些我之前已经下载好,这里就不过多阐述了,自行百度安装即可 1.从Git库获取OpenCV: git clon…