ubuntu20配置mysql8
首先更新软件包索引运行
sudo apt update
命令。然后运行
sudo apt install mysql-server
安装MySQL服务器。
安装完成后,MySQL服务将作为systemd服务自动启动。你可以运行
sudo systemctl status mysql
命令验证MySQL服务器是否正在运行。
连接MySQL
当MySQL安装完成后,你可能会想运行命令
mysql -u root -p
登录到MySQL服务器
如果你登录到Ubuntu的用户不是root用户你将不能访问MySQL服务器。
注意,如果你尝试使用密码登录也将被拒绝连接,MySQL root用户默认是没有密码。
你将会收到类似于这样的消息
(28000): Access denied for user 'root'@'localhost' (using password: YES)
或者
ERROR 1045 (28000): Access denied for user 'root'@'localhost'。
这是因为在MySQL 8.0上,对root用户使用auth_socket插件进行身份验证。auth_socket插件仅对从localhost连接到Unix socket文件用户进行身份验证。
这意味着您无法通过提供密码来以root用户连接到MySQL服务器。但你可以通过命令
sudo mysql
连接到MySQL服务器。
sudo mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql>
总结:可以使用 mysql -u root -p 或者 sudo mysql 在本机登录到mysql,然后执行下一步操作。
修改账号密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
补充:
- mysql 5.7 localhost和%的区别
基础解释
localhost 只能本地登录
% 任何客户机都能登录(不安全,可以在创建用户时指定ip)
注:user@%和user@localhost是两个不同的用户
相关阅读:
Linux下MySQL出现ERROR 1698 (28000): Access denied for user
‘root‘@‘localhost‘和ERROR 1045 (28000)的一些解决方法
先说原因
因为在Ubuntu下用apt装mysql是没有设置密码的环节的
所以一开始就是没有密码,而且密码也不是为空值,直接敲回车也进不去mysql所以我们这个时候可以直接
mysql -u root
直接进入mysql,那么如何设置密码呢?按照以下命令即可:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)
然后重启mysql服务器
然后你再尝试进入mysql会发现,
不用密码已经没办法进入了。
配置远程访问
默认情况下,MySQL服务器仅监听来自本地主机的连接,这意味着它只能由运行在同一主机上的应用程序访问。
但是,在某些情况下,有必要从远程位置访问MySQL服务器。例如,当您想从本地系统连接到远程MySQL服务器时。
或者当使用多服务器部署时,应用程序与数据库服务器不在同一台计算机上运行。
- 一种选择是通过SSH隧道访问MySQL服务器,
- 另一种是将MySQL服务器配置为接受远程连接。
在本教程中,我们将向你展示如何配置MySQL服务器接受远程的连接。包括添加或更改bind-address选项指定监听地址0.0.0.0 ,授权MySQL用户远程访问权限。
配置防火墙iptable,UFW,FirewallD允许连接3306端口。验证MySQL数据库服务器的远程连接。相同的说明适用于MariaDB。
配置MySQL服务器
第一步是设置MySQL服务器监听计算机所有IP地址。如果MySQL服务器和客户端可以通过专用网络相互通信,那么最好的选择是将MySQL服务器设置为仅在指定IP上监听。
如果要通过公共网络连接到MySQL服务器,请将MySQL服务器设置为监听计算机上的所有IP地址。
因此,您需要编辑MySQL配置文件并添加或更改bind-address选项的值。您可以设置一个IP地址和IP范围。
如果地址为0.0.0.0,则MySQL服务器接受所有远程主机IPv4接口上的连接。如果你需要使用IPv6,请使用::代替0.0.0.0。
MySQL配置文件的位置因Linux发行版而异。在Ubuntu和Debian中,文件位于/etc/mysql/mysql.conf.d/mysqld.cnf,而在基于Red Hat的发行版(如CentOS)中,文件位于/etc/my.cnf。
使用你喜欢的文本编辑器打开文件/etc/mysql/mysql.conf.d/mysqld.cnf,在本教程中我们将使用vim打开文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
搜索以bind-address开头的行,并将其值设置为MySQL服务器应监听的IP地址。默认情况下,该值设置为127.0.0.1即仅在本地主机中监听。
在此示例中,我们将值更改为0.0.0.0,将MySQL服务器设置为监听所有IPv4地址。
bind-address = 0.0.0.0
mysqld.cnf
在MySQL 8.0和更高版本中,bind-address指令可能不存在。在这种情况下,
请将
bind-address = 0.0.0.0
其添加到**[mysqld]**下。
完成后,重新启动MySQL服务以使更改生效。在现代的Linux发行版中,MySQL通常使用systemd的服务在后台运行,因此你可以使用systemctl命令重启MySQL服务。
实际举例
找到下面的内容:
然后,修改为:
#bind-address = 127.0.0.1
#mysqlx-bind-address = 127.0.0.1
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
要使配置生效是需要重启mysql服务的,不过,先不用急,因为你还得设置可以远程访问数据库的账号,注意,下面以root能够远程登录访问mysql数据库为目的进行操作。
设置允许从远程计算机访问的账号
下一步是允许远程用户访问数据库。首先以root用户登录到MySQL服务器。运行命令
sudo mysql
或者您使用本地MySQL身份验证插件以root用户身份登录,请运行
mysql -uroot -p
命令并在出现提示时输入密码。
在MySQL Shell中,使用GRANT语句为用户授予远程访问权限。
sudo mysql
mysql -uroot -p
MYSQL5版本具体执行
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
GRANT命令解释
- 其中database_name是用户将连接到的数据库的名称。
- user_name是MySQL用户的名称。
- ip_address是用户本地计算机的IP地址。使用***%***允许用户从任何IP地址进行连接。
- user_password是用户密码。
例如,仅允许IP是10.8.0.5的客户端使用密码my_passwd和用户名为foo访问数据库dbname,请运行以下命令,如需允许所有IP,请使用%代替IP地址。命令如下:
GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
MYSQL8版本具体执行
ps:
上面的是mysql5的,在mysql8下面会报错,解释如下:
MySQL8.x使用GRANT为用户赋权时报错
在 MySQL 5.x 的版本中的操作方式
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
在 MySQL 8.x 中版本中按照以上操作
mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ IDENTIFIED BY
‘123456’ WITH GRANT OPTION; ERROR 1064 (42000): You have an error in
your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near ‘IDENTIFIED BY
‘123456’ WITH GRANT OPTION’ at line 1
原因分析
通过官网文档的指引可以知道,新版本的 MySQL 8.x 版本已经将创建账户和赋权的方式分开导致以上的命令在 MySQL 8.x 上执行报语法错误。
解决方案
# 创建账户
CREATE USER '用户名'@'访问主机' IDENTIFIED BY '密码';
# 或者修改账号
ALTER USER '用户名'@'访问主机' IDENTIFIED BY '密码';
# 为创建的账户赋权
GRANT '权限列表' ON '数据库' TO '用户名'@'访问主机';
# 你想一劳永逸不考虑任何安全性的话,什么都给root就好了:
GRANT ALL ON *.* TO 'root'@'%';
# 刷新
FLUSH PRIVILEGES;
验证更改
要验证远程用户是否可以连接到MySQL服务器,可以运行命令
ps:验证之前请确保已经重启mysql服务器了,配置已经生效了!
root@toowhite-MS-7D48:~# systemctl stop mysql
root@toowhite-MS-7D48:~# systemctl start mysql
使用以上步骤创建的账号来进行登录测试:
mysql -u user_name -h mysql_server_ip -p
譬如:
mysql -u root -h 127.0.0.1 -p
其中user_name是您授予远程访问权限的用户名,mysql_server_ip是运行MySQL服务器的主机的IP地址。如果一切设置正确,您将能够登录到远程MySQL服务器。
如果收到类似以下的错误,则说明端口3306未打开,或者MySQL服务器未监听IP地址。ERROR 2003 (HY000): Can’t connect to MySQL server on ‘10.8.0.5’ (111)"
“ERROR 1130 (HY000): Host ‘10.8.0.5’ is not allowed to connect to this MySQL server”。错误表示您尝试登录的用户无权访问远程MySQL服务器。
相关文章:

