MySQL - その他
ナビゲーションに移動
検索に移動
概要
rootユーザのパスワードの初期化
MySQLにrootユーザのパスワードを紛失した場合、パスワードを初期化する必要がある。
まず、--user=mysql
オプションを付加して、MySQLを起動する。
もし、rootユーザでログインする場合、rootユーザの所有するファイルを作成するため、問題を引き起こす可能性がある。
次に、MySQLのpidファイルの場所を確認する。
pidファイルは、/var/lib/mysqlディレクトリ、/var/run/mysqldディレクトリ、/<MySQLのインストールディレクトリ>/dataディレクトリ等に、mysqld.pidファイルとして保存されている。
新しいrootユーザのパスワードを作成する前に、MySQLサーバ(mysqldプロセス)を停止する。
kill `cat /<MySQLのpidファイルがあるディレクトリ>/mysqld.pid`
次に、MySQLのpidファイルの最下行に、以下に示す内容を追記する。
vi /<MySQLのpidファイルがあるディレクトリ>/mysqld.pid または sudo vi /<MySQLのpidファイルがあるディレクトリ>/mysqld.pid
# /<MySQLのpidファイルがあるディレクトリ>/mysqld.pidファイル ALTER USER 'root'@'<ホスト名またはIPアドレス>' IDENTIFIED BY '<新しいrootユーザのパスワード>';
編集したMySQLのpidファイルをホームディレクトリ等にコピーする。
ここでは、mysql-initファイルとして保存している。
cp /<MySQLのpidファイルがあるディレクトリ>/mysqld.pid ~/mysql-init
MySQLの再起動と新しいrootのパスワードを適用する。
MySQLの起動方法によっては、他のオプション(init
コマンドの前に、--defaults-file
オプション等)を付加する必要がある。
mysqld --init-file=/<mysql-initファイルを保存したディレクトリ>/mysql-init &
MySQLにrootユーザとしてログインして、新しいパスワードが機能することを確認する。
最後に、pidファイルおよびmysql-initファイルを削除する。
rm /<MySQLのpidファイルがあるディレクトリ>/mysqld.pid ~/mysql-init # または sudo /<MySQLのpidファイルがあるディレクトリ>/mysqld.pid ~/mysql-init