Linux 配置MySQL环境(三)

冉升6个月前行业资讯218

一、下载

1. 官网下载MySQL

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

进入官网之后点击 DOWNLOADS

1.png进入页面 ( 在这里我们选择社区版) ,点击 MySQL Community (GPL) Downloads »

2.png

这里选择 Download Archives

3.png

进入页面,选择 MySQL Community Server

4.png

进入页面,选择 MySQL Community Server

5.png

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

202411211732154597778146.png

2. 百度网盘快速下载MySQL

以下我也提供了 MySQL 的安装包供大家使用:
链接:MySQL 8 Linux 百度网盘下载
提取码:1ef8

二、安装

1、通过 Xftp 将 MySQL 安装包拷贝到 Linux

cd 到 local 文件夹

cd  /usr/local

创建mysql文件夹

mkdir mysql


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

(PS : 本文中,我就是使用FinalShell把文件拖入到mysql文件夹中的

7.png

ls查看

8.png

2、解压缩

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

# 在当前目录下(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

PS: 为什么命令没有加’z',写成‘tar -zxvf’ ; 是因为这个文件不是gz压缩包。

解压后如图:

9.png

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

10.png

3、安装 common、libs、client、server

删除自带的 mariadb
先查看系统有没有mariadb。 (PS:如果自带的没有删除直接安装,后面安装common、libs、client、server可能会报错)

rpm -qa | grep mariadb

11.png

输入如下指令删除

rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps

输入如下安装命令行,安装common、libs、client、server

rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm  --nodeps --force

rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh  mysql-community-devel-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh  mysql-community-server-8.0.26-1.el7.x86_64.rpm --nodeps --force

22.png

PS注意: 如果有冲突,命令后面加上这个命令:

--nodeps 表示不检查依赖关系,即忽略依赖关系进行升级。
--force 表示强制进行升级,即强制覆盖原有软件包。
例如:
rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm --nodeps --force

4、初步连接

输入如下代码, 初始化MySQL。注意是mysqld

mysqld --initialize

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

33.png

  1. 授权防火墙
    按顺序输入如下指令

1.目录授权
chown mysql:mysql /var/lib/mysql -R; 

2.启动mysql服务
systemctl start mysqld.service;

3.设置MySQL服务在系统重启后自动启动
systemctl enable mysqld;

44.png

6、查看数据库的初始化密码
输入指令

# 获取MySQL临时密码 (本次我使用的这个)
grep 'temporary password' /var/log/mysqld.log    
或者
cat /var/log/mysqld.log | grep password

55.png

7、登录数据库
输入指令

mysql -uroot -p

然后再复制上面的密码

66.png注意:写了密码后密码是不显示的,不要以为自己没有写入

三、卸载

卸载 MySQL 前需要先停止 MySQL

停止命令:

systemctl stop mysqld

停止 MySQL 之后查询 MySQL 的安装文件:

rpm -qa | grep -i mysql

77.png

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

rpm -e mysql-community-client-5.7.27-1.el7.x86_64 --nodeps
rpm -e mysql-community-client-plugins-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-libs-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-devel-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-server-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-common-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-libs-compat-8.0.32-1.el7.x86_64 --nodeps
rpm -e mysql-community-client-8.0.32-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 WITH mysql_native_password BY 'root';

88.png

这里可能会提示 Your password does not satisfy the current policy requirements,意思是您的密码不符合当前规定的要求,你要么就把你的密码设置得复杂点,要么就去降低密码的校验规则。

在 Linux 上安装 MySQL 时会自动安装一个校验密码的插件,默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。修改密码时新密码是否符合当前的策略,不满足则会提示ERROR

官网上能查到这个密码校验的规则,文档中搜索:validate_password

99.png

所以可以将这个限制密码位数设小一点,复杂度类型调底一点

# 将密码复杂度校验调整简单类型
(当validate_password.policy为0时,表示不进行密码复杂度校验,任何长度的密码都可以通过校验。)
set global validate_password.policy = 0;

# 设置密码最少位数限制为 4 位
set global validate_password.length = 4;

25.png

PS:注意虽然更改了默认的密码校验难度和长度 (比如默认为8位,改成了4位。难度改成0) ,但是在第一次重新设置密码时候,

可能仍然出现错误:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,此时必须第一次设置密码长度为8位才不报错,更改密码成功后才能查看validate_password插件的以下参数,当然,validate_password插件必须已经安装,MySQL5.7是默认安装的。


参考:MySQL 8 密码校验设置调整说明

26.png

简单的密码设置成功

27.png

查看MySQL数据库中与密码验证相关的变量 【☆☆☆

SHOW VARIABLES LIKE 'validate_password%';

28.png

五、使用新密码登录

退出mysql , 输入exit;命令

exit;

输入指令重新登陆

mysql -uroot -proot

29.png

六、开启远程访问

默认的 root 用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个新的账户,用于远程访问
PS: 新的用户名,你们可以根据自己的想法命名,不一定要和我一样还是命名‘root’

语法格式:CREATE USER <用户名> [ IDENTIFIED ] BY [ PASSWORD ] <口令>

# mysql 8.0 以下
create user 'root'@'%' IDENTIFIED BY '2023root';
# mysql 8.0
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '2023root';

按顺序执行如下代码

# 1.创建新的用户 用来远程访问
create user 'root'@'%' identified with mysql_native_password by '2023root';

# 2.授权root用户所有的权限( '并且加上 with grant option ,表示该用户可以授予权限给其他用户 ')
grant all privileges on *.* to 'root'@'%' with grant option; 

(或者输入这个命令, 也是授权所有权限,不过不可给其他用户授权:grant all on *.* to 'root'@'%';)

# 3.使修改的设置生效(并且不需要重启MySQL服务)
flush privileges;

以上3个命令的步骤图如下:

PS: mysql8.0 的默认密码验证不再是 password 。所以在创建用户时,create user ‘username’@‘%’ identified by ‘password’; 客户端是无法连接服务的,所以在创建用户的时候需要加上 WITH mysql_native_password

01.png

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

设置生效

02.png

七、开放 3306 端口

先输入 exit; 退出mysql,然后按顺序输入如下代码 【☆☆☆

# 1.用于将 TCP 端口 3306 添加到防火墙的公共区域(public zone),
# 以便允许外部流量访问 MySQL 数据库。--permanent 选项表示修改将永久生效,即使系统重新启动。

firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 2.用于重启防火墙服务,以便使之前的修改立即生效。
systemctl restart firewalld.service

# 3.用于重新加载防火墙配置文件,以便使之前的修改立即生效。它与重启防火墙服务的效果相同,但是不会停止或重新启动防火墙服务。
firewall-cmd --reload

03.png

八、MySQL 安装默认使用美国的时区,北京时间比美国晚 8 小时

先输入mysql -uroot -p 登录数据库,

mysql -uroot -p

再执行如下代码

set global time_zone='+8:00';


本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!  

云掣基于多年在运维领域的丰富时间经验,编写了《云运维服务白皮书》,欢迎大家互相交流学习:

《云运维服务白皮书》下载地址:https://fs80.cn/v2kbbq

想了解更多大数据运维托管服务、数据库运维托管服务、应用系统运维托管服务的的客户,欢迎点击云掣官网沟通咨询:https://yunche.pro/?t=shequ

相关文章

【JavaEE初阶】网络编程TCP协议实现回显服务器以及如何处理多个客户端的响应

【JavaEE初阶】网络编程TCP协议实现回显服务器以及如何处理多个客户端的响应

1.TCP相关API 和前一期的UDP基本是大差不差的,但是这里提供的方法来模拟对于网卡的操作是有一定的区别的,所示API如下:ServerSocket是Socket类对应到网卡给服务器使用...

Docker-OSX安装与配置完全指南:在Docker中运行接近原生的macOS环境

Docker-OSX安装与配置完全指南:在Docker中运行接近原生的macOS环境

Docker-OSX安装与配置完全指南:在Docker中运行接近原生的macOS环境Docker-OSXsickcodes/Docker-OSX: Docker-OSX 项目尝试通过 Docker 容...

MyBatisPlus从零到一:快速入门与核心功能详解(4)

MyBatisPlus从零到一:快速入门与核心功能详解(4)

三、扩展功能3.1 代码生成插件:在使用MybatisPlus以后,基础的Mapper、Service、PO代码相对固定,重复编写也比较麻烦。因此MybatisPlus官方提供了代码生成器根据数据库表...

运维监控体系总结

总结归纳运维工作中的监控内容。监控目标:明白监控的重要性以及使用监控要实现的业务目标通常包括以下三点:对目标系统进行实时监控监控可以实时反馈目标系统的当前状态 目标系统硬件、软件、业务是否正常、目前处...

云端之上的边缘:解读云计算与边缘计算的战略融合

云端之上的边缘:解读云计算与边缘计算的战略融合

一、引言在当前的信息化和数字化浪潮中,云计算和边缘计算作为两种重要的计算模型,各自在不同的场景中发挥着不可替代的作用。它们不仅在概念、特点、应用场景上有所不同,而且在实际应用中常常相互协作,形成了一种...

MyBatisPlus从零到一:快速入门与核心功能详解(5)

MyBatisPlus从零到一:快速入门与核心功能详解(5)

3.4 通用枚举:MybatisPlus 提供了一个处理枚举的类型转换器,可以帮我们把枚举类型与数据库类型自动转换。3.4.1 创建枚举对象并添加 @EnumValue 注解要让MybatisPlus...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。