web-dev-qa-db-ja.com

ubuntuサーバー16.04のmysqlのデフォルトパスワード

Ubuntu 16.04サーバーをインストールしました。 Mysqlサーバーはデフォルトでインストールされました。 mysql -u root -pを使用してmysqlにアクセスしようとすると、パスワードがないためmysqlにログインできません。デフォルトのパスワードはありますか?

私も--skip-grant-tablesを試しましたが、これでもうまくいきません。 mysql -u rootだけでログインしようとしても失敗です。

33
Debashisenator

これはあなたが探しているものです:
Sudo mysql --defaults-file=/etc/mysql/debian.cnf
DebianベースのLinux上のMySqlは通常、資格情報を持つ設定ファイルを使用します。

64
Maoz Zadok

デフォルトでは、MySQLにはauth_socketとしてrootユーザーの認証プラグインがあり、システムユーザー名とdbユーザー名が同じである必要があります。

具体的には、ルートまたはSudo -iとしてログインし、mysqlと入力するだけで、mysql rootとしてログインし、他の操作ユーザーを作成できます。

あなたがホストにルートを持っていない場合、ルートとしてmysqlにログインすることを許可すべきではないと思いますか?

36
Harper

Ubuntu 18.10にmysql-serverを新規インストールしましたが、デフォルトのパスワードでログインできませんでした。その後、デフォルトでrootユーザーがauth_socketを使用して認証されることを知りました。プラグインがmysql_native_passwordに変更されたときの答えのように、mysqlのデフォルトパスワードを使用できます

$ Sudo apt install mysql-server
$ Sudo cat /etc/mysql/debian.cnf

そこには次の行があります

user     = debian-sys-maint
password = password_for_the_user

次に:

$ mysql -u debian-sys-maint -p
Enter password: 

debian.cnfからパスワードを入力します

mysql> USE mysql
mysql> SELECT User, Host, plugin FROM mysql.user;

+------------------+-----------+-----------------------+
| User             | Host      | plugin                |
+------------------+-----------+-----------------------+
| root             | localhost | auth_socket           |
| mysql.session    | localhost | mysql_native_password |
| mysql.sys        | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> COMMIT; 

どちらか:

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

または:

// MySQL 5.7+の場合

mysql>UPDATE mysql.user SET authentication_string=PASSWORD('new_password') where user='root';
29
Yasii

サーバーを--skip-grant-tablesで実行し、次のコマンドをrootまたはSudoで実行することにより、パスワードなしでログインするだけで、rootパスワードをリセットできます。

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

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

# service mysql stop
# service mysql start
$ mysql -u root -p
14
  1. 最初にmysqlを停止する必要があります
  2. このコマンドを使用してくださいSudo mysqld_safe --skip-grant-tables --skip-networking &
  3. 入力してmysql -u rootこの方法を試してください。この方法で問題が解決しました。
4
qingliu

別の場所は/var/libだと思います。そこに行くと、「興味深い」権限を持つ3つのmysqlフォルダーが表示されます。

user   group 
mysql  mysql

Rootパスワードの問題を解決するために私がしたことは次のとおりです。

走った後

Sudo apt-get purge mysql*
Sudo rm -rf /etc/mysql

また、以下を実行しました(my_usernameの代わりに)

cd /var/lib
Sudo chown --from=mysql <my_username> mysql* -R
Sudo rm -rf mysql*

その後:

Sudo apt-get install mysql-server

新しいルートパスワードを選択するように促されました。私はそれが役立つことを願っています

3
Leo Skhrnkv

Sudo dpkg-reconfigure mysql-server-5.7を実行するだけです

dpkg --get-selections | grep mysql-serverを実行すると、インストールしたバージョンを見つけることができます

1
rynop

これは古い質問ですが、答えを見つけるのに苦労している人もいます。少なくともそうしました。 すべての長い解決策に従ってはいけない。 mysqlコマンドの前にSudoを追加することにより、パスワードを提供せずにrootとしてmysqlにログインするだけです(新規インストールであるか、インストール後にパスワードを変更していない場合)。 $Sudo mysql -uroot -p mysql>これは、mysqlが最新バージョンの1つでセキュリティモデルを変更したためです。

お役に立てれば

0
BeNiza