ubuntu20配置mysql8
首先更新软件包索引运行 sudo apt update命令。然后运行 sudo apt install mysql-server安装MySQL服务器。 安装完成后,MySQL服务将作为systemd服务自动启动。你可以运行 sudo systemctl status mysql命令验证MySQL服务器是否正在运行。 连接MySQL 当MySQL安装…...

CPU-Cache结构查看
参考【Ubuntu 查看 CPU 缓存】 本文主要介绍cpu的cache查看,以供读者能够理解该技术的定义、原理、应用。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:计算机杂记 🎀CSDN主页 发狂的小花…...

Wireshark网络协议分析 - Wireshark速览
在我的博客阅读本文 文章目录 1. 版本与平台2. 快速上手2.1. 选择网络接口进行捕获(Capture)2.2. 以Ping命令为例进行抓包分析2.3. 设置合适的过滤表达式2.4. 数据包详情2.5. TCP/IP 四层模型 3. 参考资料 1. 版本与平台 Wireshark是一个开源的网络数据…...

查看进程创建的所有线程
ps 在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为的进程创建的所有线程。 ps -T -p <pid>top op命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux…...

汽车软件开发模式的5个特点
汽车软件开发属于较为复杂的系统工程,经常让来自不同知识背景的工程师在观点交锋时出现分歧。在解决复杂性和对齐讨论基准时,可以通过勾勒出讨论对象最关键的几个特征来树立典型概念。本文旨在通过5个典型特点的抽取,来勾勒出汽车软件开发模式…...

