2016-08-24 75 views
0

我有一台运行在Microsoft Azure上的Ubuntu 16.04服务器,并且我有一台运行在该服务器上的MySQL服务器。我有2个用户,根和MattyAB(我),我用这个命令创建:无法从外部登录到MySQL服务器

GRANT CREATE ON *.* To 'MattyAB'@'localhost' IDENTIFIED BY '********'; 
GRANT ALL PRIVILEGES ON * . * TO 'MattyAB'@'localhost'; 

其中*是我的密码。然后我尝试用我的个人电脑连接到服务器,但它不起作用。

我在做什么错? 我是否需要将此'@ localhost'更改为其他内容?

+0

你打开了mysql运行到外部访问的端口吗? – CodePhobia

回答

1

所以我遇到了这个问题,我已经做了其他的事情。

所以你基本上只需要在确定你的mySql运行的端口后运行下面的命令。

在你的Ubuntu终端。运行这个

EXPOSE <PORT NO> 

尝试sudo暴露如果这不起作用。

+0

http://imgur.com/a/lk9DQ不确定这是什么意思...? – MattyAB

+0

哎呀,我的坏处应该已经更清晰的在哪里运行。编辑我的答案,你需要在Ubuntu终端上运行这个。 – CodePhobia

0

你做了什么?您授予访问所有数据库和表*.*在您的服务器到帐户

'MattyAB'@'localhost'。

Localhost显然不是extern帐户。据我所知,你必须使用'%'而不是'localhost',或者只是你想登录到你的mysql服务器的IP。

你需要这样的:GRANT CREATE ON *.* TO 'MattyAB'@'%' IDENTIFIED BY '******';我不确定周围的单引号。如果出现错误,请尝试使用这两种语法。 此外,你可以看看MYSQL Grant Syntax

随着SHOW GRANTS FOR MattyAB你可以检查您的资助配置。

+0

localhost是正确的,因为这是他想要授予权限的用户的位置。 – Takarii

+0

是的,但他的问题是“无法从外部登录到MySQL服务器”;)语法为“account at machine”。您可以根据帐户用于登录MySQL服务器的计算机,将授予变更为同一个帐户。设置'@'localhost''意味着你必须在本地登录到服务器,在服务器安装在用户登录的同一台机器上。他想从外部登录。而外部是从来没有localhost;) – gakoegler

+0

我已经这样做了,它提供了以下内容:http://pastebin.com/FbDFvPJ2,但我仍然无法从我的电脑进入。 – MattyAB