數據庫新建用戶后(Host:%),報錯:localhost無法連接

存在問題

在給數據庫(MySQL、MariaDB等)創建了新的用戶名(eg:maxscale)后,無法使用新用戶名登錄,并報如下錯誤:ERROR 1045 (28000): Access denied for user 'maxscale'@'localhost' (using password: YES)

相信遇到該問題的人都有這樣的疑問:明明創建用戶時,host為‘%’,正常情況下所有的主機應該都可以連接呀,為什么報錯'localhost'無法連接?

解決方案及問題分析,如下!

查看用戶表

MariaDB [(none)]> select user,host from mysql.user;
+-------------+----------------+
| User        | Host           |
+-------------+----------------+
|             | localhost      |
| mariadb.sys | localhost      |
| mariadb10   | localhost      |
| root        | localhost      |
|             | vm172-0-11-157 |
+-------------+----------------+

創建用戶

-- 創建用戶
create user maxscale@'%' identified by "123456";
grant replication client, replication slave, select on *.* to maxscale@'%';-- 查看用戶
MariaDB [(none)]> select user,host from mysql.user;
+-------------+----------------+
| User        | Host           |
+-------------+----------------+
| maxscale    | %              |
|             | localhost      |
| mariadb.sys | localhost      |
| mariadb10   | localhost      |
| root        | localhost      |
|             | vm172-0-11-157 |
+-------------+----------------+
9 rows in set (0.003 sec)

連接數據庫

在已經啟動數據庫的前提下,連接數據庫:

/home/mariadb10/node5307/mysql/bin/mysql --defaults-file=/home/mariadb10/node5307/my.cnf -h127.0.0.1 -umaxscale -p123456 -P5307

連接報錯:

原因分析

上述連接命令使用127.0.0.1作為主機名,MariaDB在mysql.user表中首先查找Host為127.0.0.1的用戶條目,如果沒有找到,它會查找Host為localhost的用戶條目。由于maxscale用戶對應的Host是%,理論上應該能夠匹配任何主機,包括127.0.0.1和localhost。

但是,如果MariaDB在處理連接請求時,由于某些原因(可能是配置問題或權限問題)沒有正確識別maxscale@%用戶,它可能會退回到使用匿名用戶。

解決辦法

刪除匿名用戶!

1)查找匿名用戶

MariaDB [(none)]> SELECT User, Host FROM mysql.user WHERE User = '';
+------+----------------+
| User | Host           |
+------+----------------+
|      | localhost      |
|      | vm172-0-11-157 |
+------+----------------+
2 rows in set (0.001 sec)

2)刪除匿名用戶

MariaDB [(none)]> drop user ''@'localhost';
Query OK, 0 rows affected (0.002 sec)MariaDB [(none)]> SELECT User, Host FROM mysql.user WHERE User = '';
+------+----------------+
| User | Host           |
+------+----------------+
|      | vm172-0-11-157 |
+------+----------------+
1 row in set (0.001 sec)

3)重新連接數據庫

注意:匿名用戶權限很高,非必要情況下,優選刪除匿名用戶!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64968.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64968.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64968.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2024年大型語言模型(LLMs)的發展回顧

2024年對大型語言模型(LLMs)來說是充滿變革的一年。以下是對過去一年中LLMs領域的關鍵進展和主題的總結。 GPT-4的壁壘被打破 去年,我們還在討論如何構建超越GPT-4的模型。如今,已有18個組織擁有在Chatbot Arena排行榜上超越原…

數據挖掘——支持向量機分類器

數據挖掘——支持向量機分類器 支持向量機最小間隔面推導基于軟間隔的C-SVM非線性SVM與核變換常用核函數 支持向量機 根據統計學習理論,學習機器的實際風險由經驗風險值和置信范圍值兩部分組成。而基于經驗風險最小化準則的學習方法只強調了訓練樣本的經驗風險最小…

檢索增強生成

概述 檢索增強生成(Retrieval-Augmented Generation,RAG)是一種將信息檢索與語言模型相結合的技術。由Facebook AI Research于2020年提出,它把數據庫的優勢與語言模型的優勢相結合。它能讓模型從外部知識庫中檢索信息&#xff0c…

在 SQL 中,區分 聚合列 和 非聚合列(nonaggregated column)

文章目錄 1. 什么是聚合列?2. 什么是非聚合列?3. 在 GROUP BY 查詢中的非聚合列問題示例解決方案 4. 為什么 only_full_group_by 要求非聚合列出現在 GROUP BY 中?5. 如何判斷一個列是聚合列還是非聚合列?6. 總結 在 SQL 中&#…

ETL處理工具Kettle入門

1. Kettle簡介 Kettle(現已更名為Pentaho Data Integration,簡稱PDI)是一個開源的ETL工具,能夠進行數據的抽取(Extract)、轉換(Transform)和加載(Load)。它是…

petalinux2017.4對linux4.9.0打實時補丁

準備工作: 1.windows:安裝vivado 2017.4,xilinx sdk 2017.4 2.ubuntu16.04:安裝petalinux 2017 3.黑金ax7020,sd卡 一、準備linux內核的操作系統 1.1 Petalinux配置 Petalinux使用教程-CSDN博客非常詳細&#xf…

Maven 教程之 pom.xml 詳解

