質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.34%

mysql -u rootがエラーとなる( Authentication plugin 'caching_sha2_password' cannot be loaded: )

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 5,122

score 51

前提・実現したいこと

mysql -u rootを行うとエラーメッセージが出てログインができない
 

発生している問題・エラーメッセージ

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/Cellar/mysql@5.6/5.6.43/lib/plugin/caching_sha2_password.so, 2): image not found

 mysql --version

mysql  Ver 14.14 Distrib 5.6.43, for osx10.14 (x86_64) using  EditLine wrapper

試したこと

PATHの設定は行いました。

echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.bash_profile


my.cnfを削除するため下記をコマンドを実行後に再度バージョン指定(brew search mysql@5.6)でインストール後、brew services start mysql@5.6を実行してからmysql -u rootを行っても表題の結果です。

my.cnfを削除するためのコマンド(rmの前にsudoが付いてましたが外して実行してます。)

 rm -rf /usr/local/Cellar/mysql*
 rm -rf /usr/local/bin/mysql*
 rm -rf /usr/local/var/mysql*
 rm -rf /usr/local/etc/my.cnf
 rm -rf /usr/local/share/mysql*
 rm -rf /usr/local/opt/mysql*
 rm -rf /etc/my.cnf

 ls -l /usr/local/Cellar/mysql*

total 0
drwxr-xr-x  17 neko  staff  544  9 17 20:10 5.6.43

echo $PATH

/usr/local/opt/mysql@5.6/bin:/usr/local/opt/mysql@5.6/bin:/usr/local/opt/mysql@5.6/bin:/usr/local/opt/mysql@5.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

cat /etc/mysql/my.cnf

cat: /etc/mysql/my.cnf: No such file or directory

which mysql

/usr/local/opt/mysql@5.6/bin/mysql

mysql --help | grep my.cnf

order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf 

mysqlアンインストールコマンド(上から順に実行)

$ brew uninstall mysql@5.6
 
$ rm -rf /usr/local/var/mysql
$ rm -rf /usr/local/var/mysql56/
 
$ brew install mysql@5.6
 
$ echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.bash_profile
$ . ~/.bash_profile
 
$ mysql.server start
=>Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/nekonoMacBook-Air.local.pid).
$ mysql.server stop
=>ERROR! MySQL server PID file could not be found!

$ brew services start mysql@5.6

$ launchctl list | grep mysql
42424    0    homebrew.mxcl.mysql@5.6

mysql.server start

sudo rm -rf /usr/local/var/mysqlを行ってアンインストール=>インストールしても下記エラー

Starting MySQL
... ERROR! The server quit without updating PID file (/usr/local/var/mysql/nekonoMacBook-Air.local.pid).

ls -l /usr/local/var/mysql/nekonoMacBook-Air.local.pid

ls: /usr/local/var/mysql/nekonoMacBook-Air.local.pid: No such file or directory

ls -l /usr/local/var/

total 0
drwxrwxr-x   4 neko  admin  128  9 18 05:03 homebrew
drwxr-xr-x  10 neko  admin  320  9 19 19:22 mysql

my.cnf

$ cat /usr/local/etc/my.cnf
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1

brew services start mysql@5.6で起動

Service `mysql@5.6` already started, use `brew services restart mysql@5.6` to restart.

brew services restart mysql@5.6

Stopping `mysql@5.6`... (might take a while)
==> Successfully stopped `mysql@5.6` (label: homebrew.mxcl.mysql@5.6)
==> Successfully started `mysql@5.6` (label: homebrew.mxcl.mysql@5.6)

find / -name "my.cnf" -ls 2>/dev/null

3976441        8 -rw-r--r--    1 neko             admin                 113  9 19 20:58 /usr/local/etc/my.cnf
3976443        8 -rw-r--r--    1 neko             staff                 943  9 19 20:58 /usr/local/Cellar/mysql@5.6/5.6.43/my.cnf
3976187        8 -rw-r--r--    1 neko             staff                 113 12 21  2018 /usr/local/Cellar/mysql@5.6/5.6.43/.bottle/etc/my.cnf
2607770        8 -rw-r--r--    1 neko             staff                 202  7 21 09:04 /Users/neko/lara/laradock/mariadb/my.cnf
2607814        8 -rw-r--r--    1 neko             staff                 266  7 21 09:04 /Users/neko/lara/laradock/percona/my.cnf
2607792        8 -rw-r--r--    1 neko             staff                 272  7 21 09:04 /Users/neko/lara/laradock/mysql/my.cnf
3673914       16 -rw-rw-r--    1 root             admin                5405  9 11 21:26 /Applications/XAMPP/xamppfiles/etc/my.cnf

