我正在设置mysqladmin密码,如下所示:
mysqladmin -u root -hec2-50-17-36-83.compute-3.amazonaws.com password my_password
这返回:
mysqladmin: connect to server at 'ec2-50-17-36-83.compute-3.amazonaws.com' failed error: 'Unknown MySQL server host 'ec2-50-17-36-83.compute-3.amazonaws.com' (1)' Check that mysqld is running on ec2-50-17-36-83.compute-3.amazonaws.com and that the port is 3306. You can check this by doing 'telnet ec2-50-17-36-83.compute-3.amazonaws.com 3306'
如何检查mysqld是否正在运行,更好的是,我该如何解除它?
谢谢!
迄今为止:
我login到远程数据库服务器(一个EC2实例),并执行此操作:
vi /etc/mysql/my.cnf
选项skip-networking已经被注释掉,以及绑定地址。 因此,我取消了绑定地址的注释,并添加了远程服务器的IP地址,然后重新启动了mysqld。
这没有用。 所以我尝试了远程数据库服务器。 这没有用。
在远程数据库服务器(EC2实例)上,唯一可以执行的mysqld命令是mysqld ,没有选项。 我只是假设这实际上正确地重新设置,因为在继续之前它挂在命令上几分钟。
运行这个netstat -nl | grep :3306 远程数据库服务器上的netstat -nl | grep :3306返回:
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
不知道这是相关的,但远程数据库服务器上不存在/etc/init.d/mysqld。 但是该命令确实存在于/ usr / sbin / mysqld中。
它已经说过:
$ telnet ec2-50-17-36-83.compute-3.amazonaws.com 3306
如果无法连接,请确保主机名可以parsing到正确的IP地址:
$ nslookup ec2-50-17-36-83.compute-3.amazonaws.com
如果是这样,ssh到您的服务器,并启动它,如果它还没有启动:
$ ps -ef | grep mysql $ sudo /etc/init.d/mysqld start
UPDATE
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
这意味着你的MySQL服务器只能监听localhost,禁止远程访问。 如果你真的想允许,请按照以下步骤操作:
/etc/my.cnf文件并将bind-address更改为您的公有IP skip-networking选项(在开始处放一个# ) /etc/init.d/mysqld restart grant all privileges on foo.* to 'user'@'IP' identified by 'password'; :将grant all privileges on foo.* to 'user'@'IP' identified by 'password';