Linux配置MySQL环境(三)

news2025/1/20 13:24:45

Linux配置MySQL环境

  • 一、下载
    • 1. 官网下载MySQL
    • 2. 百度网盘快速下载MySQL
  • 二、安装
    • 1、通过 Xftp 将 MySQL 安装包拷贝到 Linux
    • 2、解压缩
    • 3、安装 common、libs、client、server
    • 4、初步连接
  • 三、卸载
  • 四、常用设置
    • 1. 修改 root 用户密码
  • 五、使用新密码登录
  • 六、开启远程访问
  • 七、开放 3306 端口
  • 八、MySQL 安装默认使用美国的时区,北京时间比美国晚 8 小时

一、下载

1. 官网下载MySQL

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

进入官网之后点击 DOWNLOADS

在这里插入图片描述

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

在这里插入图片描述

这里选择 Download 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 下载。

在这里插入图片描述


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文件夹中的

在这里插入图片描述
ls查看

在这里插入图片描述

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压缩包。

解压后如图:

在这里插入图片描述

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

在这里插入图片描述

3、安装 common、libs、client、server

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

rpm -qa | grep mariadb

在这里插入图片描述

输入如下指令删除

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

如下图所示:

在这里插入图片描述

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 这个文件中查找该密码

在这里插入图片描述

  1. 授权防火墙
    按顺序输入如下指令
1.目录授权
chown mysql:mysql /var/lib/mysql -R; 

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

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

在这里插入图片描述

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

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

在这里插入图片描述

7、登录数据库
输入指令

mysql -uroot -p

然后再复制上面的密码

在这里插入图片描述

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



三、卸载

卸载 MySQL 前需要先停止 MySQL

停止命令:

systemctl stop mysqld

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

rpm -qa | grep -i mysql

在这里插入图片描述

卸载上述查询出来的所有的 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';

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

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

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

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

在这里插入图片描述

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 密码校验设置调整说明

在这里插入图片描述

简单的密码设置成功

在这里插入图片描述

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

SHOW VARIABLES LIKE 'validate_password%';

在这里插入图片描述


五、使用新密码登录

退出mysql , 输入exit;命令

exit;

输入指令重新登陆

mysql -uroot -proot

在这里插入图片描述

六、开启远程访问

默认的 root 用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个新的账户,用于远程访问

语法格式: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;

步骤图如下:

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

在这里插入图片描述

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

在这里插入图片描述

设置生效

在这里插入图片描述

七、开放 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

在这里插入图片描述

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

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

mysql -uroot -p

再执行如下代码


set global time_zone='+8:00';

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

购物车按钮

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>购物车按钮展示</title><link href"https://fonts.googleapis.com/css?familyInter:400…

002Mybatis初始化引入

引入依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId> </dependency> 自动检测工程中的DataSource创建并注册SqlSessionFactory实例创建并注册SqlSessionTemplate实例自…

chatgpt赋能python:Python中如何输入一个列表?

Python中如何输入一个列表&#xff1f; 如果你正在使用Python编程语言&#xff0c;那么输入一个列表是很常见的任务。列表是Python中最常用的数据类型之一&#xff0c;它允许我们在一个变量中存储多个值。在这篇文章中&#xff0c;我们将介绍如何使用Python语言输入一个列表&a…

chatgpt赋能python:Python中的16进制输出:从基础到应用

Python中的16进制输出&#xff1a;从基础到应用 在计算机编程中&#xff0c;16进制是一种非常重要的数字系统。对于Python工程师来说&#xff0c;熟练地掌握16进制输出技能非常重要&#xff0c;因为它能够帮助你更好地理解和分析二进制数据。 在本篇文章中&#xff0c;我们将…

JavaSE-03 【流程控制语句】

第一章 流程控制 1.1 流程概述 在一个程序执行的过程中&#xff0c;每条语句的执行顺序对程序的结果是由直接影响的&#xff0c; 也就是&#xff0c;语句的流程对运行结果有着直接的影响&#xff0c;所以&#xff0c;必须清楚知道每条语句的执行流程&#xff0c; 并且&#x…

Gossip分布式通信协议副本管理器说明

Gossip中副本管理器 副本管理器状态 不考虑应用时一个副本管理器应该有的状态&#xff1a; 值&#xff0c;这是由副本管理器维护的应用状态的值&#xff0c;每个副本管理器是一个状态机。起始于一个特定的初始值。此后的状态完全由更新操作决定。值的时间戳&#xff1a;代表更…

chatgpt赋能python:Python的包管理器-pip

Python的包管理器 - pip 什么是pip? pip是Python中的一个包管理工具&#xff0c;它可以用来安装、升级以及管理Python语言中的第三方模块。 如何安装pip 在Python 2.7.9和Python 3.4中&#xff0c;pip已经随着Python自带安装了。 如果你的Python没有安装pip&#xff0c;可…

JavaSSM笔记(四)

