我知道这命令:

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

但它只允许我授予一个特定的IP地址来访问远程MySQL数据库。如果我想让任何远程主机都能访问这个MySQL数据库呢?我怎么做呢?基本上,我将这个数据库公开,这样每个人都可以访问它。


当前回答

你需要修改mysql的配置文件:

开始编辑mysql配置文件

vim /etc/mysql/my.cnf

add:

bind-address = 0.0.0.0

其他回答

对于那些搞砸了的人,这是我如何授予特权的,希望它能帮助到一些人

GRANT ALL ON yourdatabasename.* TO root@'%' IDENTIFIED BY
'yourRootPassword';

如前所述,%是一个通配符,这将允许任何IP地址连接到您的数据库。我在这里做的假设是,当您连接时,您将有一个名为root的用户(这是默认的)。输入根密码,就可以开始了。注意,在root用户周围没有单引号(')。

比如我的CentOS

sudo gedit /etc/mysql/my.cnf

注释掉下面的行

#bind-address = 127.0.0.1

然后

Sudo服务mysqld重启

在像cPanel这样的网站面板中,您可以在允许访问MySQL数据库的主机名中添加一个%(百分比符号)。

通过添加单个%,您可以从任何IP或网站甚至从桌面应用程序访问您的数据库。

假设以上步骤已经完成,MySql端口3306可以远程访问;不要忘记在mysql配置文件中绑定公网ip地址。

例如在我的ubuntu服务器上:

#nano /etc/mysql/my.cnf

在文件中,搜索[mysqld]区域块并添加新的绑定地址,在本例中为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 mysql

start mysql

或# / etc / init。D /mysql重启其他系统

现在MySQL数据库可以通过以下方式远程访问:

mysql -u username -h 192.168.0.116 -p

编辑文件:

/ etc / mysql / percona-server cnf。

在文件中附加以下代码。

(mysqld) Bind-address = 0.0.0.0

创建远程访问用户。

$ mysql -u root -p      
mysql> GRANT ALL ON *.* to snippetbucketdotcom@'%' IDENTIFIED BY 'tejastank';   
mysql> FLUSH PRIVILEGES;    
mysql> exit

所有linux服务器工作,

对于MSWin c:\查找安装位置\文件路径