Maven 教程之 pom.xml 詳解 pom.xml 簡介 什么是 pom POM 是 Project Object Model 的縮寫,即項目對象模型。 pom.xml 就是 maven 的配置文件,用以描述項目的各種信息。 pom 配置一覽 <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi

Golang的緩存一致性策略

Golang的緩存一致性策略 一致性哈希算法 在Golang中&#xff0c;緩存一致性策略通常使用一致性哈希算法來實現。一致性哈希算法能夠有效地解決緩存節點的動態擴容、縮容時數據重新分布的問題&#xff0c;同時能夠保證數據訪問的均衡性。 一致性哈希算法的核心思想是將節點的哈希…

【機器學習:一、機器學習簡介】

機器學習是當前人工智能領域的重要分支&#xff0c;其目標是通過算法從數據中提取模式和知識&#xff0c;并進行預測或決策。以下從 機器學習概述、有監督學習 和 無監督學習 三個方面進行介紹。 機器學習概述 機器學習定義 機器學習&#xff08;Machine Learning&#xff0…

藍橋杯JAVA--003

需求 2.代碼 public class RegularExpressionMatching {public boolean isMatch(String s, String p) {if (p.isEmpty()) {return s.isEmpty();}boolean firstMatch !s.isEmpty() && (s.charAt(0) p.charAt(0) || p.charAt(0) .);if (p.length() > 2 && p…

被催更了,2025元旦源碼繼續免費送

“時間從來不會停下&#xff0c;它只會匆匆流逝。抓住每一刻&#xff0c;我們才不會辜負自己。” 聯系作者免費領&#x1f496;源&#x1f496;碼。 三聯支持&#xff1a;點贊&#x1f44d;收藏??留言&#x1f4dd;歡迎留言討論 更多內容敬請期待。如有需要源碼可以聯系作者免…

WebRTC的線程事件處理

1. 不同平臺下處理事件的API&#xff1a; Linux系統下&#xff0c;處理事件的API是epoll或者select&#xff1b;Windows系統下&#xff0c;處理事件的API是WSAEventSelect&#xff0c;完全端口&#xff1b;Mac系統下&#xff0c;kqueue 2. WebRTC下的事件處理類&#xff1a; …

關于Zotero

1、文獻數據庫&#xff1a; Zotero的安裝 Zotero安裝使用_zotero只能安裝在c盤嗎-CSDN博客 2、如何使用zotero插件 我剛下載的時候就結合使用的是下面的這兩個博主的分享&#xff0c;感覺暫時是足夠的。 Zotero入&#x1f6aa;基礎 - 小紅書 Green Frog申請easyscholar密鑰…

企業三要素如何用PHP實現調用

一、什么是企業三要素&#xff1f; 企業三要素即傳入的企業名稱、法人名稱、社會統一信用代碼或注冊號&#xff0c;校驗此三項是否一致。 二、具體怎么樣通過PHP實現接口調用&#xff1f; 下面我們以阿里云為例&#xff0c;通過PHP示例代碼進行調用&#xff0c;參考如下&…

Go 語言中強大的配置管理庫—Viper

Viper 是 Go 語言中強大的配置管理庫&#xff0c;廣泛用于云原生和微服務開發中。它支持多種配置文件格式&#xff08;如 YAML、JSON、TOML 等&#xff09;、環境變量、命令行參數以及遠程配置管理。 Viper 的主要功能 1. 支持多種格式的配置文件&#xff1a; ? YAML、JSON…

鴻蒙-封裝loading動畫

import { AnimatorOptions, AnimatorResult } from "kit.ArkUI" export enum SpinImageType { RedLoading, WhiteLoading } Component export struct SpinImage { Prop type?: SpinImageType Prop url?: string State animatedValue: number 0 …

今日復盤103周五(189)

1、早上&#xff0c;看了一下二手書里的十種主要游戲類型的相關內容。 其實收獲不大&#xff0c;主要是引發思考。 2、白天&#xff0c;持續多日的模式1的白模原型關卡結束&#xff0c;開始轉做準正式資源的關卡&#xff0c; 但進度低于預期。 并不是改改參數那么簡單輕松&a…

OJ隨機鏈表的復制題目分析

題目內容&#xff1a; 138. 隨機鏈表的復制 - 力扣&#xff08;LeetCode&#xff09; 分析&#xff1a; 這道題目&#xff0c;第一眼感覺非常亂&#xff0c;這是正常的&#xff0c;但是我們經過仔細分析示例明白后&#xff0c;其實也并不是那么難。現在讓我們一起來分析分析…

uc/os-II 原理及應用(一) 嵌入式實時系統基本概念

基于嵌入式實時操作系統μCOS-II原理及應用(第2版)-任哲 自行網上尋找資源。 計算機系統的中分為計算機硬件系統與計算機軟件系統&#xff0c;計算機軟件系統由上到下分為&#xff0c;應用軟件&#xff0c;系統軟件&#xff0c;操作系統;操作系統一般在計算機軟件的最低層&…

C++ 并發專題 - std::promise 和 std::future 介紹

一&#xff1a;概述 std::promise 和 std::future 是C標準庫的兩種工具&#xff0c;主要用于實現線程之間的異步通信。它們屬于C并發庫的一部分&#xff0c;提供了一種安全&#xff0c;優雅的方式來在線程之間傳遞結果或狀態。 二&#xff1a;std::promise 介紹 std::promise …