我知道这命令:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
但它只允许我授予一个特定的IP地址来访问远程MySQL数据库。如果我想让任何远程主机都能访问这个MySQL数据库呢?我怎么做呢?基本上,我将这个数据库公开,这样每个人都可以访问它。
我知道这命令:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
但它只允许我授予一个特定的IP地址来访问远程MySQL数据库。如果我想让任何远程主机都能访问这个MySQL数据库呢?我怎么做呢?基本上,我将这个数据库公开,这样每个人都可以访问它。
当前回答
执行如下命令:
$ mysql -u root -p
mysql> GRANT ALL ON *.* to root@'ipaddress' IDENTIFIED BY 'mysql root password';
mysql> FLUSH PRIVILEGES;
mysql> exit
然后尝试从您指定的IP地址进行连接:
mysql -h address-of-remove-server -u root -p
你应该能够连接。
其他回答
使用该命令:
GRANT ALL ON yourdatabasename.* TO root@'%' IDENTIFIED BY 'yourRootPassword';
然后:
FLUSH PRIVILEGES;
然后注释掉文件"/etc/mysql/mysql.conf.d/mysql .cnf"(这是必须的!)
bind-address = 127.0.0.1
对我有用!
您可以通过编辑/etc/my.cnf来禁用所有安全:
skip-grant-tables
我看到有很多答案,但除了公认的答案,它们都很长,很短,缺乏解释。由于我无法编辑,我正在添加我的答案。阿迪特问:
公开这个数据库,这样每个人都可以访问它
GRANT ALL PRIVILEGES
ON database.*
TO 'username'@'remote_host'
IDENTIFIED BY 'password';
上面的代码授予用户从一个给定的远程主机的权限,你可以允许一个用户从任何远程主机连接到MySQL通过更改'用户名'@'yourremotehost'到'用户名'@'%'。
因此,正确的查询授予用户从任何远程主机连接的权限是:
GRANT ALL PRIVILEGES
ON database.*
TO 'username'@'%'
IDENTIFIED BY 'password';
编辑文件:
/ 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:\查找安装位置\文件路径
在像cPanel这样的网站面板中,您可以在允许访问MySQL数据库的主机名中添加一个%(百分比符号)。
通过添加单个%,您可以从任何IP或网站甚至从桌面应用程序访问您的数据库。