栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

远程连接MySQL数据库

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

远程连接MySQL数据库

起因

我想要在Windows下的DataGrip远程连接到我服务器的MySQL,但是总是连接被拒绝。之后突然想到我的MySQL基本没有配置过,是不是不能远程连接。

然后查询下发现,出于安全的考虑,默认情况下MySQL只允许本地连接,不允许从别的服务器远程连接。

后来主要参考卡拉云的方法,感谢这个文章

  • 如何远程连接 MySQL 数据库,阿里云腾讯云允许远程连接教程 - 卡拉云 (kalacloud.com)
编辑 MySQL 配置文件

首先打开 mysqld.cnf 配置文件。

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind - address = 127.0.0.1

默认情况下, bind - address 的值为 127.0.0.1 ,所以只能监听本地连接。我们需要将这个值改为远程连接 ip 可访问,可使用通配符 ip 地址 *, ::, 0.0.0.0 ,当然也可以是单独的固定 ip,这样就仅允许指定 ip 连接,更加安全。

我是修改成了0.0.0.0

保存退出

  • 按Ctrl X保存退出
  • 提示:save modified [buffer]...? ,选择 :yes
  • 又提示:file name to write :***.launch ,选择:Ctrl+T
  • 在下一个界面用 上下左右按键 选择要保存的文件名
  • 然后直接点击 Enter 按键即可保存.

如果修改无法保存(该文件为只读文件)

  • 切换到mysqld.cnf目录下
  • sudo [chmod] 777 mysqld.cnf
  • 修改保存后需要继续把权限修改回来,否则配置文件不会生效
  • sudo chmod 644 mysqld.cnf

然后重启 MySQL 服务,使刚刚编辑的 mysqld.cnf 文件生效:

sudo systemctl restart mysql

之前是直接说拒绝连接,现在可以通过密码确认了。但是继续出现了问题,我输入了密码之后显示错误、

[HY000][1130] null,  message from server: "Host '125.47.27.199' is not allowed to connect to this MySQL server".
创建远程登录用户

搜索问题发现,虽然我设置了可以从别的地方远程登录,但是还没有给账号远程登录的权限,我得说明能让哪些用户访问哪些特定得数据库和表。

将用做远程登录的账号 host 改为任意主机(%)或者是固定主机 ip 。可以使用 RENAME USER 命令来实现:

RENAME USER 'username'@'localhost' TO 'username'@'%';

还有第二种方法,专门创建一个新的账号用于远程登录,我这里参考的是别人的第二个方法,自己专门创建了一个用于远程登录的账号。这是创建账号的命令(password输入你自己的密码)

CREATE USER 'syz-remote'@'%' IDENTIFIED BY 'password';

同时还要为这个账号授权

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'syz-remote'@'%' with grant option;

我之前没有授权,然后使用Golang连接数据库报错,可以查看该文章

(203条消息) Error 1044: Access denied for user ‘syz-remote‘@‘%‘ to database ‘webapp‘_weixin_46272577的博客-CSDN博客

Error 1044: Access denied for user 'syz-remote'@'%' to database 'webapp'

最后,运行 FLUSH PRIVILEGES 命令,刷新 MySQL 的系统权限相关表,更新缓存。

FLUSH PRIVILEGES;

至此,我的DataGrip也成功的连接上了我的服务器上的MySQL

参考
  • 如何远程连接 MySQL 数据库,阿里云腾讯云允许远程连接教程 - 卡拉云 (kalacloud.com)
  • (203条消息) 使用nano时怎么保存退出的问题_chuanyuanshuo的博客-CSDN博客_nano保存退出命令
  • (203条消息) Linux下解决mysqld.cnf配置文件只读而无法修改_youzhouliu的博客-CSDN博客
  • 解决MySQL ERROR 1130 (HY000)错误 - 知乎 (zhihu.com)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/859599.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号