MySQL8.0在windows下的下载安装及详细使用

下载mysql8.0二进制包

下载地址:MySQL :: Download MySQL Community Server

编辑my.ini配置文件

解压二进制包,新建/编辑my.ini配置文件(如果不存在则新建)

[client]    #客户端设置,即客户端默认的连接参数
# 设置mysql客户端连接服务端时默认使用的端口
port=3306#默认编码
default-character-set = utf8mb4[mysql]    #客户端设置
#MySQL 提示符配置
#用户名@主机名+mysql版本号+数据库名
prompt=\\u@\\h \\v [\\d]>\\_# 设置mysql客户端默认字符集
default-character-set = utf8mb4[mysqld]    #服务端基本设置
# 默认连接端口
port=3306# MySQL安装根目录的路径
basedir=D:\Server\mysql-8.0\mysql-8.0.38-winx64# MySQL服务器数据目录的路径
datadir=D:\Server\mysql-8.0\mysql-8.0.38-winx64\data# 允许最大连接数
max_connections=200# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10#服务端默认编码
character_set_server = utf8mb4#在创建新表时将使用的默认存储引擎
default-storage-engine=INNODB# 配置时区
default-time_zone='+8:00'

安装使用服务 

安装并配置MySQL

1、以管理员身份运行命令提示符,下转到mysql的bin目录下

安装MySQL服务并指定配置文件:

 ./mysqld.exe --install "MySQL" --defaults-file="D:\Server\mysql-8.0\mysql-8.0.38-winx64\my.ini"

 注:此命令后面的my.ini配置文件的路径要与你的路径一致

2、初始化MySQL

mysqld --initialize --console

在这里,初始化会生成data文件夹并产生一个随机密码,记住这个密码,后面登录验证的时候会用到

注:如果不小心关闭窗口,忘记初始化生成的密码,可以删除初始化生成的data文件夹,重新初始化即可。

3、开启MySQL的服务

net start mysql

 登录验证

mysql -uroot -p

1、修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

2、验证配置文件是否生效

\s

3、退出MySQL

\q

 附完整步骤 

 #1.安装MySQL服务并指定配置文件
./mysqld.exe --install "MySQL" --defaults-file="D:\Server\mysql-8.0\mysql-8.0.38-winx64\my.ini"#2.初始化mysql,这步会产生随机root密码,需暂时记住,下面命令行登录用./mysqld.exe --initialize --console#3.启动mysql服务
net start mysql#4.命令行登录
./mysql.exe -uroot -p#5.改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yangxxx';#6.查看配置
\s#7.退出mysql命令行
\q#8.root登录
./mysql.exe -uroot -hlocalhost -pyangxxx#9.添加新用户CREATE USER 'yang'@'localhost' IDENTIFIED BY 'yangxxx';#10.给新用户赋予权限:GRANT ALL PRIVILEGES ON *.* TO 'yang'@'localhost';#11.执行以下命令,使改变立即生效FLUSH PRIVILEGES;完

创建新用户 

在MySQL中,创建新用户并赋予权限可以通过以下步骤完成:

1、创建新用户

使用 CREATE USER 语句来创建新用户。如:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

这条语句创建了一个名为 newuser 的用户,该用户只能从 localhost 连接,并且密码是 password

2、赋予权限

使用 GRANT 语句来赋予用户权限。例如:

GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';

这条语句赋予 newuser 用户对 database_name 数据库的所有权限。

3、刷新权限

 使用 FLUSH PRIVILEGES 语句来刷新权限,使更改立即生效。例如:

FLUSH PRIVILEGES;

以下是一个完整的示例:

-- 创建新用户
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';-- 赋予权限
GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';-- 刷新权限
FLUSH PRIVILEGES;

详细说明:

  • CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

    • 'newuser'@'localhost':用户名和主机名。主机名可以是 localhost%(表示任何主机)或其他特定主机。
    • IDENTIFIED BY 'password':设置用户的密码。
  • GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';

    • ALL PRIVILEGES:赋予所有权限。
    • ON database_name.*:指定数据库和表。* 表示所有表。
    • TO 'newuser'@'localhost':指定用户和主机。
  • FLUSH PRIVILEGES;

    • 刷新权限表,使更改立即生效。

通过这些步骤,在MySQL中创建新用户并赋予相应的权限。

其他创建方式:MySQL数据库——MySQL创建用户(3种方式)_数据库_Itmastergo-GitCode 开源社区

QT中使用MySQL

 参见博文:Qt中使用MySQL数据库详解,好用的模块类封装_mysql连接包加入到qt指定的包里,然后添加为库怎么操作-CSDN博客

MySQL忘记密码解决办法

1、关闭MySQL服务

以管理员模式打开命令运行行,运行 net stop mysql 即可

net stop mysql

2、下转到MySQL的bin目录下,跳过MySQL密码验证

mysqld --console --skip-grant-tables --shared-memory 

