访问被拒绝MYSQL错误1045

时间:2012-11-20 18:57:08

标签: mysql macos terminal osx-mountain-lion mysql-python

我刚刚获得了一个新的macbook pro(OS X 10.8.2)并试图在其上设置mysql。到目前为止,我已经能够安装它,但我无法获得root用户访问权限(或任何用户)。我计划在Python上使用它,在我的另一台计算机上我只使用MYSQL(没有MAMP),我更喜欢保持这种方式。

作为参考,我做了以下事情:

$ alias mysql=/usr/local/mysql/bin/mysql $ sudo /Library/StartupItems/MySQLCOM/MySQLCOM start $ alias mysqladmin=/usr/local/mysql/bin/mysqladmin

当我输入mysqlmysql -u root -p时,它会给我这个:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

ERROR 1045 (28000): Access denied for user 'jmitch'@'localhost' (using password: NO) 取决于我使用的措辞

MYSQL正在我的系统首选项中运行。谢谢你的帮助。

4 个答案:

答案 0 :(得分:22)

也许更新包更新程序覆盖了root密码。

要恢复它:

停止mysqld deamons。

$ sudo service mysqld stop

转到mysql / bin目录

$ cd /usr/bin

使用此选项启动mysql守护程序:

$ sudo mysqld_safe --skip-grant-tables

打开另一个终端并打开一个mysql会话来执行此操作:

$ mysql

mysql> use mysql;

see Note1 below for next line.
mysql> UPDATE user SET password=PASSWORD('YOUR_NEW_PASSWORD_HERE') WHERE user = 'root';

mysql> exit;

现在杀死mysqld_safe进程并正常重启mysqld:

$ sudo service mysqld start

注1: password是版本5.7之前的表mysql.user中的列名。之后变为authentication_string。相应地更改您的更新声明。

答案 1 :(得分:6)

在Mac OSX 10.9 Mavericks上我使用了' mysql.server' support-files目录中的脚本,而不是mysqld_safe和服务脚本。

$sudo ./mysql.server stop
$sudo ./mysql.server start --skip-grant-tables
$ mysql
mysql> use mysql;
mysql> UPDATE user SET password=PASSWORD('YOUR_NEW_PASSWORD_HERE') WHERE user = 'root';
mysql> exit;
$sudo ./mysql.server stop
$sudo ./mysql.server start

答案 2 :(得分:2)

我在尝试通过Mountain Lion上的终端访问MAMP的MySQL时遇到了类似的问题。

--no-defaults标志为我解决了它。

/Applications/MAMP/Library/bin/mysql --no-defaults -u root -proot -h localhost

答案 3 :(得分:1)

我想补充一点,对于MySQL 5.7而言,仅仅更改authentication_string列并不起作用。这是因为MySQL从未实际使用这些值进行根身份验证,它使用插件。据我所知,这个插件验证你也是主机帐户的root(所以你必须sudo mysql -u root)。

我能够让这个工作的唯一方法是运行:

Alamofire.request

还应该注意5.7的官方MySQL文档从未提到过这一点。按照这封文件写到这封信就没那么了。