Ubuntu20.04下安装MySQL8环境

Ubuntu20.04下安装MySQL8环境

    • 1.下载MySQL客户端和服务器
    • 2.配置MySQL
    • 3.测试MySQL
    • 4.设置MySQL服务开机自启动
    • 5.修改root密码
    • MySQL数据库基本使用
      • 启动MySQL数据库服务
      • 重启MySQL数据库服务
      • 停止MySQL数据库服务
      • 查看MySQL运行状态
      • 设置MySQL服务开机自启动
      • 停止MySQL服务开机自启动
      • MySQL的配置文件
      • 修改MySQL密码认证方式
      • 退出MySQL命令行

Ubuntu默认插件不支持Mysql5,apt中自带Mysql8,我们可以用过apt-get命令快捷下载

1.下载MySQL客户端和服务器

sudo apt-get update
sudo apt-get install mysql-server
sudo apt-get install mysql-client

2.配置MySQL

sudo  mysql_secure_installation

运行MySQL初始化安全脚本,mysql_secure_installation脚本设置的东西:更改root密码、移除MySQL的匿名用户、禁止root远程登录、删除test数据库和重新加载权限。除了询问是否要更改root密码时,看情况是否需要更改,其余的问题都可以按Y,然后ENTER接受所有后续问题的默认值。使用上面的这些选项可以提高MySQL的安全。

3.测试MySQL

systemctl status mysql.service
# 或
sudo service mysql status

在这里插入图片描述

4.设置MySQL服务开机自启动

sudo service mysql enable
# 或
sudo systemctl enable mysql.service

5.修改root密码

  1. 使用sudo命令免密码进入MySQL
sudo mysql

某些博客推荐使用修改配置文件--skip-grant-tables,跳过密码认证登录MySQL,但我这里使用这种方法修改密码时会报错显示处于--skip-grant-tables模式下无法修改密码

  1. 尝试修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';	
# 123456为新密码,如果配置MySQL时选择了允许远程登录,将localhost改为%

由于MySQL8密码安全策略的升级,此时大概率修改失败,可能报错为
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

  1. 修改MySQL8默认密码安全策略

(1)查看数据库用户及其主机信息

mysql> SELECT user,host FROM mysql.user

在这里插入图片描述

(2)查看密码策略配置

mysql> SHOW VARIABLES LIKE 'validate_password%';

在这里插入图片描述

解释如下:
validate_password.changed_characters_percentage:允许密码中的更改字符的百分比。设置为 0,表示不要求密码包含已更改的字符。
validate_password.check_user_name:检查密码是否包含用户名称。设置为 ON,表示要检查密码中是否包含用户名称。
validate_password.dictionary_file:密码字典文件的路径。为空,表示没有指定密码字典文件。
validate_password.length:密码的最小长度。设置为 6,表示密码必须至少包含 6 个字符。
validate_password.mixed_case_count:密码中要求包含的大写字母数量。设置为 1,表示密码必须包含至少 1 个大写字母。
validate_password.number_count:密码中要求包含的数字数量。设置为 1,表示密码必须包含至少 1 个数字。
validate_password.policy:密码策略的级别。设置为 LOW,表示密码策略较宽松。MySQL 提供四个级别的密码策略:LOW、MEDIUM、STRONG 和 STRONGER,它们分别代表不同的密码要求,对应设置0、1、2、3。
validate_password.special_char_count:密码中要求包含的特殊字符数量。在你的配置中,它设置为 1,表示密码必须包含至少 1 个特殊字符。

# 根据实际需要进行修改,如要设置密码长度为6,只包含数字,则进行如下设置
# 格式:SET GLOBAL key = value
mysql> SET GLOBAL validate_password.length = 6;	# 最小长度6
mysql> SET GLOBAL validate_password.mixed_case_count = 0;	# 可以不包含大写字母
mysql> SET GLOBAL validate_password.special_char_count = 0;	# 可以不包含特殊字符
mysql> flush privileges;

根据需要修改完成后,可以重新执行SHOW VARIABLES LIKE 'validate_password%';查看是否修改成功

