所以我正在尝试使用我的 root 密码登录 phpMyAdmin(用户名:root 密码:******(,但是,我继续收到错误:
#2002 无法登录 MySQL 服务器
我很确定我知道 root 密码,因为我在 Mac OS X 上的终端中输入了以下行:
sudo /usr/local/mysql/support-files/mysql.server start
并提示了"Password:"
行。 我输入了密码,终端显示:
Starting MySQL...SUCCESS!
因此服务器启动了。 我不确定为什么相同的密码不适用于phpMyAdmin。
我尝试使用以下命令在终端中设置密码:
/usr/local/mysql/bin/mysqladmin -u root password *******
但是我收到输出:
/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
我已经尝试了几个网站,MySQL指令在这件事上毫无用处。我特别想在Mac OS X Lion上解决它。
更新
我一直在尝试重置root密码,并一直按照以下说明进行操作:http://www.coolestguyplanet.net/how-to-change-the-mysql-root-password/
但是,当我使用命令时:/usr/local/mysql/bin/mysqld_safe --skip-grant-tables
我收到以下输出:
111217 10:00:42 mysqld_safe Logging to '/usr/local/mysql/data/******-********-MacBook-Pro.local.err'.
111217 10:00:42 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
/usr/local/mysql/bin/mysqld_safe: line 107: /usr/local/mysql/data/********-********-MacBook-Pro.local.err: Permission denied
/usr/local/mysql/bin/mysqld_safe: line 144: /usr/local/mysql/data/*******-**********-MacBook-Pro.local.err: Permission denied
111217 10:00:42 mysqld_safe mysqld from pid file /usr/local/mysql/data/*********-********-MacBook-Pro.local.pid ended
/usr/local/mysql/bin/mysqld_safe: line 107: /usr/local/mysql/data/*******-*********-MacBook-Pro.local.err: Permission denied
**********-*********-MacBook-Pro:~ myname$
为什么我的许可会被拒绝?
在config.inc.php
将localhost
更改为127.0.0.1
键$cfg['Servers'][$i]['host']
。
看看这个教程
确保您的密码正确,如果需要,您可以使用此密码进行更改
/usr/local/mysql/bin/mysqladmin -u root -p password
当它要求输入密码时,不要输入任何内容,只需按回车键即可。然后它会要求您输入新密码,然后确认。完成。
然后,您还需要执行此操作。
sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
- 将
phpMyAdmin/config.sample.inc.php
更改为phpMyAdmin/config.inc.php
; - 在
config.inc.php
中,将localhost
改为127.0.0.1
; phpMyAdmin/setup/frames/config.inc.php
中还有另一个config.inc.php
,请忽略它。
我遇到了这个问题,但我解决了这个问题。我刚刚为 mysql 创建了一个新用户,然后您可以登录到您的 phpmyadmin。
执行以下操作:
mysql -u root -p
,然后输入您的密码:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'enter your password just right here';
,然后为您的新用户设置所有权限。
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
然后
FLUSH PRIVILEGES;
谢谢。
当它说(using password: NO)
时,这意味着它没有收到密码。
使用/usr/local/mysql/bin/mysqladmin -u root -p *******
最好的方法是:
在 Ubuntu Linux 上设置/更改/重置 MySQL 根密码。在终端中输入以下行。
停止 MySQL 服务器。
sudo /etc/init.d/mysql stop
启动 mysqld 配置。
sudo mysqld --skip-grant-tables &
以根用户身份登录 MySQL。
mysql -u root mysql
将YOURNEWPASSWORD替换为您的新密码!
UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE User='root'; FLUSH PRIVILEGES; exit;
希望这对其他人有所帮助。它对我有用!!
除了 Sepp 的回答,我还想指出,如果你已经将 MySQL 端口设置为另一个端口(即 3307(,你可以像这样附加端口号:
$cfg['Servers'][$i]['host'] = '127.0.0.1:3307';
到config.inc.php
文件
我希望任何使用不同端口号的人都能从我的答案中受益
并检查这个 mysql 配置文件 -
[mysqld]
default_password_lifetime=0
https://dev.mysql.com/doc/refman/5.7/en/password-expiration-policy.html