Navicat工具中设置MySQL允许外部访问

 更新时间:2024年04月13日 10:14:19   作者:LCFBOKE  
默认情况下MySQL只允许本地登录,即只能在安装MySQL环境所在的主机下访问,这篇文章主要给大家介绍了关于Navicat工具中设置MySQL允许外部访问的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

在Navicat工具中,设置MySQL允许外部访问。

一、在navicat上使用本地连接,先连接上。

二、修改user表访问权限。

select * from user; # 查询mysql库中的user表是否有user为root的,host为%的数据。
# 如果没有,则进行创建。
create user 'root'@'%' identified by '密码' ; # 密码使用自己设置的数据库密码

# 创建好后,或者有的话,则再执行授权语句
grant all privileges on *.* to 'root'@'%' with grant option;

# 
flush privileges;

然后外部就可以通过账户密码访问了。

说明:

1、※ grant语法: grant 权限名(所有的权限用all) on 库名(*全部).表名(*全部) to ‘要授权的用户名’@’%’(%表示所有的IP,可以只设一个IP) identified by “密码”;

2、其它说明:

FLUSH PRIVILEGES; 命令本质上的作用是:

将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。

MySQL用户数据和权限有修改后,希望在”不重启MySQL服务”的情况下直接生效,那么就需要执行这个命令。

通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。

而不必冒太大风险。

三、可能存在的其它问题:

执行完之后,再用Navicat连接mysql,报错如下:

Client does not support authentication protocol requested by server;

报错原因:

mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式Navicat 12以下客户端不支持;

Navicat 12以下客户端支持的是mysql_native_password 这种加密方式;

解决方案:

1,用如下语句查看MySQL当前加密方式

select host,user,plugin from user;

查询结果

+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | mysql_native_password |
| localhost | mysql.session    | mysql_native_password |
| localhost | mysql.sys        | mysql_native_password |
+-----------+------------------+-----------------------+

看host为’%'的那一行,root加密方式为caching_sha2_password。

2,使用命令将他修改成mysql_native_password加密模式:

update user set plugin='mysql_native_password' where user='root';

再次连接的时候,就成功了。

四、如果还连接不上

通过以上操作后,依然无法连接上,问题可能出在了防火墙上。

1,MySQL部署在实体服务器上解决方案如下:
a.开放MySQL的端口号,默认端口号是3306。b.直接关闭防火墙(慎重操作,不建议。当然测试玩的话就随意了。。。。)

2,MySQL部署在云计算机上的方案如下:a.以阿里云为例,找到实例,设置安全组,开放端口号即可。

附:mysql 允许其他ip访问

1.改表法

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%"

//执行以下sql语句
USE mysql;
UPDATE USER SET HOST = '%' WHERE USER = 'root';
SELECT HOST, USER FROM USER;
FLUSH PRIVILEGES;

测试连接成功

总结

到此这篇关于Navicat工具中设置MySQL允许外部访问的文章就介绍到这了,更多相关MySQL允许外部访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql中的多个字段最大最小值

    mysql中的多个字段最大最小值

    这篇文章主要介绍了mysql中的多个字段最大最小值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Mysql中 show table status 获取表信息的方法

    Mysql中 show table status 获取表信息的方法

    这篇文章主要介绍了Mysql中 show table status 获取表信息的方法的相关资料,需要的朋友可以参考下
    2016-03-03
  • mysql中数据统计的技巧备忘录

    mysql中数据统计的技巧备忘录

    mysql是常用数据库,对于数字操作相关的东西相当方便,这篇文章主要给大家介绍了关于mysql中数据统计技巧的相关资料,非常具有实用价值,需要的朋友可以参考下
    2018-05-05
  • centos7环境下创建mysql5.6多实例的方法详解

    centos7环境下创建mysql5.6多实例的方法详解

    这篇文章主要介绍了centos7环境下创建mysql5.6多实例的方法,详细分析了centos7创建mysql5.6多实例的具体步骤、实现方法与操作注意事项,需要的朋友可以参考下
    2020-02-02
  • MongoDB日期查询操作图文详解

    MongoDB日期查询操作图文详解

    MongoDB中按日期查询是一种常见的查询操作,而按日期查询也是开发人员在MongoDB工作中最常遇到的查询任务之一,这篇文章主要给大家介绍了关于MongoDB日期查询操作的相关资料,需要的朋友可以参考下
    2024-02-02
  • MySQL中REPLACE INTO和INSERT INTO的区别分析

    MySQL中REPLACE INTO和INSERT INTO的区别分析

    REPLACE的运行与INSERT很相似。只有一点例外,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。
    2011-07-07
  • MySQL8.0.23安装超详细教程

    MySQL8.0.23安装超详细教程

    这篇文章主要介绍了MySQL8.0.23安装超详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • MySQL之存储引擎使用及说明

    MySQL之存储引擎使用及说明

    这篇文章主要介绍了MySQL之存储引擎使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • MySQL如何快速修改表的表结构

    MySQL如何快速修改表的表结构

    这篇文章主要介绍了MySQL如何快速修改表的表结构,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • 设置MySQL自动增长从某个指定的数开始方法

    设置MySQL自动增长从某个指定的数开始方法

    下面小编就为大家带来一篇设置MySQL自动增长从某个指定的数开始方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论