web-dev-qa-db-ja.com

MYSQL ERROR1045でアクセスが拒否されました

新しいmacbookpro(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_

mysqlまたは_mysql -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は私のシステム環境設定で実行されています。ご協力ありがとうございました。

9
jmitchel3

パッケージを更新すると、アップデーターがルートパスワードを上書きした可能性があります。

それを復元するには:

Mysqlddeamonsを停止します。

$ 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になりました。それに応じて更新ステートメントを変更します。

22
Drew

mac OSX 10.9 Mavericksでは、mysqld_safeおよびserviceスクリプトの代わりに、support-filesディレクトリの「mysql.server」スクリプトを使用しました。

$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
6
remkohdev

MountainLionのターミナルからMAMPのMySQLにアクセスしようとしても同様の問題が発生していました。

--no-defaultsフラグは私のためにそれを解決しました。

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

MySQL 5.7の場合、authentication_string列を変更するだけでは機能しないことを追加したいと思います。これは、MySQLが実際にroot認証にこれらの値を使用することはなく、プラグインを使用するためです。私が知る限り、このプラグインは、あなたがホストアカウントのrootでもあることを確認します(したがって、Sudo mysql -u rootにする必要があります)。

これを機能させることができた唯一の方法は、これを実行することでした。

UPDATE mysql.user
SET authentication_string=PASSWORD(''), plugin=''
WHERE mysql.user = 'root';

5.7の公式MySQLドキュメントではこれについて言及されていないことにも注意してください。この文書を手紙に従えば、どこにも行き着きません。

1
user1283068