MySQL 无法远程连接?

news/2024/12/15 20:26:32/文章来源:https://www.cnblogs.com/hk416hasu/p/18608661

MySQL 无法远程连接?

先看清楚报错信息,一般都有解答。虽然报错信息写的有点难懂

0. 云服务器商防火墙 与 服务器防火墙

请登陆你的云服务器防火墙管理web进行相关配置。

服务器本身的防火墙配置可以使用:

sudo ufw status

STFW !

1. mysql deamon配置问题

/etc/mysql/mysql.conf.d/mysqld.cnf中,的

bind-address = 0.0.0.0 // 而不是127.0.0.1

然后

sudo systemctl restart mysql

2. mysql 认证方式

mysql_native_password : mysql vs. mysql2

报错信息如下 或类似:

  code: 'ER_NOT_SUPPORTED_AUTH_MODE',errno: 1251,sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',sqlState: '08004',fatal: true

javascript举例:应该安装mysql2, 用更新的认证方式

npm install mysql2

在你的javescript代码中使用

const mysql = require('mysql2');

3. 用户帐号相关问题

先查看所有用户的用户名可访问host (%表示什么ip都可以,通配符)

SELECT User, Host FROM mysql.user;

只有当

  • 用户名存在

  • 密码匹配

  • host可访问

  • 用户权限足够

    SHOW GRANTS FOR 'User'@'Host'; -- 查看用户权限
    

以上几点均满足时才行。

如何修改用户 User or Host or Password?

!!!不要直接修改mysql.user !!!

To modify the User, Host, or authentication information (password hash) in the mysql.user table, you can use the appropriate SQL commands. Below are the steps for safely making changes:


1. Modify the User Name

To rename a user, use the RENAME USER command. Do not directly update the mysql.user table.

RENAME USER 'old_user'@'old_host' TO 'new_user'@'old_host';

2. Modify the Host

To change the host for a user, use the RENAME USER command as well:

RENAME USER 'user_name'@'old_host' TO 'user_name'@'new_host';

3. Modify the Authentication Code (Password)

To update a user’s password, use the ALTER USER command:

ALTER USER 'user_name'@'host' IDENTIFIED BY 'new_password';

This command will automatically hash the password and update the authentication_string column in mysql.user.


4. Flush Privileges

After any manual modifications to mysql.user, run the following to apply the changes:

FLUSH PRIVILEGES;

5. Verify Changes

Verify that the changes were applied correctly:

SELECT User, Host, authentication_string FROM mysql.user WHERE User = 'new_user';

3.1 如何创建新用户?

CREATE USER 'user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON datebase.table TO 'dbuser'@'%'; -- 可以细设置权限,安全
FLUSH PRIVILEGES;

3.2 查看与修改用户权限

1. 登录到 MySQL

用具有管理员权限的用户(例如 root)登录到 MySQL:

mysql -u root -p

2. 授予权限

为用户 hk416hasu 授予 learn 数据库的访问权限。

  1. 如果你想授予所有权限:

    GRANT ALL PRIVILEGES ON learn.* TO 'hk416hasu'@'%';
    FLUSH PRIVILEGES;
    
    • learn.* 表示授予 learn 数据库中所有表的权限。
    • @'%' 表示允许从任何 IP 地址访问。
  2. 如果只想授予基本的查询权限(安全性更高):

    GRANT SELECT ON learn.* TO 'hk416hasu'@'%';
    FLUSH PRIVILEGES;
    

3. 验证权限

可以验证用户的权限:

SHOW GRANTS FOR 'hk416hasu'@'%';

希望有解决你的问题!😄

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

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

相关文章

基于ESP32的桌面小屏幕实战[4]:硬件设计之PCB Layout

1. PCB Layout 步骤生成PCB确定PCB layout规范绘制板框尺寸布局 布局规范:按电气性能合理分区,一般分为:数字电路区(即怕干扰、又产生干扰)、模拟电路区(怕干扰)、功率驱动区(干扰源); 完成同一功能的电路,应尽量靠近放置,并调整各元器件以保证连线最为简洁; 对于质…

【C#脚本】C#调用Python脚本的方式(一),以PaddleOCR-GUI为例

