当前位置:网站首页>Linux-安装MySQL(详细教程)
Linux-安装MySQL(详细教程)
2022-07-30 00:19:00 【小前端而已】
Linux-安装MySQL
前言
本文的主要内容是在 Linux 上安装 MySQL,以下内容是源于 B站 - MySQL数据库入门到精通 整理而来。
一、概述
MySQL是一种关系型数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
- 社区版:免费,但是不提供任何技术支持
- 商业版:收费,可以试用30天,官方提供技术支持
二、下载

进入官网之后点击 DOWNLOADS

进入页面

这里选择 Downloads Archives

进入页面,选择 MySQL Community Server

根据你服务器的配置选择,我服务器是 CentOS 7 所以 Operating System 选择 Red Hat Enterprise Linux / Oracle Linux ,OS Version 选择 Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86,64-bit),选择第一个点击 Download 下载。

----------------------------------------------------
以下我也提供了 MySQL 的安装包供大家使用:
网址:百度网盘
提取码:vf2q
----------------------------------------------------
三、安装
连上 Linux 服务器(这里的服务器我用的是云服务器),我先创建一个 mysql 的文件夹来存放安装包。
# 在 /soft 目录下创建一个空的文件夹 mysql
mkdir /soft/mysql
# 进入这个新建的文件夹下
cd /soft/mysql

然后上传之前下载好的 Linux 下 MySQL 的安装包,使用 rz 命令(有些终端工具是可以直接上传文件的,比如 FinalShell)


在该目录下再创建一个文件夹,并且将安装包解压到该文件夹中
# 在当前目录下(mysql)下创建一个 mysql-8.0.26 文件夹
mkdir mysql-8.0.26
# 解压安装包到该目录下
tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql-8.0.26

解压完成之后可以切换到 mysql-8.0.26 目录下查看解压后的文件

可以看到解压后的文件都是 rpm 文件,所以需要用到 rpm 包资源管理器相关的指令安装这些 rpm 的安装包
在安装执行 rpm 安装包之前先下载 openssl-devel 插件,因为 mysql 里面有些 rpm 的安装依赖于该插件。
yum install openssl-devel

安装完该插件之后,依次执行以下命令安装这些 rpm 包
rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm

注意:安装 rpm 包时提示 依赖检测失败,请详见文件末尾 可能遇到的问题 寻求解决方案。
在 Linux 中 MySQL 安装好了之后系统会自动的注册一个服务,服务名称叫做 mysqld,所以可以通过以下命令操作 MySQL:
启动 MySQL 服务:
systemctl start mysqld重启 MySQL 服务:
systemctl restart mysqld关闭 MySQL 服务:
systemctl stop mysqld
这里先启动 MySQL 服务

rpm 安装 MySQL 会自动生成一个随机密码,可在 /var/log/mysqld.log 这个文件中查找该密码
cat /var/log/mysqld.log

A temporay password is generated for root@localhost: ****密码**** ,这里我安装的 MySQL 生成的临时密码是:JAgc=S-:4fGC,账号是 root,有了账号和密码之后就可以连接 MySQL 了。
# 连接 MySQL
mysql -u root -p

到此 Linux 上安装 MySQL 基本结束。
四、卸载
卸载 MySQL 前需要先停止 MySQL
命令:systemctl stop mysqld
停止 MySQL 之后查询 MySQL 的安装文件:rpm -qa | grep -i mysql

卸载上述查询出来的所有的 MySQL 安装包
rpm -e mysql-community-client-plugins-8.0.26-1.el7.x86_64 --nodeps
rpm -e mysql-community-server-8.0.26-1.el7.x86_64 --nodeps
rpm -e mysql-community-common-8.0.26-1.el7.x86_64 --nodeps
rpm -e mysql-community-libs-8.0.26-1.el7.x86_64 --nodeps
rpm -e mysql-community-client-8.0.26-1.el7.x86_64 --nodeps
rpm -e mysql-community-libs-compat-8.0.26-1.el7.x86_64 --nodeps
删除MySQL的数据存放目录
rm -rf /var/lib/mysql/
删除MySQL的配置文件备份
rm -rf /etc/my.cnf.rpmsave
五、常用设置
(1)修改 root 用户密码
如果你觉得 MySQL 自动生成的密码太难记忆的话,可以连接 MySQL 之后进行修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mike.8080';

这里可能会提示 Your password does not satisfy the current policy requirements,意思是您的密码不符合当前规定的要求,你要么就把你的密码设置得复杂点,要么就去降低密码的校验规则。
在 Linux 上安装 MySQL 时会自动安装一个校验密码的插件,默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。修改密码时新密码是否符合当前的策略,不满足则会提示ERROR
官网上能查到这个密码校验的规则,文档中搜索:validate_password



所以可以将这个限制密码位数设小一点,复杂度类型调底一点
# 将密码复杂度校验调整简单类型
set global validate_password.policy = 0;
# 设置密码最少位数限制为 4 位
set global validate_password.length = 4;

