または

または

以前、Ubuntu 16.04 に MySQL をインストールしましたapt install mysql-serverが、インストール中に root パスワードの入力を求められませんでした。

インストール後、ERROR 1045ログインしようとするとrootmysql_secure_installation同じエラーが発生しました。purged してautoremoved し、再インストールしましたが、機能しません。

これを修正するにはどうすればいいでしょうか? インストール時に設定しなかった場合、ルート パスワードを設定できますか?

これは私のインストールログです:

次の追加パッケージがインストールされます:
  libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-server-5.7
  mysql-server-core-5.7
推奨パッケージ:
  メールx タイニーカ
次の新しいパッケージがインストールされます:
  libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-server mysql-server-5.7
  mysql-server-core-5.7
アップグレードされたものが 0 個、新規インストールされたものが 6 個、削除されたものが 0 個、アップグレードされなかったものが 0 個。
0 B/17,9 MB のアーカイブを取得する必要があります。
この操作の後、160 MB の追加ディスク領域が使用されます。
続行しますか? [Y/n] y
パッケージを事前構成しています...
以前に選択されなかったパッケージ libaio1:amd64 を選択しています。
(データベースを読み込んでいます...現在 227144 個のファイルとディレクトリがインストールされています。)
.../libaio1_0.3.110-2_amd64.deb を解凍する準備をしています...
libaio1:amd64 (0.3.110-2) を解凍しています...
以前に選択しなかったパッケージ mysql-client-core-5.7 を選択しています。
.../mysql-client-core-5.7_5.7.12-0ubuntu1_amd64.deb を解凍する準備をしています...
mysql-client-core-5.7 (5.7.12-0ubuntu1) を解凍しています...
以前に選択しなかったパッケージ mysql-client-5.7 を選択しています。
.../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb を解凍する準備をしています...
mysql-client-5.7 (5.7.12-0ubuntu1) を解凍しています...
以前に選択しなかったパッケージ mysql-server-core-5.7 を選択しています。
.../mysql-server-core-5.7_5.7.12-0ubuntu1_amd64.deb を解凍する準備をしています...
mysql-server-core-5.7 (5.7.12-0ubuntu1) を解凍しています...
以前に選択しなかったパッケージ mysql-server-5.7 を選択しています。
.../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb を解凍する準備をしています...
mysql-server-5.7 (5.7.12-0ubuntu1) を解凍しています...
以前に選択しなかったパッケージ mysql-server を選択しています。
.../mysql-server_5.7.12-0ubuntu1_all.deb を解凍する準備をしています...
mysql-server (5.7.12-0ubuntu1) を解凍しています...
libc-bin (2.23-0ubuntu3) のトリガーを処理しています...
man-db (2.7.5-1) のトリガーを処理しています...
systemd (229-4ubuntu4) のトリガーを処理しています...
ureadahead (0.100.0-19) のトリガーを処理しています...
libaio1:amd64 (0.3.110-2) を設定しています...
mysql-client-core-5.7 (5.7.12-0ubuntu1) をセットアップしています...
mysql-client-5.7 (5.7.12-0ubuntu1) をセットアップしています...
mysql-server-core-5.7 (5.7.12-0ubuntu1) をセットアップしています...
mysql-server-5.7 (5.7.12-0ubuntu1) をセットアップしています...
update-alternatives: /etc/mysql/mysql.cnf を使用して、/etc/mysql/my.cnf (my.cnf) を自動モードで提供します。
更新が必要かどうかを確認しています。
このMySQLのインストールはすでに5.7.12にアップグレードされています。mysql_upgradeを実行する必要がある場合は、--forceを使用してください。
mysql-server (5.7.12-0ubuntu1) をセットアップしています...
libc-bin (2.23-0ubuntu3) のトリガーを処理しています...

答え1

権限テーブルをロードせずに MySQL を起動すると、現在のパスワードを知らなくても、ルート パスワードを回復または設定できます。

ご注意ください$コマンドで。これは、コマンドを入力するときに表示されるターミナルプロンプトを指定します。テキストの行が表示されますが、実際に入力されたターミナルコマンドです。mysql>「」プレフィックスもプロンプトです。これは、実行時に表示されるプロンプトです。マイスク相互に作用します。

