エラー1045(28000):ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:YES)


184

私はプログラミングの代わりに主に電源システムをいじる電気技師です。最近、マニュアルに従ってUbuntuにソフトウェアスイートをインストールしています。mySQL実は全然知りません。Ubuntuで次のインストールを実行しました。

sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp

それから私はします

me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"

次のエラーメッセージが表示されました。

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

どうすれば修正して続行できますか?


1
これは厳密にはプログラミングに関係していないようです。SuperUserへの移行のフラグを立てました
UliKöhler2014

将来の訪問者も、ここで説明されているいくつかの原因を確認することを忘れないでください。dev.mysql.com
doc

回答:


155

注:MySQL 5.7以降の場合、@ Lahiruからこの質問への回答を参照してください。これには、最新の情報が含まれています。

MySQL <5.7の場合:

デフォルトのrootパスワードは空白(つまり、空の文字列)rootです。したがって、次のようにログインできます。

mysql -u root

インストール後に明らかにrootパスワードを変更する必要があります

mysqladmin -u root password [newpassword]

ほとんどの場合、DBを広範囲に使用する前に、個々のユーザーアカウントもセットアップする必要があります。


5
@FarticlePilter -pフラグはパスワードを指定するため、ルートパスワードを変更した後は、次のようにしますmysql -u root -p[newpassword]< [filename]あなたが提供するユーザーの資格情報を経由して指定されたパスにSQLファイルを実行するために、STDの入力を使用しています。
マイクブラント

27
言われたmysqladmin -u root password abc1234通りに試しましたが、わかりましたmysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'。どうもありがとうございます!
Sibbs Gambling

2
@Kanagarooこの質問では、OPは、MySQLを初めてインストールした後、MySQLコマンドラインクライアント経由でアクセスしようとしたと述べています。初めてアクセスしたようです。
マイクブラント2014

18
実際、mysqlコミュニティサーバー5.7では、インストール時にデフォルトのrootパスワードがランダムに生成されます。/var/log/mysqld.logで「一時的なパスワード」を表す行を確認してください。いじりの時間を節約できます。
Phil

1
@BraianMellorこれは、Ubuntuのデフォルト(インストール後)のルートパスワードが空白(パスワードなし)であるMySQL <5.7の問題を解決します。元の質問では、投稿者はroot / rootを使用しようとしました。問題は、パスワードの紛失、パスワードの変更などに関するものではありませんでした。MySQLの新しいバージョンの場合、ユーザーがランダムに生成されたルートパスワードを確認するにはエラーログを調べる必要があるため、私が参照した他の回答は正しいものです。
マイクブラント2017

114

この文を実行することでこの問題を解決することができました

sudo dpkg-reconfigure mysql-server-5.5

これはルートパスワードを変更します。


10
ちょうど私が必要としたもの... しかし誰もがサーバーのバージョン5.5を持っているわけではありません。dpkg --get-selections | grep sqlバージョンの取得に使用
Balmipour

1
@Balmipour Rhel 6.xでSQLバージョンをチェックするための同等のコマンドは何か
PrathamN

1
@Divz Rhel / centosでmysqlサーバーを再構成するためのコマンドは何か
PrathamN

@PrathamN red hadを使用したことはありませんが、「red hat check packagesバージョン」をグーグルすると、次のようなコマンドが得られます。SQLパッケージのみをフィルターにyum list installed追加| grep sqlします。
バルミプール2015

1
Mac OS Xでこのコマンドを実行すると、次のエラーが発生しますsudo: dpkg-reconfigure: command not found。なにか提案を?
mOna 2016年

90

パスワードをリセットする必要があります!mac osx(テスト済みで動作)とubuntuの手順

MySQLを停止します

sudo service mysql stop

または

$ sudo /usr/local/mysql/support-files/mysql.server stop

セーフモードで起動します。

$ sudo mysqld_safe --skip-grant-tables --skip-networking

(上の行はコマンド全体です)

これは、プロセスが完了するまで実行中のコマンドになるため、別のシェル/ターミナルウィンドウを開き、パスワードなしでログインします。

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

@IberoMediaのコメントに従って、新しいバージョンのMySQLでは、フィールドは次のように呼び出されauthentication_stringます。

mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';

次を使用してMySQLを起動します。

sudo service mysql start

または

sudo /usr/local/mysql/support-files/mysql.server start

新しいパスワードは「password」です。


3
そうではありません!@Divzの答えはより安全です。--skip-grant-tablesに関するドキュメントの引用: これにより、誰もがパスワードなしですべての特権で接続できるようになります [...]これは安全ではないため--skip-grant-tables、と組み合わせて使用すると、--skip-networkingリモートクライアントが接続できないようにします。ああ、また、これは私にはうまくいきませんでした。それが私がここに来た理由です:p
Balmipour

1
あなたがそのよう行くなら、はい。それは私にとってはうまくいきませんでした、そして@Divzの答えに従う--ことは私にとってはるかに簡単なようです、とにかく私が提案するのはdpkg --get-selections | grep mysql-server-あなたの正確なMySQLバージョンを取得するために使用し、次にsudo dpkg-reconfigure mysql-server-5.x(replace 5 .xはサーバーのバージョン、btw)です。私はこの精度で@Divzの回答にコメントしましたが、いくつかの「感謝」コメントによって覆い隠されています。
Balmipour

4
update user set authentication_string = password( '1111')where user = 'root';
Dejell

2
これは実際に機能しました...他の解決策でも同じエラーが発生しました。
eddy147 2017年

2
MySQL 5.7.6以降、パスワード列の名前は「authentication_string」に変更されました。詳細は次のとおり
id=

55

これは古い質問ですが、誰かの役に立つかもしれないと思います。私は最近同じ問題に直面しましたが、私の場合、私のパスワードは大丈夫だと思いますが、同じエラーが発生し続けました。私はたくさんの解決策を試しましたが、それでも何も役に立たなかったのでこれを試しました

mysql -u root -p 

その後、このようなパスワードを要求します

Enter password: 

次に、使用したパスワードを入力しました。それで全部です


3
これが何日もの研究の後に役に立ったことはおかしい。
girish_vr 2018

@girish_vrを知ってよかった
XY-JOE

私のために働いた!私のmysql-serverバージョンは次のとおりです:サーバーバージョン:8.0.13 MySQL Community Server-GPL
kaspiotr 2018年

これは役に立ちましたが、MySQL側では非常に愚かなので、まだ信じられません。
wscourge

39

サーバーの最初の起動時に、サーバーのデータディレクトリが空の場合、次のことが起こります。

  • サーバーが初期化されます。
  • SSL証明書とキーファイルがデータディレクトリに生成されます。
  • validate_passwordプラグインがインストールされ、有効になっています。
  • スーパーユーザーアカウント「root」@「localhost」が作成されます。スーパーユーザーのパスワードが設定され、エラーログファイルに保存されます。

それを明らかにするには、次のコマンドを使用します。

shell> sudo grep 'temporary password' /var/log/mysqld.log

生成された一時パスワードを使用してログインし、スーパーユーザーアカウントのカスタムパスワードを設定することにより、rootパスワードをできるだけ早く変更します。

shell> mysql -u root -p #Login to root user with some password

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!'; 

16
これは有望に見えましたが、私にはうまくいきません。実行すると、次のようsudo grep 'temporary password' /var/log/mysqld.logになります/var/log/mysqld.log: No such file or directory
Eric Hepperle-CodeSlayer2010

4
お試しくださいsudo grep 'temporary password' /var/log/mysql/error.log。@Lahiruソリューションがうまくいきました。
アルテミシア

17
sudo grep 'temporary password' /var/log/mysql/error.logを試しましたが、何も返されません。
学習者

2
お試しくださいshell> sudo grep 'password' /var/log/mysql/error.log。私のために働いたが、私は得る:root @ localhostは空のパスワードで作成されます!--initialize-insecureオプションをオフにすることを検討してください。私のmysqlバージョンは次のとおりです:Linux on x86_64のVer 8.0.13(MySQL Community Server-GPL)
kaspiotr

1
@EnginYilmaz問題がmysqlにアクセスできないことであるときに、なぜmysqlコマンドを提案するのですか?
R-obert

34

問題がまだ存在する場合は、パスを強制的に変更してみてください

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

