我正在尝试建立从一个 e2c(亚马逊)实例到另一个 e2c 实例的连接。
我有:
- 调整安全组如下:MYSQL/Aurora TCP 3306 client-ip/32(client-ip 为我的客户端实例的文字 ip 地址)
- bind-address 在 my.cnf 中设置为 0.0.0.0(我花了一些精力才发现)
- iptables 没有运行(或者至少没有阻止任何事情)
- 更改安全组后我重启了服务器
- 请参阅以下列表以了解我的用户数据库的内容
- mysqld 已重新启动
- 每次授予后我都会刷新权限(在服务器上)
此命令做工作:
root@server:~# mysql -u root -p
这没有:
ubuntu@client:~$ mysql -u root -p -h server-ip mysql (with the literal ip address)
但以下情况除外:
ERROR 1045 (28000): Access denied for user 'root'@'ec2-client-ip.eu-west-1.compute.amazonaws.com' (using password: YES)
输出:
select Host, User from user;
+---------------------------------------------------+------------------+
| Host | User |
+---------------------------------------------------+------------------+
| % | name |
| 127.0.0.1 | root |
| client-ip.ec2.internal | root |
| client-ip | phpmyadmin |
| client-ip | root |
| ::1 | root |
| ec2-client-ip.eu-west-1.compute.amazonaws.com | phpmyadmin |
| ec2-client-ip.eu-west-1.compute.amazonaws.com | root |
| ip-172-30-0-191 | root |
| localhost | debian-sys-maint |
| localhost | liftoff |
| localhost | phpmyadmin |
| localhost | root |
+---------------------------------------------------+------------------+
别担心,这个不是生产(完全)只是一些玩耍......
我真的不知道我在这里忽略了什么,也许这只是一些愚蠢的事情,我不知道为什么这不起作用。
telnet server-ip 3306
给出了你期望从 mysql 服务器得到的乱码;
任何帮助大大感激……
两个实例都是 ubuntu,一个是 Ubuntu 14.04.5 LTS(带有 mysql 服务器 5.6),客户端是 Ubuntu 16.04.1 LTS,带有 mysql 客户端 5.7;我真的希望这不是问题......
答案1
好的,显然如果你使用:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'52-211-52-226.ec2.internal' WITH GRANT OPTION;
如果没有 IDENTIFIED BY 子句,则不会设置密码:
+------------------+-------------------------------------------+
| User | Password |
+------------------+-------------------------------------------+
| root | *52906BB5BDD20058CC5D0540DF250D4CC034166F |
| root | *52906BB5BDD20058CC5D0540DF250D4CC034166F |
| root | *52906BB5BDD20058CC5D0540DF250D4CC034166F |
| root | *52906BB5BDD20058CC5D0540DF250D4CC034166F |
| debian-sys-maint | *962FC5E27FD78F93284B9F0A4CE344B9748CEEFD |
| phpmyadmin | *52906BB5BDD20058CC5D0540DF250D4CC034166F |
| liftoff | *27EF2C2B8282406BA7B56DC96E8BE27C9988FBBB |
| phpmyadmin | |
| root | |
| phpmyadmin | |
| root | |
| name | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | |
| root | |
+------------------+-------------------------------------------+
...
mysql -u root -h 52.209.36.229 -p
没有用,但是
mysql -u root -h 52.209.36.229
做过...
很抱歉浪费了你的时间 :-/
年代。
答案2
看起来你需要清除权限
mysql> flush privileges;
也就是说没有知道您授予了哪个数据库的权限。在您编写的命令中,您将默认连接到 mysql 数据库。
通常你会
mysql> grant all privileges on my_db.* to 'user'@'host' deintified by 'secret';
mysql> /* for older versions */ flush privileges
shell$ mysql -u user -p -h mysql_host my_db