本文介绍: 无法远程连接Ubuntu的MySQL


1.无法远程连接Ubuntu的MySQL

(1) 需要检查防火墙状态

> sudo ufw status
#如果防火墙开启的情况,添加规则:允许3306端口开启
> sudo ufw allow 3306

(2) 需要检查mysql的运行状态

> sudo systemctl status mysql
#或者
> sudo service mysql status

(3) MySQL默认只允许本地连接:localhost,需要检查

> sudo netstat -plnt | grep mysql
0.0.0.0:表示监听所有网段
127.0.0.1:表示监听localhost

在这里插入图片描述
提示:MySQL默认只允许本地连接:localhost

解决:

#1.修改配置文件
#/etc/mysql/mysql.conf.d/mysqld.cnf
> cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.bak
> sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
> #bind-address = 127.0.0.1 注释此行
> #或者 添加:
> bind-address = 0.0.0.0
#2.重启mysql
> sudo systemctl restart mysql

(4) 需要检查mysql的root用户的远程连接权限
提示:mysql的root用户默认只有localhost的连接权限

#root用户登录
> mysql -u root -p
#登录成功后查看mysql.user表的相干记录,如下图所示,可以发现当前root用户属于默认情况
> use mysql
> select user,host from mysql.user;
localhost:表示该用户只具备localhost的连接权限
%:表示该用户只具备任何远程主机的连接权限

在这里插入图片描述

解决:

#创建支持远程主机连接的root用户
> create user ‘root’@‘%’ identified by ‘123456’;
#授权此root用户所有权限
> grant all privileges on *.* to ‘root’@‘%’;
#刷新
> flush privileges;


2.ubuntu忘记mysql的root密码时的操作

(1) 查看mysql自带用户和密码

> sudo cat /etc/mysql/debian.cnf

在这里插入图片描述
(2) 使用自带用户debian-sys-maint登录

> sudo mysql -u debian-sys-maint -p

(3) 登录mysql后,修改mysql密码

> alter user ‘root’@‘localhost’ identified by “123456”;
#或者
> alter user ‘root’@‘localhost’ identified with caching_sha2_password by ‘123456’;

(4) 刷新权限

> flush privileges;

原文地址:https://blog.csdn.net/xys206006/article/details/135990396

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_66479.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注