(3)修改认证方式

mysql> select host,user,plugin from user;
# root默认为auth_socket,修改为mysql_native_password
mysql> update user set plugin='mysql_native_password' where user='root';
# 立即生效
mysql> flush privileges;

(4)修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';	
# 123456为新密码,如果配置MySQL时选择了允许远程登录,将localhost改为%
# 查看3(1)执行结果
mysql> flush privileges;

(5)重启数据库

sudo service mysql restart

MySQL数据库基本使用

启动MySQL数据库服务

sudo service mysql start
# 或
sudo systemctl start mysql.service

重启MySQL数据库服务

sudo service mysql restart
# 或
sudo systemctl restart mysql.service

停止MySQL数据库服务

sudo service mysql stop
# 或
sudo systemctl stop mysql.service

查看MySQL运行状态

sudo service mysql status
# 或
sudo systemctl status mysql.service

设置MySQL服务开机自启动

sudo service mysql enable
# 或
sudo systemctl enable mysql.service

停止MySQL服务开机自启动

sudo service mysql disable
# 或
sudo systemctl disable mysql.service

MySQL的配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改MySQL密码认证方式

# auth_socket、caching_sha2_password、mysql_native_password
mysql> update user set plugin='auth_socket' where user='root';
mysql> flush privileges;

退出MySQL命令行

mysql> quit

参考博客
https://blog.csdn.net/hwx865/article/details/90287715

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

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

相关文章

[Linux]线程池

[Linux]线程池 文章目录 [Linux]线程池线程池的概念线程池的优点线程池的应用场景线程池的实现 线程池的概念 线程池是一种线程使用模式。线程池是一种特殊的生产消费模型,用户作为生产者,线程池作为消费者和缓冲区。 线程过多会带来调度开销&#xff0c…

在docker中创建EMQX 加数据卷

1、从虚拟容器中复制出来文件 docker run --rm emqx/emqx:5.3.0 sh -c cd /opt/emqx && tar -c etc | tar -C $PWD -x 2、将这三个文件夹分别赋予最高权限,也可以777可以755 chmod -R 777 data chmod -R 777 etc chmod -R 777 log 3、创建容器代码 docke…

加解密原理(HCIA)

一、加密技术 1、加密的两个核心组件 2、加密技术作用: 二、加解密技术原理 1、对称加密 2、非对称加密 (1)思考问题? 1)、有了非对称加密为什么还用对称加密? 2)、如何传递秘钥呢&…

服务器动态/静态/住宅/原生IP都是什么意思

​  在互联网的世界中,我们经常会听到关于IP地址的各种说法,比如服务器动态IP、静态IP、住宅IP和原生IP。那么这些术语究竟代表着什么意思呢?让我们一起来了解一下。 动态IP 动态IP(Dynamic IP)是指互联网服务提供商(ISP)在每次用户上网时&#xff0c…

Redis中的数据类型以及适用场景

1.Redis中的数据类型 Redis中的数据类型包括:String(字符串)、Hash(字典)、List(列表)、Set(集合)、Sorted Set【Zset】(有序集合)。 Redis 所有的数据结构都是一个key对应一个value,不同类型的数据结构之间的差异就在于value的…

【微信小程序开发】学习小程序的网络请求和数据处理

前言 网络请求是微信小程序中获取数据和与服务器交互的重要方式。微信小程序提供了自己的API来处理网络请求,使得开发者可以轻松地在微信小程序中实现数据的获取和提交。本文将介绍微信小程序中的网络请求,包括使用wx.request发起GET和POST请求&#xf…

jenkins实践篇(1)——基于分支的自动发布

问题背景 想起初来公司时,我们还是在发布机上直接执行发布脚本来运行和部署服务,并且正式环境和测试环境的脚本都在一起,直接手动操作脚本时存在比较大的风险就是将环境部署错误,并且当时脚本部署逻辑还没有检测机制,…

JVM面试知识点整理

