允许从任何IP地址远程访问MySQL数据库

允许从任何IP地址远程访问MySQL数据库

我知道这一命令:

GRANT ALL PRIVILEGESON database.*TO 'user'@'yourremotehost'IDENTIFIED BY 'newpassword';

但是它只允许我授予一个特定的IP地址来访问这个远程MySQL数据库。如果我需要它,以便任何远程主机都可以访问这个MySQL数据库,该怎么办?我该怎么做?基本上,我把这个数据库公之于众,这样每个人都可以访问它。


元芳怎么了
浏览 991回答 3
3回答

MMTTMM

如果您试图从远程计算机连接到MySQL服务器,并遇到如下所示的错误,那么请启用远程访问(Grant)Home/tutorials/mysql/EnableRemoteAccess(GRANT),本文是为您准备的。错误1130(HY000):主机‘1.2.3.4’不允许连接到此MySQL服务器更改MySQL配置从编辑MySQL配置文件开始vim /etc/mysql/my.cnf注释掉以下几行。#bind-address           = 127.0.0.1#skip-networking如果您没有找到跳转网络线路,添加它并注释掉它。重新启动MySQL服务器。~ /etc/init.d/mysql restart更改授予特权您可能会惊讶地看到,即使在上述更改之后,您也没有获得远程访问或访问,但并不能访问所有数据库。默认情况下,允许您使用MySQL用户名和密码在本地访问MySQL-服务器。所以需要更新特权。运行下面的命令从所有机器访问。(替换USERNAME和PASSWORD)mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;运行下面的命令,从特定的IP提供访问权限。(替换USERNAME和PASSWORD)mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;您可以用您的IP替换1.2.3.4。您可以多次运行以上命令来授予来自多个IP的访问权限。您还可以指定一个单独的USERNAME & PASSWORD远程访问。您可以通过以下方式检查最终结果:SELECT * from information_schema.user_privileges where grantee like "'USERNAME'%";最后,还可能需要运行:mysql> FLUSH PRIVILEGES;试验连接从终端/命令行:mysql -h HOST -u USERNAME -pPASSWORD如果获得MySQLshell,请不要忘记运行Show数据库;检查您是否拥有来自远程计算机的正确权限。奖励-提示:撤销访问权限如果您不小心将访问权限授予用户,那么最好在方便的情况下使用撤消选项。以下将从所有机器中撤消用户名的所有选项:mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'%';Following will revoke all options for USERNAME from particular IP:mysql>  REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'1.2.3.4';  Its better to check information_schema.user_privileges table after running REVOKE command.如果在运行REVOKE命令后看到使用特权,则可以。这和没有特权一样好。我不知道是否可以撤销。

当年话下

假设上述步骤已经完成,MySQL端口3306可以远程访问;不要忘记绑定MySQL配置文件中的公共IP地址。例如,在我的ubuntu服务器上:#nano /etc/mysql/my.cnf在文件中,搜索[米舍尔德]块并添加新的绑定地址,在本例中为192.168.0.116。它看起来会像这样......    .....     # Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.bind-address         = 127.0.0.1    bind-address        = 192.168.0.116.....    ......如果您选择的话,您可以删除此localhost(127.0.0.1)绑定,但是您必须指定一个IP地址来访问本地机器上的服务器。最后一步是重新启动MySQL服务器(在ubuntu上)stop mysqlstart mysql或#/etc/init.d/mysql restart其他系统现在,可以通过以下方式远程访问MySQL数据库:mysql -u username -h 192.168.0.116 -p
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL