我在本地计算机上安装了MySQL Community Edition 5.5,我想允许远程连接,以便我可以从外部源连接.
我怎样才能做到这一点?
我在远程Ubuntu机器上安装了MySQL服务器.该root用户在定义mysql.user表是这样的:
mysql> SELECT host, user, password FROM user WHERE user = 'root';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| localhost | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ip-10-48-110-188 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| 127.0.0.1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ::1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
我可以root使用标准mysql客户端从同一远程计算机命令行界面访问用户.现在我想允许来自互联网上每个主机的root访问权限,所以我尝试添加以下行(它与前一个转储的第一行完全相同,除了host列):
mysql> SELECT host, user, password FROM user WHERE host = '%';
+------------------+------+-------------------------------------------+
| host | user | …Run Code Online (Sandbox Code Playgroud) 如果我SHOW GRANTS在我的mysql数据库中,我得到
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'
IDENTIFIED BY PASSWORD 'some_characters'
WITH GRANT OPTION
Run Code Online (Sandbox Code Playgroud)
如果我没有弄错,root@localhost意味着用户root只能从中访问服务器localhost.如何告诉MySQL授予root从其他所有计算机(在同一网络中)访问此mysql服务器的权限?
我一直在使用SQL Server,现在正在使用MySQL进行项目.使用SQL Server,如果他们知道主机,用户名和密码,我们的开发人员可以连接到本地计算机上的远程数据库.但是,对于MySQL,要让开发人员从本地机器访问,我必须登录MySQL并执行:
GRANT ALL ON *.* to user@address IDENTIFIED BY 'password';
flush privileges;
Run Code Online (Sandbox Code Playgroud)
address开发人员计算机的IP地址在哪里.当然,如果他们改变网络,我必须再次执行它.有没有办法允许所有远程连接,就像我在SQL Server中遇到的那样,或者出于某种原因这是个坏主意?我们还有用户名和密码..我显然有点困惑.
另外:这是一个开发数据库,只能从我们的内部网络访问.我理解为什么让每个人都能访问生产数据库是个坏主意.
试着
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)
入门
错误1064(42000):您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以获得正确的语法,以便在第1行的"IDENTIFIED BY"root"WITH GRANT OPTION"附近使用.
注意:在MySQL 5.7中尝试时也一样
也试过了
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)
入门
错误1410(42000):您不能使用GRANT创建用户
MySQL(8.0.11.0)用户名/密码是root/root.
我在Debian Lenny 5.0上安装了MySQL数据库,我正在尝试使用PHP远程连接到该数据库.
这是我登录的方式:
$con = mysql_pconnect("MY_IP_ADDRESS","root","MY_PASSWORD");
if (!$con)
die('Could not connect: ' . mysql_error());
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Could not connect: Access denied for user 'root'@'li273-10.members.linode.com'
(using password: YES)
Run Code Online (Sandbox Code Playgroud)
其中林不知道为什么我的Linode用户在那里出现.
为了启用远程连接,我使用了本教程:http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
我注意到的另一件事是,在MySQL的phpmyadmin中我有这个:
Server: localhost via TCP/IP
Server version: 5.0.51a-24+lenny5
Protocol version: 10
User: root@mycooldb
Run Code Online (Sandbox Code Playgroud)
我认为localhost必须是我服务器的IP地址?
我做错了什么?
从教程中没有用的东西很少:
保存所有规则:service iptables save不起作用.我收到此错误:
-bash: service: command not found
Run Code Online (Sandbox Code Playgroud)
最后,当我做mysql -u webadmin -h MY_IP -p我得到这个: 
mysql ×6
bash ×1
connection ×1
grant ×1
mysql-8.0 ×1
phpmyadmin ×1
quotes ×1
shell ×1
syntax ×1