mysqld没有运行。 我该如何开始呢?

我正在设置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,禁止远程访问。 如果你真的想允许,请按照以下步骤操作:

  • SSH到您的服务器
  • 打开/etc/my.cnf文件并将bind-address更改为您的公有IP
  • 注释掉skip-networking选项(在开始处放一个#
  • 重新启动mysqld: /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';