以下文章来源于mingupup的学习记录 ,作者DotNet学习交流 前言 每种语言都有每种语言的优势,Python由于其强大的生态,很多任务通过调用包就可以实现,那么学会从C#项目中调用Python脚本完成任务就很重要。C#调用Python代码有多种方式,如果Python那边内容比较多,可以考虑起一…

Derby 数据库介绍(1)--简介

Apache Derby 是 Apache DB 的一个子项目,是一个完全用 Java 实现的开源关系数据库,采用 Apache License 2.0 许可;本文主要介绍其基本概念及安装。 1、Derby 特点 Derby 体积小——基础引擎和嵌入式 JDBC 驱动程序约 3.5MB。Derby 基于 Java、JDBC 和 SQL 标准。Derby 提供…

参数占位符 #{xx} 和 ${xx} 的区别

#{xx} :带有#{}的SQL会采用SQL预编译技术,预编译后的SQL中 #{} 被替换为 “?”,这里的 “?”叫变量占位符,在实际执行SQL时会用“xx”的实际值替换变量占位符,效率更高,可以防止SQL注入SQL预编译:MySQL执行SQL有几个步骤,“查缓存->[语法分析->优化->编译-&…

三文带你轻松上手鸿蒙的 AI 语音 01-实时语音识别

三文带你轻松上手鸿蒙的 AI 语音 01-实时语音识别 前言 HarmonyOSNext中集成了强大的 AI 功能。Core Speech Kit(基础语音服务)是它提供的众多 AI 功能中的一种。 Core Speech Kit(基础语音服务)集成了语音类基础 AI 能力,包括文本转语音(TextToSpeech)及语音识别(Spee…

【原创】ARM64 实时linux操作系xenomai4(EVL)构建安装简述

本文简要记录在瑞芯微RK3588(ARM64)构建安装实时linux操作系统xenomai4的过程,以及实时性测试,希望对你有所帮助!目录0 环境说明1 内核构建2 库编译方式1 交叉编译方式2 本地编译3 测试单元测试hectic:EVL 上下文切换latmus:latency测试4 RK3588 xenomai4实时性能5 总结 本…

最新版chrome如何下载和安装?附安装包

前言 大家好,我是小徐啊。我们在Java开发应用的时候,经常是需要用到浏览器来帮助我们开发的。而浏览器中,谷歌浏览器chrome当属功能最强大的浏览器。今天小徐就来介绍下如何安装chrome。文末附获取方式。 如何安装chrome 首先,双击chrome的安装包,开始安装。然后,可以看到…

[笔记]均分纸牌问题

Index链形均分纸牌每次仅可交换\(1\)张 每次可交换多张环形均分纸牌每次仅可交换\(1\)张 每次可交换多张拓展性很强的贪心问题。或许能推广到树之类的结构上,或者拓展到方案计数问题之类,不过目前还没想好啦。 链形均分纸牌 每次仅可交换\(1\)张 最基础的例题是这样的:有\(n…

掌握PageRank算法核心!你离Google优化高手只差一步!

0 前言 98年前的搜索引擎体验不好:返回结果质量不高:搜索结果不考虑网页质量,而通过时间顺序检索易被钻空:搜索引擎基于检索词检索,页面中检索词出现的频次越高,匹配度越高,这样就会出现网页作弊的情况。有些网页为了增加搜索引擎的排名,故意增加某个检索词频率当时Goo…

ApacheDirectoryStudio如何安装和使用?附安装包

前言 大家好,我是小徐啊。ldap数据库是我们Java开发中,经常会用到的一种数据库。这种数据库是树形结构的,和平常的mysql等数据库还不太一样。但目前对应连接ldap数据库的连接工具比较少,且功能也不强大。今天,小徐就来介绍下一款比较好的连接ldap数据库的连接功能,那就是…

服务器 数据库被攻击如何处理

最近系统有点卡,查看了一下系统事件,发现有人攻击服务器数据库。 以下是我的解决方案 1、修改密码位复杂的密码 2、修改默认数据库默认端口目前已解决下面的腾讯的小哥给的建议,总体差不多一个意思 1、服务器设置大写、小写、特殊字符、数字组成的12-16位的复杂随机密码 ,…

字符数组及应用

这两个等价 长度都为10。这两个等价 长度都为11。如果有:则:注意: 作者QQ4577105