双屏联动系统在展厅设计中的互动类型与效果
随着各项多媒体技术的快速发展,让展厅中的各类展项得到技术升级,其中作为电子设备中最基础的显示技术,不仅优化了内容的展示质量,还实现了更具互动性的创新技术,如双屏联动系统就是当前展厅设计中最常见的技术类型之一…...

STM32F407移植OpenHarmony笔记5
继上一篇笔记,搭建好STM32的编译框架,编译出来的OHOS_Image.bin并不能跑不起来。 今天要在bsp里面添加一些代码,让程序能跑起来。 先从裸机点亮LED灯开始,准备以下3个文件:startup和system文件可以用OHOS官方代码。 /device/boar…...

点击其他区域隐藏弹出框效果
一般下拉框或者选择框,持久展示时会给用户显示的隐藏方式,如点击事件后。也可以添加隐式的隐藏方式,如点击弹出框之外的区域。 CSS方法-focus伪类 当触发的元素是可以focus,以输入框为例。 可以将弹出框出现的时机设置在input:…...

Python一些可能用的到的函数系列123 ATimer2-时间偏移
说明 之前确定了时间轴(千年历),以及时间的转换方法。其中时间轴的数据将会存储在集群,以及通过RedisOrMongo保存部分常用的数据。 本次讨论时间偏移的度量问题。 内容 1 两种形式 我们提到时间时,通常会有两种方…...

企业微信主体变更 怎么操作?
企业微信变更主体有什么作用?当我们的企业因为各种原因需要注销或已经注销,或者运营变更等情况,企业微信无法继续使用原主体继续使用时,可以申请企业主体变更,变更为新的主体。企业微信变更主体的条件有哪些࿱…...

《区块链简易速速上手小册》第8章:区块链的技术挑战(2024 最新版)
文章目录 8.1 可扩展性问题8.1.1 基础知识8.1.2 主要案例:比特币的可扩展性挑战8.1.3 拓展案例 1:以太坊的可扩展性改进8.1.4 拓展案例 2:侧链和分层解决方案 8.2 安全性与隐私8.2.1 基础知识8.2.2 主要案例:比特币交易的安全性8.…...

基于STM32的云上OneNET智慧大棚(包含程序设计报告)
目录 概要 作品介绍 设计原理 设计作品结构 软件部分 概要 为了解决传统农业生产效率低下,消耗大量的人力物力,不能精确的对农作物实现监控的问题,从而最大限度的提高农业生产力,实现优质、高产、低耗、环保的可持续发展物联…...

11.scala函数进阶
目录 概述函数scala函数和方法的区别第一种第二种方法转函数 函数柯里化 结束 概述 函数 vs 方法 1.定义 方法:def函数:> 2.方法本质上是一个特殊的函数3.函数是一等公民,函数可以当做值来传递,方法的参数,返回值…...

在WebSocket中使用Redis出现空指针异常解决方案
文章目录 在WebSocket中使用Redis1.问题描述2.原因3.解决步骤1.新建一个SpringUtil.java类,通过getBean的方法主动获取实例2.在WebSocketSingleServer.java中导入 在WebSocket中使用Redis 1.问题描述 在controller 和 service中都可以正常使用Redis,在…...

问题:第十三届全国人民代表大会第四次会议召开的时间是()。 #经验分享#知识分享#媒体
问题:第十三届全国人民代表大会第四次会议召开的时间是()。 A. 2018年3月3日至3月11日 B. 2019年3月5日至3月11日 C. 2020年3月5日至3月11日 D. 2021年3月5日至3月11日 参考答案如图所示 问题:顾客满意是顾客对一件产品满足…...

《区块链简易速速上手小册》第10章:区块链的未来与趋势(2024 最新版)
文章目录 10.1 区块链的未来展望10.1.1 基础知识10.1.2 主要案例:区块链在金融领域的发展10.1.3 拓展案例 1:区块链在供应链管理中的应用10.1.4 拓展案例 2:区块链在身份管理和隐私保护中的应用 10.2 新兴技术与区块链的融合10.2.1 基础知识1…...

