linux下mysql允许外部远程访问配置

远程访问mysql我们在网上看到最多的是直接授权mysql数据库,但是有些人按照这个教程发现还是无法连接mysql。
下面小编就来详细介绍一下如何做的文章。
启用mysql远程访问配置

放置mysql配置文件

/etc/mysql/my.cnf

找到bind-address=127.0.0.1,注释掉//效果是不再只允许本地访问;

重启mysql:/etc/init.d/mysqlrestart;

导入mysqlDatabase

mysql-uroot-p

mysqlgrantallprivilegeson*.*toroot@'%'identifyby'xxxx';

第一个*代表基名数据;第二个*代表数据库的表名;像上面的*.*表示允许访问数据库中的所有表;

'%':表示允许访问mysql的IP地址,当然你也可以具体配置;对于IP名称;%表示所有IP均可访问;

以下'xxxx'为root用户的密码;

MySQL无法使用IP地址进行连接mysql不支持ip链接

无法使用MySQLIP地址进行连接。
很多开发者使用MySQL通过IP地址连接,但有时会遇到无法使用IP地址连接的问题。
我们将在本文中介绍常见原因和解决方案。
原因1:未通过远程访问启用MySQL。
默认情况下,MySQL不允许通过远程IP地址进行连接。
因为MySQL默认只允许通过localhost进行本地连接,这样提高了安全性。
如果用户需要访问远程服务器上的MySQL,则需要更改配置文件。
在MySQL配置文件中,可以通过将bind-a地址设置为0.0.0.0来启用远程访问。
该配置文件通常位于/etc/mysql/mysql.conf.d/mysqld.cnf。
link-email=0.0.0.0配置文件后,重新启动MySQL服务以使更改生效。
原因二:防火墙阻止连接如果MySQL服务器上有防火墙,它可以阻止来自远程IP的连接。
在这种情况下,必须在MySQL服务器上打开一个端口。
MySQL的默认端口是3306,因此应该将该端口添加到防火墙规则中。
例如,在Linux上,使用以下命令打开端口3306:sudoufwallow3306/tcp此外,请确保您的网络路由器和防火墙允许从远程IP地址向MySQL服务器发出请求。
原因3:MySQL用户权限不足在某些情况下,即使授予远程访问权限且端口开放,MySQL用户也无法连接。
这可能是由于用户没有足够的权限。
在MySQL中,必须授予用户适当的权限才能从远程IP地址进行连接。
要检查用户权限,请使用以下查询:SELECTUser,HostFROMmysql.user;此查询将显示所有用户及其姓名。
如果用户的主机名设置为“%”,则意味着用户可以从任何位置进行连接。
要授予用户权限,请使用以下查询:GRANTALLONdatabase_name.*TO'username'@'%'IDENTIFIEDBY'password';给定用户,“password”是该用户的密码。
要从其他地方授权用户,请使用“%”而不是主机名。
总结使用IP地址无法连接MySQL通常是由于MySQL不允许远程访问、防火墙阻止连接或用户权限不足等原因。
通过了解这些因素,可以及时采取适当的解决方案,维持数据库的正常运行。

怎么设置才能让外网ip可以访问mysql数据库

总体介绍:

出于安全考虑,Mysql数据库监听地址默认为127.0.0.1,也就是说只能被本机下的程序访问。

监听地址为0.0.0.0,表示mysql允许所有IP地址连接,这是允许远程连接的基础。

监听地址为127.0.0.1,即表示mysql只允许远程连接允许本地服务器连接,但外网无法连接

需要的工具和材料:

Linux、apache、php、mysql

解决方案:

1.使用vi命令编辑/etc/mysql/my.cnf,如图所示:

在[mysqld]部分添加以下行:

2.bind-address=0.0.0.0#所有​​指定的地址或IP地址如图

3.重启服务

servikemysqldrestart

4在Linux服务器上运行以下命令,查看是否有netstat-nutlp|grepmysql(仅查看mysql监控)、netstat-tln(查看所有监控))成功了。

Ubuntu16远程连接MySQL

要实现Ubuntu16远程连接MySQL,需要分步操作以确保连接建立成功。
首先,打开MySQL配置目录并允许其他IP连接。
编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件,写入#bind-address=127.0.0.1行并更改为bind-address=0.0.0.0以允许外部IP访问。
那么,如果远程连接仍然失败,那么查看日志时,就会发现域名解析有问题。
要解决这个问题,需要关闭DNS解析。
将skip-name-resolve参数添加到/etc/mysql/my.cnf文件中。
当连接仍然失败时,可能是因为禁用DNS解析后找不到本地域名。
此时进入数据库,更新MySQL数据库中的用户表,将用户表中的host元素改为IP地址。
例外情况是:使用SQL命令updateusersetHost='11.x.x.x'whereUser='mysql.sys'和updateusersetHost='11.x.x.x'whereUser='root'更新用户表并验证所有用户连接。
主机信息是IP地址。
完成后,刷新权限以应用更改。
最后重启数据库服务器即可成功远程连接MySQL。

Ubuntu下远程访问MySQL数据库

在Ubuntu环境下,需要按照特定步骤远程访问MySQL数据库。
通过命令行界面,运行以下命令获取远程连接:`mysql-h主机地址-u用户名-p用户密码`。
例如,使用命令`yanggang@host:~$mysql-h192.168.1.11-uroot-p1`尝试连接。
如果看到类似“ERROR2003(HY000):Can'tconnecttoMySQLserveron'192.168.1.11'(111)”的错误消息,则表示无法成功连接远程MySQL数据库。

远程访问MySQL数据库主要有两种方式:通过`mysql.sock`文件进行本地连接和通过TCP/IP协议进行远程连接。
本地连接速度更快,但仅限于同一台计算机内。
远程连接模式允许从其他设备访问。

当远程连接发生错误时,通常是因为您没有远程访问权限。
解决该问题的步骤如下:

首先,编辑目标服务器上的MySQL配置文件“my.cnf”(例如:192.168.1.11)。
使用`sudovi/etc/mysql/my.cnf`命令打开编辑器并注释掉`bind-address=127.0.0.1`行以允许其他主机访问。
重新启动MySQL服务以使更改生效,通常使用“sudorestartmysql”命令。

完成服务器访问权限配置后,您还需要对服务器上的数据库或表授予访问权限(GRANT操作)。
步骤如下:

访问MySQL数据库,命令格式为`mysql-uroot-p123456`。
对top800数据库执行GRANT操作以授予访问权限:`grantallprivilegesontop800.*toroot@192.168.1.22identifiedby'123456';`。
新配置的刷新权限生效:`flushprivileges;`。

完成上述步骤后,您现在可以远程访问服务器上的MySQL数据库了。
默认情况下,远程连接权限只允许访问“information_schema”和“top800”数据库,其中“top800”数据库是通过GRANT操作授予访问权限的。

如果您需要管理权限,可以使用以下命令:

删除用户对特定数据库的访问权限:`revokeallprivilegesontop800.*fromroot@192.168.1.22identifiedby'123456';`。
删除特定用户:`deletefromuserwhereuser='yanggang';`。
刷新权限以确保更改生效:`flushprivileges;`。
在服务器上查询用户信息:`showgrants;`。