MySQL下载安装使用教程图文教程(超详细)

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。

这一章节我们使用CentOS7安装MySQL8.4社区版。Windows可以参考我的另一篇文章: Windows下载安装MySQL8.28社区版

MySQL

1、下载

1)MySQL官网 https://dev.mysql.com/downloads/mysql/ 下载安装包。

系统选择 Red Hat Enterprise Linux 企业版Linux,版本选Linux 7 x86 64。

uname -a 可以查看你的系统是x86的还是ARM的,一般都是x86。

下载第一个 RPM Bundle,这个是完整的包,包含了下面所有的rpm安装包。

2)不登陆注册,直接下载。

3)下载完传到Linux上,我这里用的MobaXterm。

2、解压

1)解压 tar -xvf mysql-8.4.0-1.el7.x86_64.rpm-bundle.tar

解压完是12个rpm安装包,跟下载界面里剩下的12个包是一 一对应的。其实这里我们只用6个包就行了,为了方便,就直接下个全量包传过来了。

3、卸载mariadb

CentOS内部集成了mariadb,MariaDB是MySQL的一个分支,诞生的目的是解决甲骨文公司收购MySQL后可能出现的闭源风险。这就相当于系统已经装过一个MySQL了,你再装肯定会有冲突,所以要先卸载。

shell 复制代码
rpm -e --nodeps mariadb-libs

4、安装perl

Perl是一种脚本语言,MySQL连接数据库、查询和处理数据都是使用Perl实现的,所以安装MySQL必须依赖Perl。

perl -v 如果提示没装,就 yum install perl 安装perl,安装后 perl -v 输出版本,表示安装成功。

5、安装net-tools

net-tools 是一个网络命令工具箱,里面有 arp、dnsdomainname、domainname、hostname、ifconfig、nameif、netstat、nisdomainname、plipconfig、rarp、route、slattach、ypdomainname 命令。2001年停止维护,新版本Linux默认不带,而是用 iproute2 代替。

就这么几个命令,咱也不知道MySQL用上哪个了,反正它依赖,咱就给他装上。

netstat --version 如果提示没装,就 yum install net-tools 安装,netstat --version 输出版本,就表示安装成功。

6、安装MySQL

安装包之间有依赖关系,按照以下顺序安装 rpm -ivh mysql-community-xx,否则会报错。

  1. mysql-community-common:MySQL客户端和服务器使用的配置文件、默认选项文件和语言文件等,是安装MySQL客户端和服务器所需的依赖包。
  2. mysql-community-client-plugins:客户端插件。
  3. mysql-community-libs:MySQL客户端的程序库,用来加密和压缩数据、处理MySQL协议和语句,是安装MySQL客户端所需的依赖包。
  4. mysql-community-client:MySQL客户端,用来连接MySQL服务器执行命令。
  5. mysql-community-icu:是安装MySQL服务器所需要的依赖包。
  6. mysql-community-server:MySQL服务端,用来存储数据、接受客户端请求并处理数据,比如创建数据库和表、增删改查等操作。

Warning是警告不用管,没有Error就算成功。

7、初始化

安装完成后,mysqld --initialize --console 初始化MySQL 。

初始化的过程中,会创建系统表、用户和数据目录,生成临时密码。

cat /etc/passwd | grep mysql 可以看到创建了一个mysql用户。

ll /var/lib/ | grep mysql 可以看到创建了MySQL的数据目录。

cat /var/log/mysqld.log 可以看到生成的临时密码。

8、修改权限

ll /var/lib/mysql 可以看到,MySQL目录下的文件权限都是root。按照软件安全设计中最小特权原则,生产环境需要以mysql用户运行MySQL服务,这会因为没有权限而报错。

chown -R mysql:mysql /var/lib/mysql/ 修改mysql目录的属主和属组。

9、启动和关闭MySQL

MySQL的服务名是mysqld,根据服务名启动MySQL服务,systemctl start mysqld

systemctl status mysqld 查看服务状态,running表示启动,dead表示关闭。

或者 ps -ef | grep mysqld 查看进程有没有在执行。

systemctl stop mysqld 停止服务。

systemctl restart mysqld 重启服务。服务运行时会重启服务;服务员停止时会直接启动服务。

10、登录MySQL

cat /var/log/mysqld.log | grep localhost 查看初始化MySQL时生成的临时密码

mysql -u root -p密码 登录MySQL,注意-p和密码之间不要有空格,否则会报错 Unknown database。

11、修改密码

登录进去先修改密码 alter user 'root'@'localhost' identified by '1234567';

quit 退出MySQL后,用新密码登录。

接下来就可以使用了,MySQL的命令和使用方式可以参考我的另一篇文章 MySQL数据库入门教程

相关推荐
阿里云天池1 分钟前
小白学深度学习:知识蒸馏研究综述
人工智能·深度学习
百锦再4 分钟前
在数字化时代,如何提升软件服务的稳定性与应急响应能力
运维·服务器·数据库
QuanHaHQuan23 分钟前
OpenCV下的无标定校正(stereoRectifyUncalibrated)
人工智能·python·opencv·计算机视觉
GIS工具-gistools202135 分钟前
PostgreSQL + PostGIS:空间数据存储及管理解决方案
数据库·postgresql
xp_fangfei1 小时前
MySQL第10讲--约束的介绍
数据库·mysql
闫铁娃1 小时前
连接池的设计与实现-0基础Go语言版
java·服务器·网络·数据库·后端·微服务·golang
喵叔哟2 小时前
【轻松学EntityFramework Core】--数据迁移
数据库
shall_zhao2 小时前
黑马点评2——商户查询缓存(P37店铺类型查询业务添加缓存练习题答案)redis缓存、更新、穿透、雪崩、击穿、工具封装
数据库·redis·缓存
一水鉴天2 小时前
“智能化自动化” 架构之2:从插件plugin和钩子hook 到“智能化自动化”架构
开发语言·人工智能·自动化
图灵追慕者2 小时前
paddlepaddle 和torch 还有yolov8三种框架兼容性
人工智能·yolo·paddlepaddle·兼容性