新しいMySQL rootユーザーパスワードを設定する

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

MySQLサーバーを停止します。

/etc/init.d/mysql stop

MySQLサーバーを起動してテストします。

mysql -u root -p

1
ありがとうございました。ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)私のサーバーも悩まされていました。私がやったまで「mysqld_safeが」また失敗した「killallをmysqldの」AFTERあなたのステップ1
マルコス

そうではありません!@Divzの答えはより安全です。--skip-grant-tablesに関するドキュメントの引用: これにより、誰もがパスワードなしですべての特権を使用して接続できるようになります [...]これは安全ではないため、[...] --skip-grant-tablesと組み合わせて使用すると、--skip-networkingリモートクライアントが接続できないようにします。ああ、また、これは私にはうまくいきませんでした。それが私がここに来た理由です:p
Balmipour

2
その私を与える:ERROR 1054(42S22):不明な列'パスワード' 'をフィールドリスト'に
MDを。Mohiuddin Ahmed

@Anshuで回答を確認してください

1
@ MD.MohiuddinAhmed mysql-serverの新しいバージョンを使用している必要があります。この回答を参照してください:stackoverflow.com/a/31122246/6242649
Udayraj Deshmukh

32

パスワードが不明な場合に発生します。

忘れたときにパスワードを変更する手順:

  1. MySQLサーバーを停止します(Linuxの場合):

    sudo systemctl stop mysql
  2. 権限テーブルをロードしたり、ネットワークを有効にしたりせずにデータベースを起動します。

    sudo mysqld_safe --skip-grant-tables --skip-networking &

    このコマンドの最後のアンパサンドは、このプロセスを
    バックグラウンドでするため、ターミナルを引き続き使用して#mysql -u rootを実行できます。パスワードは要求されません。

    以下のようなエラーが発生した場合:

    2018-02-12T08:57:39.826071Z UNIX
    ソケットファイルのmysqld_safeディレクトリ '/ var / run / mysqld' が存在しません。mysql -u rootエラー2002(HY000):ソケット
    '/var/run/mysqld/mysqld.sock'(2)[1] +終了1を介してローカルMySQLサーバーに接続できません

  3. MySQLサービスディレクトリを作成します。

    sudo mkdir /var/run/mysqld

    MySQLユーザーにサービスディレクトリへの書き込み権限を付与します。

    sudo chown mysql: /var/run/mysqld
  4. ステップ2で同じコマンドを実行して、mysqlをバックグラウンドで実行します。

  5. mysql -u rootを実行すると、パスワードを入力せずにmysqlコンソールが表示されます。

    これらのコマンドを実行する

    FLUSH PRIVILEGES;

    MySQL 5.7.6以降の場合

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

    MySQL 5.7.5以前の場合

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

    ALTER USERコマンドが機能しない場合は、以下を使用します。

    UPDATE mysql.user SET authentication_string = PASSWORD('new_password')     WHERE User = 'root' AND Host = 'localhost';

今すぐ終了

  1. 手動で開始したインスタンスを停止するには

    sudo kill `cat /var/run/mysqld/mysqld.pid`
  2. mysqlを再起動します

    sudo systemctl start mysql

2
私の場合、ステップ6を次のように変更する必要がありますsudo kill `sudo cat /var/run/mysqld/mysqld.pid`
kolunar '29

1
これは私のために働いたものです。手順5で、1。USERを使用します。2.パスワードを変更するには、ユーザーを更新します。
ビクラム

1
これが最善の解決策であることがわかりました。MBP '15モデルのmacOS Mojaveで「5.7.26 MySQL Community Server(GPL)」を使用します。Mysqlをシステム設定から停止し、手順2と手順5を実行する必要がありました。次に、ps -ef | grep mysql。
cspider

12

私はこの非常に迷惑な問題に遭遇し、うまくいかない多くの答えを見つけました。私が遭遇した最良の解決策は、mysqlを完全にアンインストールして再インストールすることでした。再インストール時にrootパスワードを設定すると、問題が解決しました。


sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

このコードを他の場所で見つけたので、信用しません。しかし、それは機能します。アンインストール後にmysqlをインストールするには、デジタルオーシャンに優れたチュートリアルがあると思います。これについて私の要点を確認してください。
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096


