mysqlはインストール時にrootパスワードを要求しません
apt install mysql-server
を使用してUbuntu 16.04にMySQLをインストールしましたが、インストール中にルートパスワードを要求しませんでした。
インストール後、root
としてログインしようとしたときにERROR 1045
を取得し、mysql_secure_installation
が同じエラーをスローしました。 purge
dおよびautoremove
dを再インストールしましたが、機能しません。
どうすれば修正できますか?インストール時に設定しなかった場合、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)...
グラントテーブルをロードせずに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
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>';
どうやら16.04(または5.7のインストール?)でのmysql-serverインストールでは、パスワードではなく auth_socket プラグインを介したルートアクセスが許可されます。 Sudo mysql -u root
(n.b.パスワードなし)を実行するとmysqlコンソールが表示されますが、非rootとしてコマンドを実行するとパスワードの入力が求められます。
Authバックエンドはパスワードをチェックすることさえしないので、パスワードを変更しても大きな違いはないようです。 プラグインを変更してパスワード認証に切り替える の方法に関する非常に包括的な記事があります。
インストール後:
1。
Sudo mysql
(はい、ユーザーはパスしません)
2. mysqlコンソールが表示されます:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_new_pass';
3。
FLUSH PRIVILEGES;
それでおしまい。次回からは通常どおりコンソールにアクセスできます。
mysql -u root -p my_new_pass
デフォルトのユーザーアカウントがあります。
$ 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
できます。
主な答えに加えて、あなたがで立ち往生している場合
"mysqld_safe/var/lib/mysqlのデータベースを使用してmysqldデーモンを起動する"
次のコマンドを入力するには、別のターミナルウィンドウを使用する必要があることに注意してください。
$ Sudo mysql --user=root mysql
同じウィンドウで実行しようとすると、mysqldセーフモードプロセスがシャットダウンされます。
Ubuntu 18.10でmysql-server
を端末パスワードプロンプトでセットアップする方法は次のとおりです。
- https://dev.mysql.com/downloads/repo/apt/ からMySQL APTリポジトリをダウンロードします
cd
をダウンロードして実行したディレクトリにdpkg -i mysql-apt-config_0.8.13-1_all.deb
(バージョン番号を確認してください)[プロンプト]メニューから、最後のオプション[ok]を選択してから、もう一度[ok]を選択します。
Mysql-serverおよびmysql-clientを更新してインストールします。
Sudo apt update sudo apt install mysql-server mysql-client
- プロンプトにルートパスワードを入力します。
- 新しい
"Use Legacy Authentication Method"
をまだサポートしていない実行中のフレームワーク/アプリケーション(laravelなど)の場合は"Strong Password Encryption"
を選択し、そうでない場合はフレームワーク/アプリケーションが"Strong Password Encryption"
をサポートしている場合は選択します。 - Rootとしてログインし、機能するかどうかを確認します。