就可以设置较为简单的密码了。

(2)创建用户与权限分配
默认的 root 用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个新的账户,用于远程访问
语法格式:CREATE USER <用户名> [ IDENTIFIED ] BY [ PASSWORD ] <口令>
# mysql 8.0 以下
create user 'mike'@'%' IDENTIFIED BY 'mike8080';
# mysql 8.0
create user 'mike'@'%' IDENTIFIED WITH mysql_native_password BY 'mike8080';
PS: mysql8.0 的默认密码验证不再是 password 。所以在创建用户时,create user ‘username’@‘%’ identified by ‘password’; 客户端是无法连接服务的,所以在创建用户的时候需要加上
WITH mysql_native_password

创建完用户之后还需要给用户分配权限,这里我将 mike 这个用户分配了所有的权限
grant all on *.* to 'mike'@'%';
如果你想权限分配得更细一点可参考博客:mysql给用户分配权限
六、可能遇到的问题
(1)启动 MySQL 时提示 Failed to start mysqld.service: Unit not found.

如果看到这个提示的话说明 mysql 安装失败了,我的建议是卸载重新安装。
(2)安装 rpm 包时提示 依赖检测失败

解决办法:卸载mariadb-libs
rpm -e mariadb-libs --nodeps

再重新安装失败的那个 rpm 包
(3)远程连接时出错

这个错误提示出现的可能有很多,我就列举几个我能想到的吧
- 首先去检查你的 MySQL 是否关掉了,如果关了的话重启再连接
- 服务器上面的防火墙是否是开着的状态,或者 3306 的端口是否对外开放
- 如果你的服务器是云服务器的话,需要去云服务器上面开放 3306 的端口
第一种情况我就不赘述了,如果你的 MySQL 是安装在虚拟机上面的话,简单粗暴的方式是直接关闭防火墙
# 关闭防火墙
systemctl stop firewalld.service
# 查看防火墙的状态
firewall-cmd --state
# 禁止firewall开机启动
systemctl disable firewalld.service
或者为了安全,只开放特定的端口号,MySQL 默认端口是 3306
# 关闭防火墙
systemctl stop firewalld.service
# 3306 端口对外开放
firewall-cmd --remove-port=3306/tcp --permanent
# 重启防火墙
firewall-cmd --reload
但是,如果你 MySQL 并不是安装在虚拟机上的,而是放到云服务器上面,那你必须还得在云服务上面开放这几个端口
比方说我的 MySQL 是运行在 某某云 上面的,我就得做如下设置:
找到我的服务器,点击 更多,选择 管理

进入下一个页面之后,选择 防火墙

添加 3306 端口对外开放

测试连接

参考博客:
CentOS7系统安装MySQL指导手册
MySQL如何创建用户
MySQL创建用户(CREATE USER)
MySQL 8.0 配置mysql_native_password身份验证插件的密码
mysql给用户分配权限
边栏推荐
- Graph Theory: Bipartite Graphs
- Expansion of Parallel I/O Port in Single Chip Microcomputer Development
- First Normal Form, Second Normal Form, Third Normal Form
- KDE Frameworks 5.20.0:Plasma迎来诸多改进
- Paper Intensive Reading - YOLOv3: An Incremental Improvement
- 从尾到头打印链表
- 字符串替换空格
- Worthington经过使用测试的细胞分离系统方案
- Chinese semantic matching
- Minesweeper game in c language
猜你喜欢

EA&UML日拱一卒-多任务编程超入门-(7)关于mutex,你必须知道的

First Normal Form, Second Normal Form, Third Normal Form

Worthington经过使用测试的细胞分离系统方案

3 tips for using hot events to create press releases?A must-see for self-media people

opencv基本图像的滤波

Google Chrome (google) is set to translate Chinese, the translation option does not take effect or the translation option does not pop up

The strongest JVM in the whole network is coming!(Extreme Collector's Edition)

Genesis与Axis Ventures互动密切

Worthington酶促细胞收获&细胞粘附和收获

每周推荐短视频:研发效能是什么?它可以实现反“内卷”?
随机推荐
Filebeat如何保证在日志文件被切割(或滚动rolling)时依然正确读取文件
Override and customize dependent native Bean methods
Replace the executable file glibc version of the one
Towhee 每周模型
Go日志库——logrus
图论:二分图
what is a .pro file in qt
Some personal understandings about MySQL indexes (partially refer to MySQL45 lectures)
Print linked list from end to beginning
重建二叉树
Worthington弹性蛋白酶&透明质酸酶简介
Worthington酶促细胞收获&细胞粘附和收获
低压差线性稳压器MPQ2013A-AEC1品牌MPS国产替代
Reading notes. This is the psychology: see through the essence of the pseudo psychology (version 10)"
Worthington dissociating enzyme: detailed analysis of neutral protease (dispase)
某团实习面经
docker安装redis集群(含部署脚本)
【分层强化学习】HAC源码解读
Docker installs redis cluster (including deployment script)
机器人的运动范围