JVM工作原理与实战(三十一):诊断内存泄漏的原因
专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、诊断原因 二、MAT内存泄漏检测的原理 总结 前言 JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线…...

#{}和${}的区别
#{}和${}的区别 .本质区别:使用注意事项防止SQL注入排序like查询 . 在使用mybatis操作数据库的时候,我们在编写sql语言的时候,会遇到一个问题,就是在传参的时候,有两个符号#,$.这两个符号有什么异同呢,接下来,我就会带着大家对这个问题进行简单的探讨 本质区别: #执行的是预编…...

【数据结构】(三)树Tree
目录 1、基本概念 2、二叉树Binary Tree 3、树、森林与二叉树的转换 4、赫夫曼树Huffman Tree与赫夫曼编码Huffman Coding 1、基本概念 (1)树(Tree)是 n(n ≥\geq 1)个节点的有限集,n 0时称…...

扩展坞 接两个显示器
笔记本电脑如何外接两个显示器,达到三个屏同时显示? 3 笔记本有 2 个显示扩展接口 目前笔记本中最常见的就是 1 个 HDMI 口 1 个支持 DP 协议的 Type-C 口或 2 个支持 DP 协议的 Type-C 口,此时使用 HDMI 线和 Type-C 转接线分别直连两台显…...

鸿蒙 ArkTS 从数组内查找指定的数据
let arr [1, 2, 3, 4, 5]; let target 3; let result arr.filter(item > item target); let a String(result) 将数字转换成文本型 console.log(a); 亲爱的读者: 首先,我要感谢您抽出宝贵的时间阅读这篇文章。我深知,您的每一分每一…...

qemu 抓取linux kernel vmcore
一、背景 在qemu调试linux kernel时 有时我们会遇到dump 情况,这时可以通过gdb 方式连接分析dump, 但实际中我们用得更多的是离线dump 分析,分析的文件通常是vmcore(linux kernel panic 生成的coredump文件)或者ramdu…...

RabbitMQ 死信队列应用
1. 概念 死信队列(Dead Letter Queue)是在消息队列系统中的一种特殊队列,用于存储无法被消费的消息。消息可能会因为多种原因变成“死信”,例如消息过期、消息被拒绝、消息队列长度超过限制等。当消息变成“死信”时,…...

除毛可以用宠物空气净化器吗?猫用空气净化器哪些品牌吸毛好?
作为一位长期养猫的铲屎官,我深刻理解只有养猫人才懂的困扰,那就是家里到处都是猫毛和异味。我发现自从开始养猫之后,家里的空气质量变得不佳。猫毛和皮屑飞扬,而且室内空气中的污染物也越来越多。这种低质量的空气对我们的健康有…...

有趣的css - 好看的呼吸灯效果
整体效果 这个效果主要用 css3 的 animation 属性来实现的。 这个效果可以用作在网站的整体 Loading,也可以放在网站首屏当一个 banner 的背景也是非常棒的! 代码部分 html 部分代码: <div class"app"><span class&quo…...

二叉树-堆应用(1)
目录 堆排序 整体思路 代码实现 Q1建大堆/小堆 Q2数据个数和下标 TopK问题 整体思路 代码实现 Q1造数据CreateData Q2建大堆/小堆 建堆的两种方法这里会用到前面的向上/向下调整/交换函数。向上调整&向下调整算法-CSDN博客 堆排序 整体思路 建堆(直…...

猫头虎博主第10期赠书活动:《写给大家看的Midjourney设计书》
博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》…...

线程池相关的类学习
Executor public interface Executor {//执行任务void execute(Runnable command); }ExecutorService public interface ExecutorService extends Executor {//关闭线程池,不能再向线程池中提交任务,已存在与线程池中的任务会继续执行,直到…...

Redis核心技术与实战【学习笔记】 - 9.如何避免单线程模型的阻塞
概述 Redis 被广泛应用的原因是因为它支持高性能访问。所以,我们要重视所有可能影响 Redis 性能的因素(如命令操作、系统配置、关键机制、硬件配置等)。 影响 Redis 性能的 5 大方面的潜在因素分别是: Redis 内部的阻塞式操作C…...

如何在 JavaScript 中使用 map() 迭代数组
简介 从经典的 for 循环到 forEach() 方法,JavaScript 中有各种技术和方法用于遍历数据集。其中最流行的方法之一是 .map() 方法。.map() 通过在父数组的每个项目上调用特定函数来创建一个数组。.map() 是一个非变异方法,它创建一个新数组,而…...