web-dev-qa-db-ja.com

mysqlはインストール時にrootパスワードを要求しません

apt install mysql-serverを使用してUbuntu 16.04にMySQLをインストールしましたが、インストール中にルートパスワードを要求しませんでした。

インストール後、rootとしてログインしようとしたときにERROR 1045を取得し、mysql_secure_installationが同じエラーをスローしました。 purgedおよびautoremovedを再インストールしましたが、機能しません。

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

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

次の追加パッケージがインストールされます。
 libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-server-5.7 
 mysql-server-core-5.7 
推奨パッケージ:
 mailx tinyca 
次の新しいパッケージがインストールされます。
 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 ... 
 unsqling 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 ... 
 unsqling mysql-server-5.7(5.7.12-0ubuntu1)... 
以前に選択未選択パッケージmysql-server。
アンパックの準備.../mysql-server_5.7.12-0ubuntu1_all.deb ... 
 unsqling mysql-server(5.7.12-0ubuntu1)... 
 libc-binのトリガーの処理(2.23-0ubuntu3)... 
 man-dbのトリガーの処理(2.7.5-1)... 
 systemdのトリガーの処理(229 -4ubuntu4)... 
 ureaheadのトリガーの処理(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:using/etc/mysql/mysql.cnfは、自動モードで/etc/mysql/my.cnf(my.cnf)を提供します。
更新が必要かどうかを確認します。
 MySQLのこのインストールはすでに5.7.12にアップグレードされています。mysql_upgrade
 mysql-server(5.7.12-0ubuntu1)のセットアップがまだ必要な場合は--forceを使用します... 
 libc-binのトリガーの処理( 2.23-0ubuntu3)... 
54
spqa

グラントテーブルをロードせずにmysqlを起動することにより、現在のパスワードを知らなくてもルートパスワードを回復または設定できます。

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

これは、これを行うためのcli(コマンドライン)です。
(必ず 現在のサーバーを停止する 手順を実行する前に。一度に実行できるサーバーは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
57
L. D. James

Ubuntu 16.04にmysqlをインストールする際にパスワードを要求することはありませんが、インストールが成功した後に次の方法で設定できます。

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

Sudo mysql_secure_installation

表示されます:

注:このスクリプトISのすべての部分を実行することは、実稼働使用中のすべてのMariaDBサーバーに推奨されます!各ステップを注意深く読んでください!

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

Enter current password for root (enter for none):(ここでEnterを押します)

OK、パスワードを正常に使用しました。次に進みます...

Rootパスワードを設定すると、適切な承認なしに誰もMariaDB rootユーザーにログインできなくなります。

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

パスワードが正常に更新されました!特権テーブルの再読み込み.. ...成功!


Ubuntu 18.04 OR mysql-serverバージョン5.7.22の場合、この方法は機能しません

Ubuntu 18.04でルートパスワードを設定するには、最初の3つのコマンドまたは最初の2つのステップ L.D。Jamesの答え を実行してから、実行します。

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

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

OR

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

Rootユーザーにはパスワードが設定されていないため、単純に 空のパスワード でログインします

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

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

ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';
37
d a i s y

どうやら16.04(または5.7のインストール?)でのmysql-serverインストールでは、パスワードではなく auth_socket プラグインを介したルートアクセスが許可されます。 Sudo mysql -u root(n.b.パスワードなし)を実行するとmysqlコンソールが表示されますが、非rootとしてコマンドを実行するとパスワードの入力が求められます。

Authバックエンドはパスワードをチェックすることさえしないので、パスワードを変更しても大きな違いはないようです。 プラグインを変更してパスワード認証に切り替える の方法に関する非常に包括的な記事があります。

16
carp

インストール後:

1。

Sudo mysql

(はい、ユーザーはパスしません)

2. mysqlコンソールが表示されます:

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

3。

FLUSH PRIVILEGES;

  1. それでおしまい。次回からは通常どおりコンソールにアクセスできます。

    mysql -u root -p my_new_pass

7
DimiDak
  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できます。

3
pwxcoo

主な答えに加えて、あなたがで立ち往生している場合

"mysqld_safe/var/lib/mysqlのデータベースを使用してmysqldデーモンを起動する"

次のコマンドを入力するには、別のターミナルウィンドウを使用する必要があることに注意してください。

$ Sudo mysql --user=root mysql

同じウィンドウで実行しようとすると、mysqldセーフモードプロセスがシャットダウンされます。

0

Ubuntu 18.10でmysql-server端末パスワードプロンプトでセットアップする方法は次のとおりです。

  1. https://dev.mysql.com/downloads/repo/apt/ からMySQL APTリポジトリをダウンロードします
  2. cdをダウンロードして実行したディレクトリにdpkg -i mysql-apt-config_0.8.13-1_all.deb(バージョン番号を確認してください)
  3. [プロンプト]メニューから、最後のオプション[ok]を選択してから、もう一度[ok]を選択します。

  4. Mysql-serverおよびmysql-clientを更新してインストールします。

Sudo apt update 
 sudo apt install mysql-server mysql-client
  1. プロンプトにルートパスワードを入力します。
  2. 新しい"Use Legacy Authentication Method"をまだサポートしていない実行中のフレームワーク/アプリケーション(laravelなど)の場合は"Strong Password Encryption"を選択し、そうでない場合はフレームワーク/アプリケーションが"Strong Password Encryption"をサポートしている場合は選択します。
  3. Rootとしてログインし、機能するかどうかを確認します。
0
ThomasAFink