我知道这命令:

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

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


当前回答

编辑文件:

/ 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:\查找安装位置\文件路径

其他回答

如果您希望从任何IP地址授予数据库的远程访问权限,请运行mysql命令,然后运行以下命令。

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

我看到有很多答案,但除了公认的答案,它们都很长,很短,缺乏解释。由于我无法编辑,我正在添加我的答案。阿迪特问:

公开这个数据库,这样每个人都可以访问它

GRANT ALL PRIVILEGES
ON database.*
TO 'username'@'remote_host'
IDENTIFIED BY 'password';

上面的代码授予用户从一个给定的远程主机的权限,你可以允许一个用户从任何远程主机连接到MySQL通过更改'用户名'@'yourremotehost'到'用户名'@'%'。

因此,正确的查询授予用户从任何远程主机连接的权限是:

GRANT ALL PRIVILEGES
ON database.*
TO 'username'@'%'
IDENTIFIED BY 'password';
TO 'user'@'%'

%是通配符-您也可以使用'%.domain。例如'或'%.123.123.123'之类的东西。

GRANT ALL PRIVILEGES ON *.* TO 'user'@'ipadress'

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

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

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