MySQL Workbenchを介してUbuntu 16.04のローカルホストに接続できない(パスワードなしのルート)


17

OracleのWebサイトは、15と14でのみ機能することを暗示しているようです 。http://dev.mysql.com/downloads/workbench/

また、Ubuntu 16.04マシンのうち2台が接続できないようです(アクセスはルートの拒否エラーです)

画像

大丈夫です。大丈夫です。ただし、ローカルホストには接続しません。

誰にも運がありますか?


ソースからビルドしましたか?正確なエラーは何ですか?間違ったパスワードを指定したときと似ていますか?

はい、似ています。しかし、ルートにはパスワードがありません。そして、コマンドラインでルートに正しく接続できます。そして、私のダブルは、すべてのprivelegesとRANをチェックするFLUSH PRIVILEGES; Oracleのサイトを明示的にのみ、14と15を言うので、誰もが、16からローカルホストに接続できる場合、私は好奇心が強い。この時点で
ジョナサン

Oracleが動作しないと主張するのを見たことがありません。Xenialのバイナリが表示されませんでした。ただし、ここでは、mysql-workbench、packages.ubuntu.com / xenial / mysql-workbenchが表示されます。そのエラーは、ソフトウェア互換性エラーのようには見えません。mysqlのロギングをオンにし、ロギングレベルを2に上げて、ログにリクエストが表示されるかどうかを確認します。

@ bc2946088はmysql-workbench16.04のために宇宙のリポジトリにあるリンク
Videonauth

4つのオプションのいずれかをチェックしましたか?;-) WBは私にとっては完璧に機能します(5.7 btwで)。以下の証明。
リンツウィンド

回答:


27

この問題は、16.04へのアップグレード中にパスワードが設定されていない場合、デフォルトでrootユーザーに対してソケット認証が有効になっていることが原因である可能性があります。この重要な注意事項は、16.04 リリースノートに記載されています

MySQLルートパスワードが空の場合のパスワードの動作が変更されました。MySQLルートパスワードが空の場合、パッケージ化によりソケット認証が可能になりました。これは、非rootユーザーが空のパスワードでMySQL rootユーザーとしてログインできないことを意味します。

何らかの理由で、16.04に付属しているMySQL Workbenchは、少なくとも私にとっては、MySQLサーバーではすぐに動作しません。「ローカルソケット/パイプ」を使用して、さまざまな方法で接続しようとしましたが、役に立ちませんでした。

解決策は、ネイティブのパスワード認証に戻すことです。これを行うには、以下を実行してソケット認証を使用してMySQLにログインします。

sudo mysql -u root

ログインしたら:

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

これにより、ネイティブ(以前のデフォルト)パスワード認証に戻ります。問題を解決するために他の方法を試みた場合、mysql.userの「plugin」フィールドが「auth_token」に設定されていることを確認する必要があります。私がやったように、物事をいじくり回してきました。

このソリューションに対するMiguel Nietoのブログ投稿の功績。


驚くべきことに、私はこれに気付かなかったでしょう。
ジョナサン

これで修正されましたが、次にaptアップデートを実行したときに再び壊れました。
ジョナサン

apt更新の出力は何でしたか?
マイクM

次回mysqlを実行するまで気づかなかったので、ずっと後で
ジョナサン

これがUbuntu 16.04の問題なのか、mysql 5.7の問題なのか(この変更を行ったのはOracleとCanonicalのどちらですか?)
ジョナサン

22

MySQL 5.7以降は「root」としての接続をサポートしていないmysql-workbenchため、通常のユーザーを作成し、それを介して接続する必要があります。

sudo mysql -u root -p

「admin」という名前のユーザーを作成し、それを使用してに接続しmysql-workbenchます。

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

この答えは私にとって完璧でした、ジョナサンに感謝します。
クリスエヴァンス

2
これは、Ubuntu 18.04
tadeubarbosa

パーフェクト。(18.04.2)ありがとう
ロンNuni

4

この質問は2年前かもしれませんが、今夜のmysql-workbenchでの私の仕事はそれに対する答えを与えてくれたようです。

rootユーザーは、デフォルトでauth_socket認証を使用するようになりました。rootがアクセスできる唯一の方法は、rootとしてログインすることです。