文章目录 (一) JVM组成JVM组成部分和运行流程从图中可以看出 JVM 的主要组成部分运行流程:程序计数器Java堆虚拟机栈方法区堆栈的区别是什么? (二) 类加载器双亲委派模型类装载的执行过程 (三) 垃圾回收对象什么时候可以被垃圾回收哪些可以作为根对象 垃…

【QT】Qt控件不显示图标

问题描述 本人在跟着B站视频学习QT时,遇到了一件十分悲惨的事情,一模一样的步骤,我的图标却不能显示。 于是我上网查询一下解决方案,第一种,亲测没用;第二种亲测可以。 解决方法一 1、构建 -> 清理项目…

ArcGIS Maps SDK for JS:隐藏地图边框

文章目录 1 问题描述2 解决方案 1 问题描述 近期,将ArcGIS Api for JS v4.16更新到了ArcGIS Maps SDK for JS v4.27,原本去除地图的css代码失效了。 v4.26及以前版本 ,需要用.esri-view-surface--inset-outline:focus::after 控制边框属性。…

假如我有一台服务器,我会让它提供三种服务

一、提供照片上传、存储和下载服务 随着移动互联网时代的持续快速发展,PC互联网日益势微,各大互联网门户网站的博客、空间也跟着凋零, 作为博客、空间的标配功能的相册也随之被关闭。 2019年3月6日网易相册发布停运公告并于当年5月8日正式停…

基于RK3568高性价比全国产EMS储能解决方案(二)设计方案

目录 版 本 修 订 记 录 1. 产品介绍 1.1. 什么是XM3568-EP 1.2. 产品特点 1.3. 外壳尺寸 1.4. 外壳外观 1.5. 规格参数 2. 设备使用介绍 2.1. 下载需要使用到的驱动和调试工具 2.2. 启动网关 2.3. DEBUG串口的使用方法 2.4. LED指示灯说明 3. Linux系…

0029Java程序设计-家政服务平台管理系统

文章目录 摘要目录系统设计开发环境 摘要 本文首先研究并介绍国内外目前的背景和现状,在此基础上给出论文的主要研究内容,其次,对家政服务平台管理系统的需求进行了分析。再次,对家政服务平台管理系统进行了总体设计,…

【java学习—九】模板方法(TemplateMethod)设计模式(4)

文章目录 1. 在java中什么是模板2. 模板方法设计解决了什么问题?3. 代码化理解 1. 在java中什么是模板 抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留…

Jest和Mocha对比:两者之间有哪些区别?

什么是单元测试? 所谓单元测试,是对软件中单个功能组件进行测试的一种软件测试方式,其目的是确保代码中的每一个基本单元都能正常运行。因此,开发人员在应用程序开发的整个过程(即代码编写过程)中都需要进行…

单例模式及其使用场景

单例模式(Singleton):指在一个系统中某个类只存在一个实例,类中自行实例化,实例向该系统提供统一的访问接口。 单例模式有两种表现形式,饿汉式:类加载时,就进行实例化;懒…

【目标检测】Visdrone数据集和CARPK数据集预处理

之前的博文【目标检测】YOLOv5跑通VisDrone数据集对Visdrone数据集简介过,这里不作复述,本文主要对Visdrone数据集和CARPK数据集进行目标提取和过滤。 需求描述 本文需要将Visdrone数据集中有关车和人的数据集进行提取和合并,车标记为类别0&…

在 Windows 用 Chrome System Settings 设置代理

在 Windows 用 Chrome System Settings 设置代理 贴心提示:在设置代理之前,请确保您已经安装了 浏览器。 🔧 设置代理的详细步骤如下: 打开 浏览器,输入 //settings/system 并回车。 在「系统和网络设置」页面中&am…

vue源码分析(四)——vue 挂载($mount)的详细过程

文章目录 前言一、使用RuntimeCompiler解析$mount的原因二、$mount 解析的详细过程1.解析挂载的#app执行了vm.$mount2. 通过$mount方法执行以下文件的mount方法3. 执行util工具文件夹中的query方法4. 执行query方法后返回$mount方法判断el是否是body5. 判断!options.render&…