我绞尽脑汁想弄明白为什么每次我在 OSX 上全新安装 mysql 并导入数据库时,我重新启动 mysql 实例时都会提示消息:拒绝用户“root”@“localhost”访问(使用密码:是)。我将密码保留为默认的 root,这真是令人沮丧。我尽了最大努力确保没有其他 mysql 实例正在运行。活动监视器报告没有其他 mysql 实例,搜索 pid 时也没有出现其他实例。有人知道发生了什么吗?
答案1
当您导入包含 MySQL 数据库本身的 SQL 表时,可能会发生此错误,该数据库包含 MySQL 本身使用的底层架构,这可能会在尝试进入数据库时导致严重问题。确保您导入的 SQL 转储仅包含您希望导入的数据库,仅此而已。
答案2
在下列情况下可能会发生此错误:
使用错误的密码。由于您提到您已将密码默认为 root,请检查您是否已打开 CAPS 锁定。
如果您在选项文件中指定了错误的密码,则可能会发生这种情况。尝试使用以下方式登录:
mysqladmin --no-defaults -u root -p pass
您可能必须授予 root 访问权限。
停止 MySQL:
/etc/init.d/mysql stop
启动 MYSQL 跳过授权:
/usr/sbin/mysqld --skip-grant-tables --skip-networking &
登录:
mysql -u root
刷新权限:
FLUSH PRIVILEGES;
更新密码:
SET PASSWORD FOR root@'localhost' = PASSWORD('password'); UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';