注:如果已配置MySQL环境变量,可以在任意路径下进行,不必转到bin目录下

3、无密码方式进入MySQL

注意:在进行第三步时重开一个cmd窗口,第二步执行的cmd窗口不要关

mysql -uroot -p 

提示输入密码,不用管,直接回车确认即可

4、将登陆密码设置为空

use mysql; 
update user set authentication_string='' where user='root';

退出MySQL:

\q

5、关闭第二步的cmd窗口

6、启动MySQL服务

net start mysql

7、无密码方式登录MySQL

mysql -uroot -p

提示输入密码,不用管,直接回车确认即可

8、修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

9、退出MySQL

\q

10、重新登录验证密码是否修改成功

一行命令登录MySQL:

mysql -uroot -hlocalhost -p123456

mysql8.0登录失败问题

创建用户时,如果是这样创建的:
create user '用户名'@'连接的IP' identified by '密码';例如:
create user  'testuser1'@'127.0.0.1' identified by 'root123';

MySQL 8.0+版本 创建新用户登录失败,报错:

C:\Windows\System32>mysql -u testuser1 -p
Enter password: *******
ERROR 2061 (HY000): Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.

原因分析

MySQL8.0默认指定使用需要SSL的身份验证插件caching_sha2_password,而我们在创建账号时候没有指定REQUIRE SSL。为了降低这件事情的复杂性,我们选择了绕过SSL插件的验证,改为mysql_native_password验证来登陆即可。

解决方案

既然是新建的账户,那先登录root账户,可以直接删掉上面新创建的账户,然后新创建一个账户,指定验证密码方式:

mysql8建议用以下语句:
create user '用户名'@'连接的IP' identified with mysql_native_password by '密码';例如:
create user 'testuser4'@'%' identified with mysql_native_password by 'root123';

再给新账户授予权限:

grant 权限 on 数据库名.表 to '用户名'@'连接的IP'例如:
grant all privileges on db_sqllearn.* to 'testuser4'@'%';

如何关闭8.0的ssl连接? 

 注意:

  • MySQL 5.7中,默认的身份验证插件还是为 mysql_native_password。
  • 在MySQL 8.0中,caching_sha2_password是默认的身份验证插件,而不是 mysql_native_password。

配置信息更改:

vim /etc/my.cnf#新增,禁用ssl
skip_ssldefault_authentication_plugin = mysql_native_password

Mysql命令:

mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
#
#mysql>ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY '123456';

经过以上操作后,可以 

MySQL查看ssl配置以生效及相关信息:

show global variables like '%ssl%';

MySQL查看ssl证书的有效时间:

SHOW STATUS LIKE 'Ssl_server_not%';

其他资源

【MySql】MySQL 如何创建新用户_mysql创建新用户-CSDN博客

Windows 安装MySQL 8.0 (非常详细)从零基础入门到精通,看完这一篇就够了_windows安装mysql8-CSDN博客

MySQL数据库——MySQL创建用户(3种方式)_数据库_Itmastergo-GitCode 开源社区 

MySQL 8.0 安装部署3个注意事项_mysql8.0+为什么ssl-CSDN博客

正确解决Authentication plugin ‘caching _sha2_password’ cannot be loaded:异常的有效解决方法_authentication plugin 'caching sha2 password' cann-CSDN博客

https://zhuanlan.zhihu.com/p/663365242 

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

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

相关文章

Canvas:掌握颜色线条与图像文字设置

想象一下,用几行代码就能创造出如此逼真的图像和动画,仿佛将艺术与科技完美融合,前端开发的Canvas技术正是这个数字化时代中最具魔力的一环,它不仅仅是网页的一部分,更是一个无限创意的画布,一个让你的想象…

回溯 | Java | LeetCode 39, 40, 131 做题总结

Java Arrays.sort(数组) //排序 不讲究顺序的解答,都可以考虑一下排序是否可行。 39. 组合总和 错误解答 在写的时候需要注意,sum - candidates[i];很重要,也是回溯的一部分。 解答重复了。是因为回溯的for循环理解错了。 class Solutio…

使用OpenCV与PySide(PyQt)的视觉检测小项目练习

OpenCV 提供了丰富的图像处理和计算机视觉功能,可以实现各种复杂的图像处理任务,如目标检测、人脸识别、图像分割等。 PyQt(或PySide)是一个创建GUI应用程序的工具包,它是Python编程语言和Qt库的成功融合。Qt库是最强大的GUI库之一。Qt的快速…

【开放集目标检测】Grounding DINO

一、引言 论文: Grounding DINO: Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection 作者: IDEA 代码: Grounding DINO 注意: 该算法是在Swin Transformer、Deformable DETR、DINO基础上…

逆变器学习笔记(三)

DCDC电源芯片外围器件选型_dcdc的comp补偿-CSDN博客、 1.芯片的COMP引脚通常用于补偿网络: 芯片的COMP引脚通常用于补偿网络,在控制环路中发挥重要作用。COMP引脚接电容和电阻串联接地,主要是为了稳定控制环路、调整环路响应速度和滤波噪声…

