我使用全新安装了 MySQL ( 5.0.75-0ubuntu10.5
) apt-get
。在安装过程中,系统提示我输入我设置的 MySQL root 密码。从那时起,我一直尝试使用 root 帐户登录,但无济于事。我总是收到以下消息:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
我已经关注指示以便将 root 密码重置为其他密码。我注意到 root 用户未出现在 mysql.user 表中。我在那里拥有的唯一用户是debian-sys-maint
。
手动启动 MySQL 服务器时,我得到以下信息:
sudo /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql -- user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock
101110 13:08:59 InnoDB: Started; log sequence number 0 43655
101110 13:08:59 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.75-0ubuntu10.5' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)
启动 MySQL 服务器时,syslog 中会出现以下内容:
Nov 10 13:11:49 spiros mysqld_safe[14705]: started
Nov 10 13:11:49 spiros mysqld[14709]: 101110 13:11:49 InnoDB: Started; log sequence number 0 43655
Nov 10 13:11:49 spiros mysqld[14709]: 101110 13:11:49 [Note] /usr/sbin/mysqld: ready for connections.
Nov 10 13:11:49 spiros mysqld[14709]: Version: '5.0.75-0ubuntu10.5' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)
Nov 10 13:11:50 spiros /etc/mysql/debian-start[14745]: Upgrading MySQL tables if necessary.
Nov 10 13:11:50 spiros /etc/mysql/debian-start[14757]: Looking for 'mysql' as: /usr/bin/mysql
Nov 10 13:11:50 spiros /etc/mysql/debian-start[14757]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Nov 10 13:11:50 spiros /etc/mysql/debian-start[14757]: This installation of MySQL is already upgraded to 5.0.75, use --force if you still need to run mysql_upgrade
Nov 10 13:11:50 spiros /etc/mysql/debian-start[14759]: Checking for insecure root accounts.
Nov 10 13:11:50 spiros /etc/mysql/debian-start[14763]: Triggering myisam-recover for all MyISAM tables
多次重置密码并清除权限后我仍然无法登录。
有任何想法吗?
答案1
我也为此苦苦挣扎了几个小时,但 Spiros 的答案对我很有帮助 - 之后我可以使用
mysql -uroot -p [enter]
(这意味着密码为空 - 然后我通过运行重置 root 密码
sudo dpkg-reconfigure mysql-server-5.1
它会提示输入 root 密码。然后我可以使用 root 用户和密码像上面一样登录。安装时没有 root 用户,这很奇怪...(但现在可以正常工作了,感谢 Spiros!)
答案2
我在 VPS(Gigatux)上安装 Debian 时也遇到了同样的问题。命令“dpkg-reconfigure mysql-server-5.1”允许我设置/重置 root MySQL 密码,但身份验证仍然会失败,并显示错误“拒绝用户‘root’@‘localhost’访问”
最终,我的问题是由于在安装 MySQL 时没有对 /tmp 文件夹设置正确的权限而导致的。我的 /tmp 文件夹的权限是“drwxr-xr-x”,而它应该是“drwxrwxrwt”。即使设置了正确的权限,我也无法修复该问题,我必须在安装 MySQL 之前设置权限。
我已经详细记录了我的经历http://www.craigdodd.co.uk/2012/01/missing-root-account-in-mysql/如果有人感兴趣的话。