12

Ubuntu-16.04を使用しています:インストールされたmysql-5.7。同じ問題が発生しました:rootユーザーのログインが拒否されました。

以下の手順を試してみました:

  1. dpkg --get-selections | grep mysql (mysqlのバージョンを取得するため)。

  2. dpkg-reconfigure mysql-server-5.7

  3. mysql -u root -p

-pを指定しないと、パスワードを要求するプロンプトが表示されません。いったん入ったら、次の手順でパスワードを持つユーザーを作成できます。

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

ルートを終了し、上記で指定したユーザーからログインします。

mysql -u <your_new_username> -p

何らかの理由で、まだmysqlと入力しても機能しません。とにかく。使用することを習慣にすることをお勧めしますmysql -u <name> -p



8

他のどの回答もうまくいかず、このエラーを受け取った場合:

mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+  Exit 1                  sudo mysqld_safe --skip-grant-tables

パスワードをリセットするまで、次のコマンドを順番に実行します。

# Stop Your Server First
sudo service mysql stop

# Make MySQL service directory.
sudo mkdir /var/run/mysqld

# Give MySQL permission to work with the created directory
sudo chown mysql: /var/run/mysqld

# Start MySQL, without permission and network checking
sudo mysqld_safe --skip-grant-tables --skip-networking &

# Log in to your server without any password.
mysql -u root mysql


# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';

#if you omit (AND Host='localhost') section, it updates the root pass regardless of its host

FLUSH PRIVILEGES;
EXIT;

#kill mysqld_safe process
sudo service mysql restart

#Now you can use your new password to login to your Server
mysql -u root -p

#take note for remote access you should create a remote user and then grant all privileges to that remote user

これは、Ubuntu 18.04 LTSのmysql 5.7の正解でもあります。ありがとう
Dhiraj

すべてのリモートアドレスの場合:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf-> bind-address = 0.0.0.0
Mehdi

7

MySQLをrootユーザー$SUDO)としてインストールして、同じ問題
が発生しました。

  1. $ sudo cat /etc/mysql/debian.cnf

これにより、詳細が表示されます

# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock

上記は、パスワードをプロンプトで使用するための(GUx0RblkD3sPhHL5)ものです。

  1. mysql -u debian-sys-maint -p Enter password:
    ここでパスワードを提供します(GUx0RblkD3sPhHL5)。

  2. exitMySQLとログインから再びれたまま

    mysql -u root -p Enter password:
    新しいパスワードを入力してください。以上で、今後使用するための新しいパスワードを取得しました。

それは私のために働きました、あなたも助けてくれることを願っています!


6

公式ドキュメントをお読みください:Mysql:ルートパスワードをリセットする方法

端末にアクセスできる場合:

MySQL 5.7.6以降:

$ mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5以前:

$ mysql
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

1
与える:エラー1131(42000):MySQLを匿名ユーザーとして使用していて、匿名ユーザーはパスワードを変更できません
MD。Mohiuddin Ahmed

1
それは正常です。あなたのユーザーは匿名です。実行する必要があります> mysql -u {your_username}
d.danailov

3

Mac OSXでmysql-5.7.12-osx10.11-x86_64.dmgを使用しています

インストールプロセスでは、rootユーザーの一時パスワードが自動的に設定されます。パスワードを保存してください。パスワードを回復することはできません。

指示に従ってください

  1. に行く cd /usr/local/mysql/bin/
  2. 一時的なパスワードを入力します(「tsO07JF1 => 3」のようになります)
  3. mysql>プロンプトが表示されます。
  4. 実行しSET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');ます。パスワードを設定する場合は、「root」コマンドを使用します。SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
  5. 走る ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  6. 走る exit
  7. 走る ./mysql -u root -p
  8. パスワードを入力してください。私の場合、「root」と入力します(引用符は不要)
  9. それで全部です。

便宜上、"/usr/local/mysql/bin"PATHに追加する必要があります

これで、どこからでも./mysql -u root -pパスワードを入力してから入力できるようになり、mysql>プロンプトが表示されます。

それが役に立てば幸い。