これはクライ(コマンドライン) これを実行するには:
(必ず現在のサーバーを停止する手順を実行する前に、一度に実行できるサーバーは 1 つだけです。

$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld
$ sudo mysqld_safe --skip-grant-tables&

これで、パスワードなしで root としてログインし、すべてのコマンドを実行できるようになります。この場合、root パスワードを root に設定します。

$ sudo mysql --user=root mysql

これは、MySQL 5.6 以下を使用している場合に、mysql 内で実行するルート パスワードの設定です。

mysql> update user set Password=PASSWORD('new-password') where user='root';
flush privileges;

MySQL 5.7以上

mysql> update user set authentication_string=PASSWORD('new-password') where user='root';
flush privileges;

そこから、mysql を終了 (実行中の msqld を強制終了) し、通常どおり起動します。

mysql サービスの開始と停止に関する注意事項:

mysqlを停止します:

$ sudo service mysql stop

mysql を起動します (通常):

$ sudo service mysql start

一時的な MySQL セーフ モード セッションを終了します。

$ sudo mysqladmin shutdown

答え2

Ubuntu 16.04 ではインストール中にパスワードは求められませんmysqlが、インストールが成功した後に次の方法でパスワードを設定できます。

mysql のインストールが完了したら、次のコマンドを実行します。

sudo mysql_secure_installation

次のように表示されます:

注意: 本番環境で使用するすべての MariaDB サーバーでは、このスクリプトのすべての部分を実行することをお勧めします。各手順を注意深くお読みください。

MariaDB にログインしてセキュリティを確保するには、root ユーザーの現在のパスワードが必要になります。 MariaDB をインストールしたばかりで、まだ root パスワードを設定していない場合は、パスワードは空白になっているので、ここで Enter キーを押します。

Enter current password for root (enter for none): (ここでEnterを押してください)

OK、パスワードの使用に成功しました。次に進みます...

ルート パスワードを設定すると、適切な権限を持たないユーザーは MariaDB ルート ユーザーにログインできなくなります。

Set root password? [Y/n] y   (press 'y' to set new password)
New password: 
Re-enter new password:

パスワードが正常に更新されました。権限テーブルを再読み込みしています。... 成功しました。


Ubuntu 18.04またはmysql-serverバージョン5.7.22では、この方法は機能しません。

Ubuntu 18.04でルートパスワードを設定するには、まず最初の3つのコマンドまたは最初の2つの手順に従います。LDジェームズの答えそして走り、

mysql> alter user 'root'@'localhost' identified by '<password>';

ルートユーザーのパスワードが設定されました!

または

18.04 で root パスワードを設定するには、次の手順に従います。

ルートユーザーにはパスワードが設定されていないので、空白のパスワード

sudo mysql -u root -p
Enter password: (press enter as no password is set)

その後は簡単にクエリを実行できます

ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';

答え3

インストール後は次の手順に従います。

  1. sudo mysql (はい、ユーザーがいなければパスはありません)

  2. これで、mysql コンソールが表示されます。以下を実行します。

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

  3. FLUSH PRIVILEGES;

これで完了です。次回からは通常どおりコンソールに入ることができます。

mysql -u root -pmy_new_pass

答え4

  1. デフォルトのユーザー アカウントがあります。

    $ vim /etc/mysql/debian.cnf 
    

    このアカウントは次のようにして取得できます:

    user     = debian-sys-maint
    password = nUZTARYslBsASzpw
    
  2. このアカウントでログインします

    $ mysql -u debian-sys-maint -p
    
  3. ルートパスワードを編集する

    mysql> show databases;
    
    mysql> use mysql;
    
    mysql> update user set authentication_string=PASSWORD("new_password") where user='root';
    
    mysql> update user set plugin="mysql_native_password";
    
    mysql> flush privileges;
    
    mysql> quit;
    
  4. MySQLを再起動する

    $ /etc/init.d/mysql restart;
    

mysql -u root -p以前の設定をそのまま使用できます。

関連情報