
以前、Ubuntu 16.04 に MySQL をインストールしましたapt install mysql-server
が、インストール中に root パスワードの入力を求められませんでした。
インストール後、ERROR 1045
ログインしようとするとroot
、mysql_secure_installation
同じエラーが発生しました。purge
d してautoremove
d し、再インストールしましたが、機能しません。
これを修正するにはどうすればいいでしょうか? インストール時に設定しなかった場合、ルート パスワードを設定できますか?
これは私のインストールログです:
次の追加パッケージがインストールされます: 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
インストール後は次の手順に従います。
sudo mysql
(はい、ユーザーがいなければパスはありません)これで、mysql コンソールが表示されます。以下を実行します。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
FLUSH PRIVILEGES;
これで完了です。次回からは通常どおりコンソールに入ることができます。
mysql -u root -pmy_new_pass
答え4
デフォルトのユーザー アカウントがあります。
$ vim /etc/mysql/debian.cnf
このアカウントは次のようにして取得できます:
user = debian-sys-maint password = nUZTARYslBsASzpw
このアカウントでログインします
$ mysql -u debian-sys-maint -p
ルートパスワードを編集する
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;
MySQLを再起動する
$ /etc/init.d/mysql restart;
mysql -u root -p
以前の設定をそのまま使用できます。