上記のmy.cnf 中身をすべて確認

nekonoMacBook-Air:~ neko$ cat /usr/local/etc/my.cnf | grep caching_sha2_password
nekonoMacBook-Air:~ neko$ cat /usr/local/Cellar/mysql@5.6/5.6.43/my.cnf| grep caching_sha2_password
nekonoMacBook-Air:~ neko$ cat /usr/local/Cellar/mysql@5.6/5.6.43/my.cnf | grep caching_sha2_password
nekonoMacBook-Air:~ neko$ cat /usr/local/Cellar/mysql@5.6/5.6.43/.bottle/etc/my.cnf | grep caching_sha2_password
nekonoMacBook-Air:~ neko$ cat /Users/neko/lara/laradock/mariadb/my.cnf | grep caching_sha2_password
nekonoMacBook-Air:~ neko$ cat /Users/neko/lara/laradock/percona/my.cnf | grep caching_sha2_password
nekonoMacBook-Air:~ neko$ cat /Applications/XAMPP/xamppfiles/etc/my.cnf | grep caching_sha2_password

補足情報(FW/ツールのバージョンなど)

OS:mac

同じ症状の方をtetratailで見つけましたが解決できず。

。service mysqld start

。service mysqld stop

。service mysqld restart
これらを行っても-bash: service: command not foundとエラーとなる。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

check解決した方法

0

原因は分かりませんが、mac自体を再起動したらmysql -urootで無事に入ることが出来ました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/09/22 18:16

    ただ、以前からこれは何回も行っていたので、再起動で治ったのは腑に落ちない結果となりました。

    キャンセル

  • 2019/09/22 18:32

    >brew cleanup
    とかもしておいた方が良いですね。

    ※コマンドは内容を理解して実行してくださいね。判らなければドキュメント等を調べるなりが必要です。

    キャンセル

  • 2019/09/22 22:41

    nandymakさん数日間本当に助かりました。
    はい、mysql?brew?コマンド確認してみます!

    キャンセル

0

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/Cellar/mysql@5.6/5.6.43/lib/plugin/caching_sha2_password.so, 2): image not found

「Authentication plugin 'caching_sha2_password'」はMySQL8.0から導入されたようですが、以前MySQL8.0をインストールされたことはありますか?
その時にmy.cnfに何か書き込まれたおかもしれません。

/etc/mysql/my.cnfを確認してみてください。
内容が理解できるのであれば修正すればいいですが、自信がなければmy.cnfを削除またはリネームし、MySQLはアンインストールして、対象のバージョンを再インストールする方がよいと思います。

大丈夫だと思いますが、

echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.bash_profil
最後の「.bash_profil」に「e」が欠けているのはコピペミスですよね。

コマンドにPATHが通っているかは以下のコマンドで確認してください。

$ which mysql

思い込みでセットされていないことが多々あります。
また、どのディレクトリを順番に見に行くかは以下のコマンドで確認できます。

$ echo $PATH

2019/09/19 20:00追記

MySQL@5.6をHomebrewでインストールしてみました。

現状の確認

nandymak:~ nandymak$ brew uninstall mariadb
Error: No such keg: /usr/local/Cellar/mariadb
nandymak:~ nandymak$ brew list
cmake        graphviz    libgcrypt    libxmlsec1    p11-kit
fontconfig    gts        libgpg-error    mpfr        pcre
freetype    heroku        libidn2        netpbm        python
gcc        heroku-node    libmpc        nettle        r
gd        icu4c        libpng        node        readline
gdbm        isl        libtasn1    nodebrew    sqlite
gettext        jasper        libtiff        oath-toolkit    unbound
glib        jpeg        libtool        openblas    webp
gmp        libevent    libunistring    openssl        wget
gnutls        libffi        libxml2        openssl@1.1    xz
nandymak:~ nandymak$

MySQL5.6をインストール

nandymak:~ nandymak$ brew search mysql@5.6
==> Formulae
mysql@5.6
nandymak:~ nandymak$ brew install mysql@5.6
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
etcd                           pilosa                         teleport

==> Downloading https://homebrew.bintray.com/bottles/mysql@5.6-5.6.43.mojave.bottle.1.tar.gz
==> Downloading from https://akamai.bintray.com/8d/8d276249e7adf93c716505d9959c690db014693480
######################################################################## 100.0%
==> Pouring mysql@5.6-5.6.43.mojave.bottle.1.tar.gz
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

MySQL is configured to only allow connections from localhost by default

To connect:
    mysql -uroot
(途中省略)
To have launchd start mysql@5.6 now and restart at login:
  brew services start mysql@5.6