MySQL高级 在JavaWeb阶段&#xff0c;我们初步认识了MySQL数据库&#xff0c;包括一些基本操作&#xff0c;比如创建数据库、表、触发器&#xff0c;以及最基本的增删改查、事务等操作。而在此阶段&#xff0c;我们将继续深入学习MySQL&#xff0c;了解它的更多高级玩法&#…

JavaSSM笔记(三)

SpringSecurity 本章我们会一边讲解SpringSecurity框架&#xff0c;一边从头开始编写图书管理系统。 SpringSecurity是一个基于Spring开发的非常强大的权限验证框架&#xff0c;其核心功能包括&#xff1a; 认证 &#xff08;用户登录&#xff09;授权 &#xff08;此用户能…

【From Audio to Talking Heads in Real-Time with AI! RAD-NeRF explained】

视频链接&#xff1a;RAD-NeRF https://me.kiui.moe/radnerf/videos/obama_intro.mp4 From Audio to Talking Heads in Real-Time with AI! RAD-NeRF explained Efficient NeRFs for Real-Time Portrait Synthesis (RAD-NeRF) We’ve heard of deepfakes, we’ve heard of N…

Nacos架构与原理 - 配置模型

文章目录 背景概念介绍配置(Configuration)配置管理 (Configuration Management)配置服务 (Configuration Service)配置项&#xff08;Configuration Item&#xff09;配置集&#xff08;Configuration Set&#xff09;命名空间&#xff08;Namespace&#xff09;配置组&#x…

chatgpt赋能python:Python中如何实现print不换行

Python中如何实现print不换行 在编写Python程序时&#xff0c;我们经常需要使用print语句来输出信息。然而&#xff0c;有时候我们希望在输出信息时不换行&#xff0c;而是将多个输出信息打印在同一行上。这里介绍几种Python中print不换行的方式。 方法一&#xff1a;使用逗号…

Redis7分布式缓存

Redis7分布式缓存 一、Redis入门概述1.主流功能与应用2.命名规则 二、Redis 10 大数据类型1.redis字符串 (String)2. redis列表 (List)3. redis哈希表 (Hash)4. redis集合 (Set)5. redis有序集合 (ZSet)6. redis地理空间(GEO)7. redis基数统计 (HyperLogLog)8. redis位图 (bitm…

wavemlp怎么运行的

1.首先&#xff0c;输入进来的x是batchsize&#xff0c;64&#xff0c;256&#xff0c;256尺寸的。 他会用四个不同的conv组合&#xff0c;theta组合是由二维卷积&#xff08;batchnorm和relu的&#xff09;&#xff0c;得到两个值。 而&#xff0c;x_h和x_w都是通过一个简单…

JavaSE笔记(四)重制版

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eFLuY3vJ-1685927553034)(https://s2.loli.net/2022/09/22/lmKBNFc5wPEgjaS.png)] 面向对象高级篇 经过前面的学习&#xff0c;我们已经了解了面向对象编程的大部分基础内容&#xff0c;这一部分&…

一种新颖的智能优化算法—海鸥优化(SOA)算法

目录 一、SOA理论基础 二、ACO数学模型 2.1 迁徙 2.2 攻击 三、SOA伪代码 四、SOA运行结果 海鸥优化算法(Seagull Optimization Algorithm, SOA)是在2019年由 Dhiman 提出的一种受自然界海鸥启发的新颖全局优化算法&#xff0c;模拟了海鸥群体的迁徙和攻击行为。 一、SOA…

chatgpt赋能python:Python中如何实现1到100的循环?

Python中如何实现1到100的循环&#xff1f; 在Python中&#xff0c;实现1到100的循环非常简单。我们可以通过for循环、while循环和列表生成式来实现这个任务。 1. 使用for循环实现1到100的循环 使用for循环可以让我们轻松地遍历从1到100的整数。这种方法很适合在循环中需要进…

chatgpt赋能python:Python中的UTF-8

Python中的UTF-8 什么是UTF-8&#xff1f; 在开始介绍Python中的UTF-8&#xff0c;让我们先了解什么是UTF-8。UTF-8是一种Unicode字符集的编码方法&#xff0c;可以表示全球范围内的字符集&#xff0c;包括机器语言和人类语言。 Python和UTF-8 Python是一种高级编程语言&am…

工作基础知识

fpga 什么是fpga FPGA 是一种硬件可重构的体系结构。它的英文全称是Field Programmable Gate Array&#xff0c;中文名是现场可编程门阵列。 FPGA就是一个可以通过编程来改变内部结构的芯片。 FPGA 是在硅片上预先设计实现的具有可编程特性的集成电路&#xff0c;它能够按照…

完全卸载mysql教程

引言 很多人因为第一次安装mysql导致安装错误&#xff0c;或者安装的数据库版本太高&#xff0c;比如mysql8.0版本&#xff0c;出现了很多问题&#xff0c;导致数据库无法使用&#xff0c;或者一些图形界面无法操作&#xff0c;想要卸载&#xff0c;重装稳定的mysql数据库&…