无论你是虚拟机还是云服务器,mysql的远程访问始终是有先后逻辑顺序的。

为什么要写这一个博客呢,因为有很多人安装了mysql但远程访问搞得很头疼,我自己一个笔记,也还可以给更多人帮助。这不就是双赢吗!!

不多说直接上教程

检查判断问题→如果有问题→1:更改mysql配置,2:进行mysql赋权。(就两个步骤,简单且实用)

一:首先机器上要有mysql

你的mysql一定要安装成功,因为这里只讲mysql远程访问的问题。

如果您的系统安装了netstat工具,可以使用以下命令来检查监听3306端口的服务:

netstat -tulnp | grep 3306

一共有两种情况:

第一种会显示:(netstat 命令输出结果,MySQL 服务正在监听本地回环地址(127.0.0.1)上的3306端口,并且处于侦听状态(LISTEN)。这意味着 MySQL 服务已经启动,并且准备好接受来自本地机器的连接。)

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

第二种会显示:(mysqld服务现在正在监听所有IP地址(0.0.0.0)上的3306端口,并且处于侦听状态(LISTEN)。这表明MySQL服务已经配置为接受来自任何IP地址的连接请求。)

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3515/mysqld

如果是第二种:远程服务就肯定启动成功了。如果是第一种就接着往下看。

二:netstat出现是第一种情况(是需要更改mysql系统文件的)

您需要确保 MySQL 配置文件(通常是 /etc/my.cnf 或 /etc/mysql/my.cnf)中的 bind-address 配置项设置为监听所有网络接口或特定的外部IP地址。

要使 MySQL 监听所有网络接口,您可以将 bind-address 设置为 0.0.0.0

[mysqld]
bind-address = 0.0.0.0

记住bind-address = 0.0.0.0一定要放在【mysqld】的下面。(更改后保存就可以了)

三:进入mysql执行赋权的命令

进入mysql的命令为:(输入以下代码回车,再输入密码)

mysql -uroot -p

进入mysql后直接执行如下代码进行赋权。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

然后接着再输入一句:(必须需要输入下面这条命令,才能将上面这条语句赋权!)输入完成后就可以退出mysql了。用exit;命令可以退出。

FLUSH PRIVILEGES;

如果不确定赋权成功(可以查看)如下就是方法

use mysql;

select host from user where user='root';

虚拟机里启动mysql步骤_IP

如果是上图所示,就是不正确,正确的应该会多一个%号在localhost的上面。

如果没有问题就接着下面操作

现在直接重启mysql:

systemctl restart mysqld

然后再用(就可以实现netstat出现的第二种结果了)

netstat -tulnp | grep 3306