3

答えはばかげているように聞こえるかもしれませんが、何時間も無駄にした後、これが私がそれを機能させた方法です

mysql -u root -p

エラーメッセージが表示された

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

正しいパスワードを入力していても(mysqlを最初にインストールしたときに取得した一時的なパスワード)

パスワードプロンプトが点滅しているときにパスワード入力すると、うまくいきました


2

問題がまだ存在する場合は、パスを強制的に変更してみてください

MySQLサーバーを停止します(Linuxの場合):

/etc/init.d/mysql stop

MySQLサーバーを停止します(Mac OS X):

mysql.server stop

mysqld_safeデーモンを--skip-grant-tablesで起動します

mysqld_safe --skip-grant-tables &
mysql -u root

新しいMySQL rootユーザーパスワードを設定する

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

MySQLサーバーを停止します(Linuxの場合):

/etc/init.d/mysql stop

MySQLサーバーを停止します(Mac OS X):

mysql.server stop

MySQLサーバーサービスを開始し、テストしてrootでログインします。

mysql -u root -p

1

デフォルトではパスワードはnullになるため、以下の手順でパスワードを変更する必要があります。

mysqlに接続する

root#mysql

mysqlを使用する

mysql> update user set password = PASSWORD( 'root')where User = 'root'; 最後に、特権をリロードします。

mysql>特権をフラッシュします。mysql>終了



1

Ubuntu 16.04(MySQLバージョン5.7.13)では、以下の手順で問題を解決できました。

  1. セクションB.5.3.2.2のルートパスワードのリセット:UnixおよびUnixライクなシステムMySQL 5.7リファレンスマニュアルの指示に従ってください。

  2. #sudo mysqld_safe --init-file = / home / me / mysql-initを試したところ、失敗しました。エラーは/var/log/mysql/error.logにありました

    2016-08-10T11:41:20.421946Z 0 [注] init_file '/ home / me / mysql / mysql-init'の実行が開始されました。2016-08-10T11:41:20.422070Z 0 [エラー] / usr / sbin / mysqld:ファイル '/ home / me / mysql / mysql-init'が見つかりません(エラーコード:13-権限が拒否されました)2016-08-10T11: 41:20.422096Z 0 [エラー]中止