java Lock接口

在 Java 中,Lock 接口的实现类ReentrantLock 类提供了比使用 synchronized 方法和代码块更广泛的锁定机制。 简单示例: import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock;public class ReentrantLockExampl…

关闭vue3中脑瘫的ESLine

在创建vue3的时候脑子一抽选了ESLine,然后这傻卵子ESLine老是给我报错 博主用的idea开发前端 ,纯粹是用不惯vscode 关闭idea中的ESLine,这个只是取消红色波浪线, 界面中的显示 第二步,在vue.config.js中添加 lintOnSave: false 到这里就ok了,其他的我试过了一点用没有

阿里云 OSS - 开通到使用、服务端签名直传(前后端代码 + 效果演示)

目录 开始 OSS 相关术语须知 阿里云 OSS 开通 阿里云 OSS 使用 官方文档教程 实战开发 阿里云 OSS 自动配置 环境配置 实战开发 服务端签名直传 概述 代码实现 开始 OSS 相关术语须知 中文 英文 说明 存储空间 Bucket 存储空间是您用于存储对象(Ob…

DB-GPT-PaperReading

DB-GPT: Empowering Database Interactions with Private Large Language Models 1. 基本介绍 DB-GPT 旨在理解自然语言查询,提供上下文感知响应,并生成高精度的复杂 SQL 查询,使其成为从新手到专家的用户不可或缺的工具。DB-GPT 的核心创新在于其私有 LLM 技术,该技术在…

FL Studio 2024 发布,添加 FL Cloud 插件、AI 等功能

作为今年最受期待的音乐制作 DAW 更新之一,FL Studio 2024发布引入了新功能,同时采用了新的命名方式,从现在起将把发布年份纳入其名称中。DAW 的新增功能包括在 FL Cloud 中添加插件、AI 驱动的音乐创作工具和 FL Studio 的新效果。 FL Cloud…

ThinkPHP定时任务是怎样实现的?

接到一个需求:定时检查设备信息,2分钟没有心跳的机器,推送消息给相关人员,用thinkphp5框架,利用框架自带的任务功能与crontab配合来完成定时任务。 第一步:分析需求 先写获取设备信息,2分钟之…

力扣双指针算法题目:快乐数

目录 1.题目 2.思路解析 3.代码展示 1.题目 . - 力扣(LeetCode) 2.思路解析 题目意思是将一个正整数上面的每一位拿出来,然后分别求平方,最后将这些数字的平方求和得到一个数字,如此循环,如果在此循环中…

【做一道算一道】和为 K 的子数组

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2 示例 2: 输入:nums [1,2,3],…

前端面试题8

基础知识 解释一下什么是跨域问题,以及如何解决? 跨域问题是由于浏览器的同源策略限制了从一个源加载的网页脚本访问另一个源的数据。解决方法包括使用JSONP、CORS(跨源资源共享)、设置代理服务器等。 描述一下事件冒泡和事件捕获…

Flutter-实现悬浮分组列表

在本篇博客中,我们将介绍如何使用 Flutter 实现一个带有分组列表的应用程序。我们将通过 CustomScrollView 和 Sliver 组件来实现该功能。 需求 我们需要实现一个分组列表,分组包含固定的标题和若干个列表项。具体分组如下: 水果动物职业菜…

BigDecimal(double)和BigDecimal(String)有什么区别?BigDecimal如何精确计数?

BigDecimal(double)和BigDecimal(String)的区别 double是不精确的,所以使用一个不精确的数字来创建BigDecimal,得到的数字也是不精确的。如0.1这个数字,double只能表示他的近似值。所以,当我们使用new BigDecimal(0.1)创建一个Bi…

golang验证Etherscan上的智能合约

文章目录 golang验证Etherscan上的智能合约为什么要验证智能合约如何使用golang去验证合约获取EtherscanAPI密钥Verify Source Code接口Check Source Code Verification Status接口演示示例及注意事项网络问题无法调用Etherscan接口(最重要的步骤) golan…

归并排序的实现(递归与非递归)

概念 基本思想:归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使…

揭秘Conda:Python开发者必备的包管理神器

conda 简介 Conda 是一个开源的包管理系统和环境管理系统,用于安装和管理软件包以及创建和维护不同的软件环境。 它最初是为 Python 语言设计的,但现在已经支持多种编程语言,包括 R、Ruby、Lua、Scala 等。 1、Anaconda:是一个…

GPIO配置-PIN_Speed的理解

在使用STM32的GPIO 口配置时,经常会疑惑应该选用什么样的配置模式,本文谈谈对pin_speed的理解。 根据数据手册可得,STM32提供10MHz,2MHz和50MHz三种输出速度的配置,三种配置的应用场景是怎么样的?。 1.为什么要配置引…