无法远程连接到EC2 MySQL安装
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了无法远程连接到EC2 MySQL安装,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5124字,纯文字阅读大概需要8分钟。
内容图文
![无法远程连接到EC2 MySQL安装](/upload/InfoBanner/zyjiaocheng/889/44f6ac3302a54367a08aa7dad7a08cb2.jpg)
我的系绳结束,变化的时间……
我正在尝试访问在EC2实例上运行的已安装的MySQL.很多搜索(这似乎最接近我的问题Connect to mysql on Amazon EC2 from a remote server),我显然错过了一些愚蠢或误解的东西.
EC2 Ubuntu,mysqld运行良好,本地web / app服务器工作正常所有连接.我可以从本地mysql.我需要外部访问这个开发机器,因为使用iron.io需要从外部访问数据库.
我有
> ec2 security gruops全部配置允许0.0.0.0
>我可以ssh / http到达服务器没问题
>配置mysqld
> bind address = 0.0.0.0(尝试过下面的变体)
>从%获得非root用户(myuser)的访问权限
例如全部开启. to myuser @’%’IDENTIFIED BY’password’; FLUSH特权;
>确保我的ubuntu实例iptables没有配置
例如我只使用ec2安全组来保护实例)
我努力了
> ssh进入服务器
> telnet到mysqld端口3306上的公共IP以确保其收听 – 请参阅下面的注释
>在/etc/mysql/my.cnf中删除绑定地址
>检查它不是sock v端口错误:始终通过端口连接(本地检查,例如mysql -h – localhost -u root -p –port = 3306)
>绑定地址0.0.0.0
>绑定地址EC2本地IP,例如172.
>绑定地址EC2外部IP例如51.X
>%mysql用户授予权限%
> mysql用户授予我个人外部ip的权限
>创建另一个用户,并仅将priviledgs授予特定数据库
在mydb上授予所有特权.*”myuser2’@’%’通过’密码’识别;
>重复%,我的个人外部IP
>将root @’%’添加到列表中并尝试该用户(基于此建议:Can’t Connect to MySQL instance Remotely that is running on EC2 Instance (Not RDS))
(之后始终重启服务器)
什么都行不通,测试总是如此
$mysql –host = 54.x.x.x –port = 3306 –user = myuser -p
输入密码:
ERROR 1045(28000):用户’myuser’@’54.x.x.x’的访问被拒绝(使用密码:是)
不过我注意到了
> SELECT * from information_schema.user_privileges;有一个IS_GRANTABLE设置为N的myser:但我不认为这是一个限制因素(Why is GRANT not working in MySQL?)
> netstat -a显示了一个不同的端口&套接字听!?
下面的netstat中的监听端口不是3306但是我已经在外部端口到该端口并且它显示了mysql IS正在监听
任何人都可以建议我错过的任何一步吗?
db priviledges的摘录,my.cnf如下
# user_privileges
# e.g. SELECT * from information_schema.user_privileges;
+--------------------------------+---------------+-------------------------+--------------+
| GRANTEE | TABLE_CATALOG | PRIVILEGE_TYPE | q1 |
+--------------------------------+---------------+-------------------------+--------------+
| 'root'@'localhost' | def | SELECT | YES |
...
| 'myuser'@'%' | def | SELECT | NO |
| 'myuser'@'%' | def | INSERT | NO |
| 'myuser'@'%' | def | UPDATE | NO |
#
]$netstat -a | grep 'mysql'
tcp 0 0 *:mysql *:* LISTEN
unix 2 [ ACC ] STREAM LISTENING 61212 /var/run/mysqld/mysqld.sock
$telnet 54.x.x.x 3306
Trying 54.x.x.x...
Connected to ec2-54-x-x-x.us-west-2.compute.amazonaws.com.
Escape character is '^]'.
[
5.5.44-0ubuntu0.14.04.1+c<>d^+W?1*!e\{wdp&hZmysql_native_password
# my.cnf
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
#skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = localhost
# donts seem to work
bind-address = 0.0.0.0
# does not work
# ec2 external ip
#bind-address = 54.x.x.x
# ec2 internal ip
#bind-address = 172.x.x.x
解决方法:
我找到的最好的工具是sqlyog,(也许是mysql工作台),它实际上会告诉你在失败的连接上进入的主机名.
我喜欢它的原因是它保持安全,显示类似的东西
用户“fred123@hdm38.newyork.comcastbusiness.net”拒绝访问.注意,那个主机名,我刚刚组成,但重要的是,无论你的是什么.否则它是通配时间,我不会做的.你可能会选择.
这很重要,因为主机名(hdm38.newyork.comcastbusiness.net)是我在mysql创建用户时使用的,而不是使用像%这样的通配符
我让上面的连接失败,但我注意到主机名在上面.你会在下面看到它.
快速检查清单
1)您的远程用户通过使用适当的用户,主机条目创建的帐户进行连接(查看select用户的输出,主机来自mysql.user命令1,2)
CREATE USER 'santa'@'hdm38.newyork.comcastbusiness.net' IDENTIFIED BY 'mypassword';
通过上面的命令,我们现在有了一个有机会进入的新用户.无法做任何事情.无法更改为db.基本上他们可以做像select now();
2)您已经执行了具有刷新权限的授权(至少前者)
GRANT ALL PRIVILEGES ON mydb123.* TO 'santa'@'hdm38.newyork.comcastbusiness.net';
我们使用上述命令的用户现在可以在mydb123数据库/模式中执行任何操作.在手册中探索上面的Grant命令,以便为您创建的用户微调访问权限.
如果您不熟悉mysql安全性,请在研究之前不要包含WITH GRANT OPTION.
对于步骤1和2,有些人会说上面的主机名为’%’.这意味着圣诞老人可以从任何主机连接.这是你的选择.开始紧张,一旦你到达某个地方就放松了,并对它进行了研究.
3)您修改了my.cnf并将bind-address从127.0.0.1或localhost更改为0.0.0.0
如果bind-address不是0.0.0.0,则只与ssh连接
4)你修改了my.cnf并有一个rem’d out line #skip-networking.即使您必须创建该行只是为了将其删除,请执行此操作.
3/4更改需要重启mysql守护进程
5)防火墙问题.因此,对于EC2,您需要对该实例有效的AWS安全组包括端口3306的开放
内容总结
以上是互联网集市为您收集整理的无法远程连接到EC2 MySQL安装全部内容,希望文章能够帮你解决无法远程连接到EC2 MySQL安装所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。