mysql-initのファイル権限は問題ではありませんでした。apparmor権限を編集する必要があります

  1. #sudo vi /etc/apparmor.d/usr.sbin.mysqldで編集

    ....
      /var/log/mysql/ r,
      /var/log/mysql/** rw,
    
    
    # Allow user init file
      /home/pranab/mysql/* r,
    
      # Site-specific additions and overrides. See local/README for details.
      #include <local/usr.sbin.mysqld>
    }
  2. #sudo /etc/init.d/apparmor reloadを実行します

  3. mysqld_safeを再起動して、上記のステップ2を試してください。/var/log/mysql/error.logをチェックして、エラーがなく、mysqldが正常に開始されていることを確認します

  4. #mysql -u root -pを実行します

    パスワードを入力する:

mysql-initで指定したパスワードを入力します。これでrootとしてログインできるはずです。

  1. #sudo mysqladmin -u root -p shutdownによってmysqld_safeをシャットダウンします。

  2. #sudo systemctl start mysqlによってmysqldを通常の方法で開始します


1

MySQLをDockerイメージの一部として(たとえば、ポート6606で)、Ubuntuのインストール(ポート3306で)でポートを指定するだけでは不十分な場合:

mysql -u root -p -P 6606

スローされます:

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

デフォルトでローカルホストに接続しようとしているため、ローカルIPを指定すると問題が修正されます。

mysql -u root -p -P 6606 -h 127.0.0.1

0

最近のMySQLバージョンではpasswordmysql.userテーブル。

したがって、実行する必要がありますALTER USER。この1行のコマンドをファイルに入れます。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

そしてそれをinitファイルとして(rootまたはmysqlユーザーとして)実行します

mysqld_safe --init-file=/home/me/mysql-init &

起動するには、MySQLサーバーを停止する必要がありますmysqld_safe

また、この初期化ファイルを読み込むためのapparmor権限に問題がある可能性があります。詳細はこちら https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql


0

まだパスワードを設定していない場合は、を実行mysql -urootしてください。


0

Macの場合、インストール時に指定した最初のパスワードでのログインに問題がある場合は、単にmysqlプロセスを強制終了してからもう一度試すことができます。

したがって:1-次のコマンドを実行して、mysqlのPIDを見つけます。

ps -aef | grep mysql | grep -v grep

2-プロセスを強制終了します。

kill -15 [process id] 

次に、次のコマンドを使用して初期パスワードでログインできます。

mysql -uroot -p

パスワードの入力を求められます。初期パスワードを入力するだけです。


0

私は同様の問題がありました:

エラー1045(28000):ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:NO)

しかし、私の場合、原因は本当にばかげていました。Word文書からコマンドをコピーしましたが、ハイフンにASCII 2Dコードがなく、Unicode E28093があるという問題がありました。

進入禁止:

mysql -u root pxxxx

正しい方法:

mysql -u root -pxxxx

どちらも同じに見えますが、同じではありません(パスワードを置き換えて、コピーして貼り付けてください)。

このタイプのエラーに直面した場合は、コピーして貼り付けるのではなく、コマンドを入力することをお勧めします。


0

@Lahiruの正解を試しましたが、macOS MojaveのMySQLサーバーバージョン8.0.16(コミュニティ)では動作しませんでした。

上記のSameer Choudharyの指示に従い、いくつかの調整を行うことで、rootパスワードを変更し、localhostからのrootアクセスを有効にすることができました。

更新:homebrewを使用してMac OSにインストールする場合、これらのすべては必要ありません: "brew install mysql"


0

Ubuntu 18.04 LTSとMysql Serverバージョン5.7.27-0ubuntu0.18.04.1(Ubuntu)でこの問題が発生しました。

私の解決策は(ルートとして実行されているsudo -i

mysql <<-EOSQL
  use mysql;
  update user set plugin="mysql_native_password" where User='root';
  FLUSH PRIVILEGES ;
EOSQL

mysqladmin -u root password new_pw

0

私も同じ問題に遭遇しました、私がしたことは

1)コマンドを開きます

2)C:\ Program Files \ MySQL \ MySQL Server 8.0 \ bin>(MySQL Server 8.0はインストールしたサーバーによって異なる場合があります)に移動します。

3)次に、次のコマンドを入力しますmysql -u root -p

4)パスワードの入力を求めます...インストール中に入力したパスワードが空白に変更される場合があるため、単にEnterキーを押します。

今、あなたは単にデータベースにアクセスすることができます

このソリューションは、Windowsプラットフォームで私のために働いた


0

上位の回答(mysqladmin付き)はmac 10.15で機能しましたが、ubuntuでは機能しませんでした。次に、mysqlのセーフスタートを含む他のオプションの多くを試しましたが、どれも機能しませんでした。したがって、新しい応答を追加します。

少なくとも私が5.7.28-0ubuntu0.18.04.4答えを得たバージョンについては欠けていましたIDENTIFIED WITH mysql_native_password。5.7.28は現在のLTSのデフォルトであるため、ほとんどの新しいシステムのデフォルトになるはずです(20.04 LTSが出るまで)。

見つかりました:https : //www.digitalocean.com/community/questions/can-t-set-root-password-mysql-serverが適用されました

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';

これは機能します。


0

私が直面したエラーは

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

実行中のポートに問題がありました。

デフォルトではmysqlが実行されています port 3306ます。

あなたは実行することでそれを確認することができます

  • 32ビットシステムの場合:

    sudo /opt/lampp/manager-linux.run

  • 64ビットシステムの場合:

    sudo /opt/lampp/manager-linux-x64.run

そしてconfigureボタンをクリックしてください

xamppコントロールパネル

私の場合、ポートは3307で実行されていて、使用したコマンドは

mysql -u root -p -P 3307 -h 127.0.0.1

0

私の場合、私は合格しようとしていました コンテナへのコマンド。その場合、最初の単語だけが解釈されました。実行していないことを確認します。

mysql

とは対照的に:

mysql -uroot -ppassword schemaname

おそらく引用してみてください:

'mysql -uroot -ppassword schemaname'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.