mysql -u rootルートユーザーと標準ユーザーの両方として実行することでこれを見つけました 。

標準ユーザーでは機能しません。

それで、次の質問は-mysql-workbenchを実行するユーザーは誰ですか。デフォルトでは、標準ユーザーとして実行されます。rootユーザーとして実行するには、rootから実行する必要があります。そこで、rootユーザーCLIに移動して、「mysql-workbench」と入力しました。

次に示すように、rootユーザーの設定に入る必要がありました。ファイルの場所は、ubuntu 18.04のインストールに有効です。

ルート接続設定mysql-workbench。

そのソケットの場所が無効な場合は、rootまたはsudoからmysql CLIに移動して、次のコマンドを実行する必要があります。

ソケットを見つけるためのMySQL CLIコマンド。

正しい設定が完了したら、接続をテストします。それは成功するはずです、そしてあなたは行く準備ができています。


これありがとう!古いツールをサポートするために、セキュリティ関連の変更を認証に戻す必要はありません。新しいツールを使用して接続するようにそのツールに伝えることができる場合です。
アーロン

この方法でローカル接続を実現できますか?TCP / IPを介して接続できない理由がわかりません。
ジョンゴニデリス

2

私にとってはうまくいくし、特別なことは何もしなかった。mysql-server-5.7コマンドラインからインストールしてワークベンチを作成し、ユーザーにパスワードを設定し、通常のデータベース権限を設定します(通常の方法でも)。

ここに画像の説明を入力してください

そして、データベースとテーブルで:

ここに画像の説明を入力してください


面白い。ディスクワールドのリファレンスが大好きです。mysqlパッケージを再構成するときに、パスワードを変更するプロンプトが表示されません。あなたは?私は、インストールが壊れているか、何らかの競合があると考えています。ルートパスワードを変更するプロンプトが表示されるはずだと思います。
ジョナサン

1

auth_socketプラグインを使用してmysqlワークベンチ経由で接続できる適切な管理権限を持つユーザーアカウントを作成します。これはmysqlサーバーへのルート接続では機能しないことに注意してください

ターミナルセッションからmysqlにログオンします。

$sudo mysql

これを実行できる場合、auth_socketプラグインが有効になり、ルートアカウントはこのプラグインを使用して認証されます。これは、セキュアインストールスクリプトを実行した後、ubuntuにmysqlをインストールするときのデフォルトのセットアップであることに注意してください。

まず、アカウント「valerie」のmysqlユーザーを作成します。

mysql> CREATE USER 'valerie'@'localhost' IDENTIFIED WITH auth_socket;

アカウントの管理者権限を有効にします。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'valerie'@'localhost' WITH GRANT OPTION;

シェルを終了します。

mysql> exit

次に、mysqlワークベンチで:

  1. 新しい接続を作成する
  2. 接続方法をローカルソケット/パイプとして選択します
  3. Socket / Pipe Pathを/var/run/mysqld/mysqld.sockに設定します(これはDebian / Ubuntuシステムのパスであり、Linuxの他のフレーバーの変更点です)
  4. ユーザー名を設定します(この例では「valerie」)

その後、この接続を使用してmysqlサーバーに接続できるはずです。


0

これを試して

mysqlデータベースを選択

1:mysqlを使用します。

2:UPDATE user set plugin = 'mysql_native_password' where User = 'root';

3:フラッシュ特権。

4:出口;

〜$ sudo service mysql restart


0

Ubuntu 16.04を実行しているAWSホスト上のMySQLサーバー。Ubuntu 16.04ラップトップのmysql-workbench。KeyPair接続を使用します。

テストデータベース接続のセットアップ後、機能していました。しかし、実際の接続は常に失敗し、ジョナサンリーダーズが投稿したようなメッセージが表示されました。でログを~/.mysql/workbench/log確認し、いくつかの「許可が拒否されました」メッセージを見つけました。

これで、mysql-workbenchを使用して作業できるようになりました。 sudo mysql-workbench

そして後でchmod、許可が必要なディレクトリに移動できます。


2
これは質問の答えですか?
ジョージウドセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.