web-dev-qa-db-ja.com

MysqlはSudoで動作しますが、そうではありません。 (ubuntu 16.04、mysql 5.7.12-0ubuntu1.1)

私が持っています Ubuntu 16.04Mysql 5.7.12-0ubuntu1.1。入力すると:

Sudo mysql -u root

Mysqlコンソールにログインできますが、Sudoなしで入力すると:

mysql -u root

エラーが発生します:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

MariaDBをインストールして削除したときに問題が発生しました。私はPostgreSQLでデータベースへのUNIXユーザーのログインが重要であるのを覚えていますが、これをMysqlでどのように処理するのですか?


私はこの問題を次のように解決しました:

https://askubuntu.com/questions/766334/cant-login-as-mysql-user-root-from-normal-user-account-in-ubuntu-16-04

15
Daniel

解決策は、ルートmysqlアカウントのパスワードを提供することです(まだ行っていない場合)。表示されるエラーメッセージは、パスワードが必要であり、それを提供していないためです。 rootパスワードをリセットする:

$ mysqladmin -u root password
$ New password: 

または、すでにrootパスワードを設定している場合は(疑わしいです。そうしないと、Sudo経由でログインできなくなります)、次のようになります。

$ mysqladmin -u root -p  password

Mysqlユーザーは、postgresとは異なり、UNIXユーザーとリンクされていません。

3
Simon Woolf

この問題は主に、rootユーザーにパスワードがない場合にデフォルトで使用されるauth_socketプラグインが原因で発生するようです。 (以前は、apt-getインストールプロセスがrootのパスワードを要求していましたが、そのようになっていないようで、auth_socketが有効になります。)

どちらのクエリでも、最初にSudo mysqlを使用してrootとしてログインします

MySQLまたはMariaDB> = 10.2の場合:

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

MariaDB <10.2(ALTER USERをサポートしない)を使用している可能性のある他のユーザーは、次のクエリを実行する必要があります。

    SET PASSWORD = PASSWORD('test');
    update mysql.user set plugin = 'mysql_native_password' where User='root';
    FLUSH PRIVILEGES;
7
Loren

サーバーのバージョン:5.7.18-0ubuntu0.16.04.1(Ubuntu)

ステップ1:

 server@Server:~$ Sudo -i

ステップ2:

 root@Server:~# mysql

出力は次のようになります。

 server@Server:~$ Sudo -i
 [Sudo] password for server: 
 root@Server:~# mysql
 Welcome to the MySQL monitor.  Commands end with ; or \g.
 Your MySQL connection id is 16
 Server version: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)

 Copyright (c) 2000, 2017, 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.

ステップ3:

 mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Abc123123@';

出力:

 Query OK, 0 rows affected (0.00 sec)
1
Sams

以下のコマンドを試してください:

mysql -uroot -p[password]

[password]-mysqlのインストール中に設定したパスワードを入力します。

あなたも試すことができます:

Sudo mysql -uroot -p[password]
0
Sree