Or, if you don't want/need a background service you can just run:
  /usr/local/opt/mysql@5.6/bin/mysql.server start
==> Summary
🍺  /usr/local/Cellar/mysql@5.6/5.6.43: 341 files, 153.6MB
nandymak:~ nandymak$

動作を確認

nandymak:~ nandymak$ mysql -uroot
-bash: mysql: command not found
nandymak:~ nandymak$ which mysql
nandymak:~ nandymak$ type mysql
-bash: type: mysql: not found
nandymak:~ nandymak$

PATHを通す

nandymak:~ nandymak$ echo 'export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"' >> ~/.bash_profile
nandymak:~ nandymak$ source ~/.bash_profile
nandymak:~ nandymak$ type
nandymak:~ nandymak$ mysql
ERROR 1045 (28000): Access denied for user 'nandymak'@'localhost' (using password: NO)
nandymak:~ nandymak$ mysql --version
mysql  Ver 14.14 Distrib 5.6.43, for osx10.14 (x86_64) using  EditLine wrapper

起動する

nandymak:~ nandymak$ brew services start mysql@5.6
==> Successfully started `mysql@5.6` (label: homebrew.mxcl.mysql@5.6)

ログインする

nandymak:~ nandymak$ mysql -uroot -pXXXXXXXX
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 27
Server version: 5.5.5-10.4.6-MariaDB Homebrew

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> quit
Bye
nandymak:~ nandymak$

my.cnfを確認する。

nandymak:etc nandymak$ cat /usr/local/etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /usr/local/etc/my.cnf.d

nandymak:etc nandymak$

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/09/19 21:33

    そういうことでしたか、すみません英語がわからず。。。

    おっしゃる通りエラーは出ませんでした!


    brew services restart mysql@5.6
    Stopping `mysql@5.6`... (might take a while)
    ==> Successfully stopped `mysql@5.6` (label: homebrew.mxcl.mysql@5.6)
    ==> Successfully started `mysql@5.6` (label: homebrew.mxcl.mysql@5.6)

    キャンセル

  • 2019/09/19 21:35

    それで
    $ mysql -uroot
    は駄目でしょうか?

    キャンセル

  • 2019/09/19 21:36

    行ってみたのですが変わらず同じ結果でした・・・

    mysql -uroot
    ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/Cellar/mysql@5.6/5.6.43/lib/plugin/caching_sha2_password.so, 2): image not found

    キャンセル

0

「find / -name "my.cnf" -ls 2>/dev/null」とコマンドを打つと、my.cnfと言うファイルを探しに行きます(時間が掛かります)。

nandymak$ find / -name "my.cnf" -ls 2>/dev/null
3586232        8 -rw-r--r--    1 nandymak         admin                 212  9 19 19:43 /usr/local/etc/my.cnf
7830222        8 -rw-r--r--    1 nandymak         staff                 145  6 27 04:02 /usr/local/Cellar/mysql/8.0.17_1/.bottle/etc/my.cnf
7819521        8 -rw-r--r--    1 nandymak         staff                 113 12 21  2018 /usr/local/Cellar/mysql@5.6/5.6.43/.bottle/etc/my.cnf
nandymak$

そこで見つかったmy.cnfの中身をすべて確認してください。上記の例であれば

$ cat /usr/local/etc/my.cnf | grep caching_sha2_password
$ cat /usr/local/Cellar/mysql/8.0.17_1/.bottle/etc/my.cnf | grep caching_sha2_password
$ cat /usr/local/Cellar/mysql@5.6/5.6.43/.bottle/etc/my.cnf | grep caching_sha2_password

上記の結果、以下の文字列が見つかったら、修正します。

default_authentication_plugin=caching_sha2_password


↓以下のように修正する。「=」の後ろです。

default_authentication_plugin=mysql_native_password

MySQLを再起動する。

$ brew services restart mysql@5.6
$ mysql -uroot

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/09/20 07:12

    はい、Docker関連です。
    Dockerは以前laravel使ってた際に導入しておりました。
    今は使っていないので消しても構いません。



    nandymak様、この度は数日間初心者にもわかりやすくて丁寧に回答して頂きありがとうございます。^^

    プログラミングしてる方は近くにいないので
    ネットのサービスを駆使してでmysqlのこちらの問題がわかる方探してみたいと思います。

    キャンセル

  • 2019/09/20 07:17

    勉強会などに参加して聞ける人を捜したらよいかも。
    https://connpass.com/
    などを見てみればどうでしょう。

    キャンセル

  • 2019/09/20 07:21

    勉強会もありですね!
    前々から気になってました^^;

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る