LoginSignup
1
0

More than 1 year has passed since last update.

WindowsのMariaDBで"ERROR 1045 (28000): Access denied for user 'root'@'localhost'"が出た際の対処を共有

Last updated at Posted at 2022-11-04

はじめに

MySQL/MariaDBの初回実行あるあるにハマってしまった上にWindows版なので対応策に一苦労したので、参考にした動画をもとに手順を書きました。

環境

当方の環境は以下で行っております。

OS: Windows10 64bit 21H2
MariaDB: 10.9
サービス名: MariaDB

背景

諸般の事情でWindows版MariaDB(10.9)をインストールすることになり、インストール自体は滞りなく行えたものの、mysqlコマンドを打ってみると

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

と出てしまい、右往左往してしまったことから始まります。

情報を漁ってみると…

というわけで、神様仏様Google様にお願い申し上げたのですが…

LinuxかMacOSXでの話しか無い

しかも、

Windows版MariaDBにはmysqld_safeコマンドなんてねえYO!

というやさぐれてしまいたくなる状態に。

唯一見つかった情報が、以下のYoutubeの動画。

この動画のとおりに実行すると無事にAccess deniedから開放されました。

手順

ここから忘備録です。

1.mysql-init.txtを作ってフルパスを記録

適当なディレクトリにmysql-init.txtを作成し、以下の内容を記載して保存します。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

今回は、Documentsフォルダに保存しておきます。

フルパスはC:\Users\hoge\Documents\mysql-init.txtとします。
フルパスをどこかに記録しておきます。

2.MariaDBのmy.iniの場所を確認してフルパスを記録

エクスプローラーなどを使ってmy.iniの場所を調べます。
場所はインストール時に指定した、データを保存するディレクトリです。

例えば、データが"C:\MariaDB\10.9"にあれば、

C:\MariaDB\10.9\my.ini

がフルパスですので、これをコピーしてどこかに記録しておきます。

3.コマンドプロンプトを管理者権限で開く

MariaDBをインストールした際、Windowsのスタートメニューに「Command Prompt (MariaDB 10.9 (x64))」という項目があるので、それを右クリックするとポップアップメニューが開きます。その中の、

その他 > 管理者として実行

を選ぶと、管理者権限でコマンドプロンプトが開きます。
(いちいちパスをはらなくてもmysqlコマンドなどが実行できるので便利!)

4.MariaDBのサービスを停止する

動画ではサービスマネージャを使用していますが、コマンドラインのほうが手間いらずです。
先程開いたコマンドプロンプトで以下のコマンドを入力してEnterを押します。

net stop MariaDB

(当方は、サービス名を標準のMariaDBとしています。別の名前にしている場合は、逐次それに置き換えてください)

5.mysqldコマンドを直接実行する

ここが正念場です。落ち着いて。

先程作ったmysql-init.txtmy.iniを指定してmysqldを起動します。

mysqld --defaults-file="C:\MariaDBData\10.9\my.ini" --init-file="C:\Users\hoge\Documents\mysql-init.txt" --console

すると、以下のようなメッセージが現れます。

2022-11-04 10:42:41 0 [Note] mysqld (server 10.9.3-MariaDB) starting as process 2576 ...
2022-11-04 10:42:41 0 [Note] InnoDB: Compressed tables use zlib 1.2.12
2022-11-04 10:42:41 0 [Note] InnoDB: Number of transaction pools: 1
2022-11-04 10:42:41 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2022-11-04 10:42:41 0 [Note] InnoDB: Initializing buffer pool, total size = 3.992GiB, chunk size = 63.875MiB
2022-11-04 10:42:41 0 [Note] InnoDB: Completed initialization of buffer pool
2022-11-04 10:42:41 0 [Note] InnoDB: File system buffers for log disabled (block size=512 bytes)
2022-11-04 10:42:41 0 [Note] InnoDB: 128 rollback segments are active.
2022-11-04 10:42:41 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...
2022-11-04 10:42:41 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.
2022-11-04 10:42:41 0 [Note] InnoDB: log sequence number 46774; transaction id 14
2022-11-04 10:42:41 0 [Note] Plugin 'FEEDBACK' is disabled.
2022-11-04 10:42:41 0 [Note] InnoDB: Loading buffer pool(s) from M:\MariaDBData\10.9\ib_buffer_pool
2022-11-04 10:42:41 0 [Note] Server socket created on IP: '::'.
2022-11-04 10:42:41 0 [Note] Server socket created on IP: '0.0.0.0'.
2022-11-04 10:42:41 0 [Note] InnoDB: Buffer pool(s) load completed at 221104 10:42:41
2022-11-04 10:42:41 0 [Note] mysqld: ready for connections.
Version: '10.9.3-MariaDB'  socket: ''  port: 3306  mariadb.org binary distribution
2

ここにエラーメッセージがなければ実行できています。

終了はCtrl-Cを数回叩きます。

万が一、以下のエラーが出た際は、一旦終了してmysql-init.txtを見直して修正してください。

ERROR: 1105  Bootstrap file error, return code (0). Nearest query: 'ALTER USER (略)

動画では、不要になったmysql-init.txtを削除していますが、再インストールする際に必要になってくると考えて削除せずにそのまま残しています。

6.MariaDBサービスを起動する。

終了していたMariaDBサービスを起動します。

net START MariaDB

7.mysqlコマンドを起動する

これで、問題なくmysqlコマンドを叩けます。

mysql -u root -p
(略)>mysql -u root -p
Enter password: ********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.9.3-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit

無事、起動できました。
おめでとうございます!

最後に

MariaDBをWindowsで動かしている人って少数なのかなぁ…
何はともあれ、良きMariaDBライフを!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0