mysql访问被拒绝

我在Ubuntu上遇到了一些MySQL的问题。 刚安装了Apache,MySQL,PHP和phpMyAdmin。 phpMyAdmin给出:

#1045 Cannot log in to the MySQL server 

每次login尝试。 我已经尝试了用户名'root'和空密码,用户名'root'和密码'root',用户名'mysql'和密码'mysql',用户名'mysql'和密码'root'。

当我尝试在terminal中运行mysql时,我也得到了Access denied for user root@xxxx错误的Access denied for user root@xxxx

 mysql -u root 

要么

 mysql -u root -p 

要么

 sudo mysql 

或上面列出的任何组合。 当我尝试这些时,我也会被拒绝访问:

 mysqladmin -u root password secret sudo /etc/init.d/mysql stop 

甚至

 service mysql stop 

给出unknown instance

所以 – 任何人都可以告诉我如何进入我的数据库? 谢谢。

更新:

当我运行ps aux | grep mysql ps aux | grep mysql我看到sudo mysqld --skip-grant-tables

更新2:

重启后,我看到mysqld运行。 然后我尝试service mysql stop并获得以下内容:

 user@host:$ service mysql stop stop: Rejected send message, 1 matched rules; type="method_call", sender=":1.47" (uid=1000 pid=2267 comm="stop mysql ") interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")) 

跆拳道?

更新3:

我终于设法改变我的root密码通过使用这个命令:

 sudo dpkg-reconfigure mysql-server-5.1 

仍然不知道为什么我以前不能login(以前不记得设置任何密码)。 此外,不知道如果现在deamon将重新启动后正确运行…

好的,我认为首先要检查它是否真的在运行。 执行

ps aux | grep mysql

并检查一个包含mysqld的行。 如果有,它正在运行,你应该能够连接(更多下面)。 如果没有,那么你的服务没有运行,因此你可以连接或停止它。

它也有可能成为僵尸(虽然我从来没有见过)。 在这种情况下,你最简单的select可能是重新启动整个盒子。 我知道这听起来很激烈,但僵尸很难杀死(因此名称)。

如果服务正在运行,但仍然无法连接,那么MySQL可能不在监听。

默认情况下,MySQL只允许来自127.0.0.1的连接。 如果您尝试通过计算机的实际IP地址进行连接,则需要通知MySQL侦听该IP地址。 相关的行在my.cnf中,如下所示:

 bind-address = 127.0.0.1 

将地址修改为networking接口的IP地址,然后重新启动服务。 或者,也可以连接到127.0.0.1

这里的提示是:

目的地= “com.ubuntu.Upstart”

你的Upstart服务入口有一些类似的bug,阻止它正常启动/停止。 你在运行Lucid吗? 如果是这样, 请在这里寻求一些额外的帮助。 基本上,这听起来像一个包装错误。

ubuntu的“root”账号的密码(默认情况下root用户使用sudo的密码)和mysql的root密码一样,在安装的时候可能会提供这个密码。

如果您不知道密码并想重置密码,则可以执行以下操作

  1. 停止mysql服务mysql停止或/etc/init.d/mysql停止
  2. 启动mysqld_safe跳过授权表:

    mysqld_safe –skip-grant-tables –skip-networking&

  3. login,更改密码(在此模式下将禁用root密码)

    root @ vps:〜#mysql -u root -pinput密码:欢迎使用MySQL监视器。 命令以; 或\ g。 您的MySQL连接ID是4服务器版本:5.1.41-3ubuntu12.10-log(Ubuntu)

    input'help' 或'\ h'寻求帮助。 input'\ c'清除当前的input语句。

    mysql> update mysql.user set Password = Password(“foobar”)where user =“root”; 查询确定,3行受影响(0.02秒)行匹配:3更改:3警告:0

    mysql>刷新权限; 查询OK,0行受影响(0.03秒)

    4; 停止mysqld_safe进程,重启mysql,你应该知道有你的root密码。 有很多关于如何在Google上这样做的其他指南,只是谷歌“重置MySQL的root密码”