Linux-安装MySQL(手动教程)

Linux-安装MySQL(手动教程)

前言

本文的主要内容是在Linux上安装MySQL。

一、概述

MySQL是一种关系型数据库管理系统,所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择MySQL作为网站数据库。

  • 社区版:免费,但是不提供任何技术支持。
  • 商业版:收费,可以试用30天,官方提供技术支持。

二、下载

官网:https://www.mysql.com/

在这里插入图片描述

进入官网之后点击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 下载。

在这里插入图片描述

三、安装

连上Linux服务器(这里的服务器我用的是阿里云),我先创建一个mysql的文件夹来存放安装包。

mkdir /soft/mysql
# 进入这个新建的文件夹下
cd /soft/mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s2nXzqVx-1681045259935)(C:\Users\13548\AppData\Roaming\Typora\typora-user-images\image-20230409195449763.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RHlY2tZq-1681045259935)(C:\Users\13548\AppData\Roaming\Typora\typora-user-images\image-20230409201400486.png)]

在该目录下再创建一个文件夹,并且将安装包解压到该文件夹中

mkdir /soft/mysql/mysql-8.0.31
#解压安装包到该目录下
tar -xvf mysql.tar -c mysql-8.0.31

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6j2qtxGQ-1681045259936)(C:\Users\13548\AppData\Roaming\Typora\typora-user-images\image-20230409202635493.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hjvi1HFb-1681045259937)(C:\Users\13548\AppData\Roaming\Typora\typora-user-images\image-20230409202842846.png)]

可以看到解压后的文件都是rpm文件,所以需要用到rpm包资源管理器相关的指令安装这些rpm的安装包

在安装执行rpm安装包之前先下载openssl-devel插件,因为mysql里面有些rpm的安装依赖于该插件。

yum install openssl-devel

安装完成插件之后,依赖执行以下命令安装这些rpm包

rpm -ivh mysql-community-client-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-common-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-debuginfo-8.0.31-1.el7.x86_64.rpm

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

rpm -ivh mysql-community-embedded-compat-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-debug-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-test-8.0.31-1.el7.x86_64.rpm

注意:安装 rpm 包时提示 依赖检测失败,请详见文件末尾 可能遇到的问题 寻求解决方案。

在 Linux 中 MySQL 安装好了之后系统会自动的注册一个服务,服务名称叫做 mysqld,所以可以通过以下命令操作 MySQL:

启动 MySQL 服务:systemctl start mysqld

重启 MySQL 服务:systemctl restart mysqld

关闭 MySQL 服务:systemctl stop mysqld

这里先启动 MySQL 服务

systemctl start mysqld

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qdq5cSVn-1681045259938)(C:\Users\13548\AppData\Roaming\Typora\typora-user-images\image-20230409205620454.png)]

卸载上述查询出来的所有mysql安装包

rpm -e mysql-community-common-8.0.31-1.el7.x86_64

rpm -e mysql-community-client-plugins-8.0.31-1.el7.x86_64

rpm -e mysql-community-debuginfo-8.0.31-1.el7.x86_64

rpm -e mysql-community-icu-data-files-8.0.31-1.el7.x86_64

删除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’;
1

这里可能会提示 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;
1
2
3
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’;
1
2
3
4
PS: mysql8.0 的默认密码验证不再是 password 。所以在创建用户时,create user ‘username’@‘%’ identified by ‘password’; 客户端是无法连接服务的,所以在创建用户的时候需要加上 WITH mysql_native_password

创建完用户之后还需要给用户分配权限,这里我将 mike 这个用户分配了所有的权限

grant all on . to ‘mike’@‘%’;
1
如果你想权限分配得更细一点可参考博客:mysql给用户分配权限

六、可能遇到的问题
(1)启动 MySQL 时提示 Failed to start mysqld.service: Unit not found.

如果看到这个提示的话说明 mysql 安装失败了,我的建议是卸载重新安装。

(2)安装 rpm 包时提示 依赖检测失败

解决办法:卸载mariadb-libs

rpm -e mariadb-libs --nodeps
1

再重新安装失败的那个 rpm 包

(3)远程连接时出错

这个错误提示出现的可能有很多,我就列举几个我能想到的吧

首先去检查你的 MySQL 是否关掉了,如果关了的话重启再连接
服务器上面的防火墙是否是开着的状态,或者 3306 的端口是否对外开放
如果你的服务器是云服务器的话,需要去云服务器上面开放 3306 的端口
第一种情况我就不赘述了,如果你的 MySQL 是安装在虚拟机上面的话,简单粗暴的方式是直接关闭防火墙

关闭防火墙

systemctl stop firewalld.service

查看防火墙的状态

firewall-cmd --state

禁止firewall开机启动

systemctl disable firewalld.service
1
2
3
4
5
6
或者为了安全,只开放特定的端口号,MySQL 默认端口是 3306

关闭防火墙

systemctl stop firewalld.service

3306 端口对外开放

firewall-cmd --remove-port=3306/tcp --permanent

重启防火墙

firewall-cmd --reload
1
2
3
4
5
6
但是,如果你 MySQL 并不是安装在虚拟机上的,而是放到云服务器上面,那你必须还得在云服务上面开放这几个端口

比方说我的 MySQL 是运行在 某某云 上面的,我就得做如下设置:

找到我的服务器,点击 更多,选择 管理

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

添加 3306 端口对外开放

测试连接

参考博客:
CentOS7系统安装MySQL指导手册
MySQL如何创建用户
MySQL创建用户(CREATE USER)
MySQL 8.0 配置mysql_native_password身份验证插件的密码
eload
1
2
3
4
5
6
但是,如果你 MySQL 并不是安装在虚拟机上的,而是放到云服务器上面,那你必须还得在云服务上面开放这几个端口

比方说我的 MySQL 是运行在 某某云 上面的,我就得做如下设置:

找到我的服务器,点击 更多,选择 管理

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

添加 3306 端口对外开放

测试连接

参考博客:
CentOS7系统安装MySQL指导手册
MySQL如何创建用户
MySQL创建用户(CREATE USER)
MySQL 8.0 配置mysql_native_password身份验证插件的密码
mysql给用户分配权限

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

意点源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值