Redhat LinuxにMySQLサーバー5をインストールしました。 rootとしてログインできないため、rootパスワードを変更できません。
mysql -u root -p
Enter password: <blank>
ERROR 1045 (28000): Access denied for user 'root'@'localhost'
(using password: NO)
このようなものを設定しようとすると:
mysqladmin -u root password 'newpass'
エラーが発生します:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost'
(using password: NO)'
ルートパスワードが設定されているかのように。
また、( here で説明されている)を使用してパスワードをリセットしようとしました
/sbin/service mysqld start --skip-grant-tables
そして次に:
mysql> UPDATE mysql.user SET Password=PASSWORD('newpass')
-> WHERE User='root';
ERROR 1142 (42000): UPDATE command denied to user ''@'localhost' for table 'user'
(yumを使用して)mysql-serverをアンインストールしてから再インストールしましたが、それは役に立ちませんでした。
ルートパスワードを強制的にリセットするにはどうすればよいですか?
MySQLのインストールを削除し、データファイルを削除してから再インストールしました。
その後、ルートパスワードを設定することができました。 rootパスワードを何かに設定したら。 mysqladminでは、知らない場合はリセットできません。
リセットするには、mysqldの実行方法の所有権を取得し、initパスワードを入力してルートパスワードを変更する必要があります。 https://dev.mysql.com/doc/refman/5.0/en /resetting-permissions.html
1つのオプションは、UPDATE mysql.user SET Password=PASSWORD('newpass') WHERE User='root';
をファイルに保存し、--init-file=FILENAME
でmysqld
を手動で開始することです。サーバーが起動すると、パスワードがリセットされ、ログインできるようになります。その後、サーバーをシャットダウンして通常どおり起動する必要があります。
デフォルトでは、rootユーザーのパスワードは空の文字列です。
そして(using password: NO)
は、パスワードがないことを示しています。
別のシステムからログインしようとしていますか?ローカルユーザーとしてのみrootユーザーとしてログインできると思います。
ゲームに少し遅れましたが、Raspberry Piのインストールでも同じ問題があり、昇格が必要であることがわかりました。パスワード変更の先頭にSudoを追加すると、機能するようになりました。
Sudo mysqladmin -u root password 'newpass'
その後、昇格されたSQLアクセス
Sudo mysql -u root -p
どちらかがSudoとして実行されていない場合、失敗します。
これは、MySQL Server 5.6を搭載したWindowsで役立ちました。 mysqld
パスを変更して、MySql Serverをインストールした場所を指すようにしてください。私にとっては"C:\Program Files\mysql\MySQL Server 5.6\bin\mysqld.exe"
:
システムに管理者としてログオンします。
MySQLサーバーが実行されている場合は停止します。 Windowsサービスとして実行されているサーバーの場合は、サービスマネージャーに移動します。[スタート]メニューから、[コントロールパネル]、[管理ツール]、[サービス]の順に選択します。リストでMySQLサービスを見つけて停止します。
サーバーがサービスとして実行されていない場合は、タスクマネージャーを使用して強制的に停止する必要があります。
次のステートメントを含むテキストファイルを作成します。パスワードを使用するパスワードに置き換えます。
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
UPDATEおよびFLUSHステートメントをそれぞれ1行で記述します。 UPDATEステートメントは、すべてのルートアカウントのパスワードをリセットし、FLUSHステートメントは、パスワードの変更を通知するために、許可テーブルをメモリに再ロードするようにサーバーに指示します。
ファイルを保存します。この例では、ファイルの名前はC:\mysql-init.txt
。
コンソールウィンドウを開いて、コマンドプロンプトを表示します。[スタート]メニューから[ファイル名を指定して実行]を選択し、実行するコマンドとしてcmdと入力します。
特別な--init-fileオプションを使用してMySQLサーバーを起動します(オプション値のバックスラッシュが2倍になっていることに注意してください)。
C:\> C:\mysql\bin\mysqld --init-file=C:\\mysql-init.txt
MySQLをC:\ mysql以外の場所にインストールした場合、それに応じてコマンドを調整します。
サーバーは、起動時に--init-fileオプションで指定されたファイルの内容を実行し、各ルートアカウントのパスワードを変更します。
サーバー出力をログファイルではなくコンソールウィンドウに表示する場合は、コマンドに--consoleオプションを追加することもできます。
MySQLインストールウィザードを使用してMySQLをインストールした場合、-defaults-fileオプションを指定する必要がある場合があります。
C:\> "C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld.exe"
--defaults-file="C:\\Program Files\\MySQL\\MySQL Server 5.5\\my.ini"
--init-file=C:\\mysql-init.txt
適切な--defaults-file設定は、サービスマネージャーを使用して見つけることができます。[スタート]メニューから、[コントロールパネル]、[管理ツール]、[サービス]の順に選択します。リストでMySQLサービスを見つけて右クリックし、[プロパティ]オプションを選択します。 [実行可能ファイルへのパス]フィールドには--defaults-file設定が含まれています。
サーバーが正常に起動したら、C:\ mysql-init.txtを削除します。
http://docs.Oracle.com/cd/E17952_01/refman-5.5-en/resetting-permissions.html
おそらくここで少し遅れますが、ここに私がやったことがあります:
以下を含むファイルresetpass.shを作成します。
UPDATE mysql.user SET Password=PASSWORD('newpassword') WHERE User='root';
# mysqld_safe --init-file=resetpass.sh
# service mysqld start --skip-grant-tables
# mysql -u root -p
パスを入力してください
mysql > change root pass ; flush privs;
終了する
# restart mysql service
私が使用していたMySQLバージョンは、centos6で5.1.73でした
コマンドから-pを削除します。 -pは、パスワードのプロンプトを強制します。
つかいます : mysql -u root
これで問題が解決します。
これを試してください:
mysql -u root
その後:
mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;
私のためにうまくいきました!
文書によると、MySQL 5.7では一時パスワードが/var/log/mysqld
、しかし、これは明らかに5.6の場合ではありません。
MySQLバージョン5.6をRHEL 6.7にインストールすると、インストール中に設定された一時的なルートパスワードがファイル/root/.mysql_secret
。