前提・実現したいこと
MySQLに管理者権限でログインして、ユーザーを一件作りたい。
発生している問題・エラーメッセージ
MySQLにrootでログインできない。
該当のソースコード
/usr/bin/mysqld_safe --skip-grant-tables /etc/init.d/mysql stop
いずれも「指定されたパスが見つかりません」と出るため、パスワードなしでのログインができない。
試したこと
どこまで情報が必要か分からないので、不要な情報が混ざっている可能性もありますが、分かる限り書きます。
VisualStudioCodeでPHPを組んでいました。
XAMPPでMariaDBを起動、root権限でデータベースtennisを作成。
tennisだけが使えるユーザーuserを作成→エラー。
SELECT user FROM user;
でユーザー一覧が見られるとの事で実行。
userがあるのにログインできない、rootが三行ある。
user削除→作り直し→エラー
rootが三行あるなら消しても大丈夫なのでは?と思ったためrootを指定して一回削除。
ログアウト。
ログインのためにXAMPPを起動すると、Apache、MySQLともにエラー。
再インストールしても直らなかったため、管理ツール-サービスを自動から停止させると、Apache、MySQLとも起動。
https://hit.hateblo.jp/entry/2016/05/23/183341
該当のコードはこちらを参考にしました。
勝手ですみませんが、職場からの投稿なので火曜日までは試せません……。
補足情報(FW/ツールのバージョンなど)
XAMPP(v3.2.4)
XAMPPはC直下にインストールしています。
c:\xampp\mysql
OS:Windows 10 Home 64ビット版
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
文字量が多いので、気合で読まれてください。
質問まとめ
質問者(kazumi_7)さんの不明点をまとめてみました。
0. XAMPPのMariaDBへ管理者ログインしたい
- MariaDBのrootが複数居る理由(1件、削除した場合の対処)
- XAMPPコントロールパネルからMariaDBを起動すると起動できない
- MariaDBの初期設定諸々(root周り、logファイル)
- MariaDBでユーザ、DB、テーブルの作成
今回"は"、コメント欄でやり取りをして、解決へ至りましたが、
上記の件は、それぞれ、別件の質問として扱うのが。。。"teratail"サービスの方針ですので、
次回があれば、簡単な問題の切り分け等を行いますと、他の回答者さんが回答をし易いですよ(´ω`)
(私の様に暇な回答者が多い訳ではないので、コメ欄でやり取りが多いと嫌がる方居ますから(;^ω^))
回答まとめ
便宜上、<code>箇所はPowershellで表示しております。
<code>内で{}を括っている箇所は明示されない限り、環境に依って読み替えてください。
XAMPPのMariaDBへ管理者ログインしたい
結論
Windows環境で標準のインストール構成ならば以下のコマンドで可能
lang
1## [カレント移動] 2## XAMPPのインストールフォルフォルダにあるmysql\binへ移動する 3C:\Users\{username} > cd C:\xampp\mysql\bin 4## [mysql実行] 5## mysqlクライアントをrootユーザで実行する 6C:\xampp\mysql\bin > mysql -u root 7## ERROR 1045 (28000)エラーの場合、先に4:MariaDBの初期設定諸々を実行ください 8MariaDB[(none)] > \q
補足
質問者さんが実行されたコマンドは、Linuxカーネル系コマンドとなります。
指定されたディレクトリパス等は、Windows には存在しないので、実行出来ません。
shell
1/usr/bin/mysqld_safe --skip-grant-tables 2/etc/init.d/mysql stop
MariaDBのrootが複数居る理由(1件、削除した場合の対処)
結論
MariaDB(MySQL)では、接続元のホストとユーザ名で一つのユーザとしております。
rootは主にlocalhostから接続されるため、localhostを表す接続元ホスト分ユーザレコードがあります。
powershell
1MariaDB[(none)] > SELECT user, host FROM mysql.user; 2+--------------+-----------+ 3| Host | User | 4+--------------+-----------+ 5| 127.0.0.1 | root | <- IPv4接続でのlocalhost(自分自身) 6| ::1 | root | <- IPv6接続でのlocalhost(自分自身) 7| localhost | root | <- hostname接続でのlocalhost(自分自身) 8+--------------+-----------+ 9MariaDB[(none)] > \q
補足
rootが居ない場合の復旧(root初期化)
powershell
1# [カレント移動] 2C:\Users\{username} > cd C:\xampp\mysql\bin 3# [mysqld_safe起動] 4C:\xampp\mysql\bin > mysqld_safe --skip-grant-tables 5# [mysql実行] 6C:\xampp\mysql\bin > mysql -u root 7# [USE構文でmysql DBを指定] 8MariaDB[(none)] > USE mysql; 9# ['root'をinsert] 10MariaDB[(none)] > INSERT INTO user (user, host, password) VALUES ('root', '{host}', PASSWORD('{パスワード}')); 11# ['root'の権限を許可に変更] 12# (1):直接アップデート 13MariaDB[(none)] > UPDATE USER SET 14 Select_priv = 'Y', 15 Insert_priv = 'Y', 16 Update_priv = 'Y', 17 Delete_priv = 'Y', 18 Create_priv = 'Y', 19 Drop_priv = 'Y', 20 Reload_priv = 'Y', 21 Shutdown_priv = 'Y', 22 Process_priv = 'Y', 23 File_priv = 'Y', 24 Grant_priv = 'Y', 25 References_priv = 'Y', 26 Index_priv = 'Y', 27 Alter_priv = 'Y', 28 Show_db_priv = 'Y', 29 Super_priv = 'Y', 30 Create_tmp_table_priv = 'Y', 31 Lock_tables_priv = 'Y', 32 Execute_priv = 'Y', 33 Repl_slave_priv = 'Y', 34 Repl_client_priv = 'Y', 35 Create_view_priv = 'Y', 36 Show_view_priv = 'Y', 37 Create_routine_priv = 'Y', 38 Alter_routine_priv = 'Y', 39 Create_user_priv = 'Y', 40 Event_priv = 'Y', 41 Trigger_priv = 'Y', 42 Create_tablespace_priv = 'Y' 43WHERE 44 user='root'; 45# (2):GRANT構文 46MariaDB[(none)] >GRANT ALL ON *.* TO `root`@`localhost`; 47# [権限反映(※GRANT構文の場合、必要はありません)] 48MariaDB[(none)] > FLUSH PRIVILEGES; 49# [mysql終了] 50MariaDB[(none)] > \q 51# [mysql停止] 52# 一旦、こちら 53C:\xampp\mysql\bin > mysql stop 54# 停止しない場合はこちら 55C:\xampp\mysql\bin > taskkill /pid {MyySQLのプロセスのID}
補足
XAMPPコントロールパネルからMariaDBを起動すると起動できない
結論
原因の特定には、XAMPPコントロールパネルのログ解析が必要ですが、
Windowsの場合、多くは既にMySQLが起動しており、多重起動させようとしてポートの重複で、エラーが起きていると思われます。
【対策】
・サービスから、MySQLの起動オプションを自動から、手動に変更する。
・既に起動しているサービスは、コンテキストメニューから削除する
補足
サービスの操作は、覚えるの大変なので、、、、他者さんへ丸投げします(汗)
要するに、Linux系で言うところのデーモンと呼ばれるプログラムの事ですよ。
普通のプログラムは、実行から操作、終了までを"対話"式に行いますが、
その必要がないプログラムなんかは、OS側から起動させたりしておきたいなって時に使います。
お使いかは分かりませんが、Windows Updateの自動取得なんかがそれに当たります。
MariaDBの初期設定諸々(root周り、logファイル)
結論
環境に依って、実行方法が違いますのでご注意ください(※下記は、WindowsのXAMPPの場合です)
・rootのログイン処理
powershell
1# rootユーザの初期パスワード設定 2C:\Users\{username} > cd C:\xampp\mysql\bin 3C:\xampp\mysql\bin > mysqladmin -u root password 4New password: {新たに設定したいrootのパスワード} 5Confirm new password: {再入力} 6# rootユーザのログイン確認 7C:\xampp\mysql\bin > mysql -h localhost -u root -p 8Enter password: {新パスワードを入力} 9MariaDB[(none)] > #(この状態になれば、ログイン成功) 10MariaDB[(none)] > \q
・ログファイルの出力先確認
powershell
1# コンフィグファイルのある場所 2C:\xampp\mysql\bin\my.ini 3----- 4# エラーログのファイル名を指定しているパラメータ 5log_error=mysql_error.log 6# このパラメータは、パス+ファイル名orファイル名を指定できます。 7# log_errorがファイル名だけの場合、出力先パスを指定しているパラメータ 8datadir="C:\xampp\mysql"
補足
MySQLやMariaDBに限らず、DBはインストールするだけでは色々と設定が足りません。
ミドルに共通する考えですが、初期構成では、お試しだけ出来る状態です。
本格的に使う場合、コンフィグの設定などをしっかりしましょう。
特に以下は最初に設定した方が、好ましいです。
ログ出力周り:SELECTの実行も出力するか?等、何を出力するのか?何処に出すのか?設定が必要です。
DBの文字コードセット:近年は、utf8mb4(utf-8のマルチ4バイトとなります)が多いかと
パスワードポリシー:ローポリシーでも良いですが。。。セキュリティ診断で引っ掛かります。
メモリー関連:設定しておく方が吉(特に本番環境の場合、スペックギリギリまで設定すること)
※いずれも、後で修正するのは大変です。
MariaDBでユーザ、DB、テーブルの作成
結論
powershell
1# DBの作成 2MariaDB[(none)] > CREATE DATABASE {database_name}; 3# ユーザの作成 4MariaDB[(none)] > GRANT ALL PRIVILEGES ON {database_name}.* TO `{user_name}`@`localhost` IDENTIFIED BY '{user_pass}'; 5# テーブルの作成 6USE {database_name}; 7CREATE TABLE m_shouhin( 8 id INT(11) NOT NULL AUTO_INCREMENT COMMENT '商品マスタID', 9 seq INT(4) NOT NULL DEFAULT 0 COMMENT 'シーケンス', 10 shouhin_mei VARCHAR(200) NOT NULL COMMENT '商品名', 11 insert_user INT(11) COMMENT '登録者ID', 12 insert_date DATETAME COMMENT '登録日時', 13 update_user INT(11) COMMENT '更新者ID', 14 update_date DATETAME COMMENT '更新日時' 15 PRIMARY KEY (id) 16); 17MariaDB[(none)] > \q
補足
CREATE TABLE 辺りからCommand Line上から実行するのがつらくなります。
好みの分かれる宗教論争が多くありますが。。。私のおすすめとして、
以下の様なSQLクライアントを利用するのが、良いと思います。
【おすすめツール】
・A5:SQL Mk-2
本家サイト
データベースの種類に依存しない接続が可能
・HeidiSQL
本家サイト
癖のないGUIが使いやすいです。
本家は海外ですが、日本語での操作手順ブログ等の情報が多くある。
投稿2019/10/11 09:41
編集2019/10/17 10:03総合スコア143
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/15 00:05
2019/10/15 01:13
2019/10/15 02:44
2019/10/15 03:01
2019/10/15 04:51
2019/10/15 05:20
2019/10/15 06:09
2019/10/15 07:11
2019/10/15 07:13
2019/10/15 07:24
2019/10/15 07:24
2019/10/15 07:30
2019/10/15 07:32
2019/10/15 07:45 編集
2019/10/15 08:48
2019/10/15 08:50
2019/10/15 09:31
2019/10/16 01:04
2019/10/16 01:25
2019/10/16 03:32
2019/10/16 03:49
2019/10/16 04:13
2019/10/16 04:49
2019/10/16 06:17
2019/10/16 06:34
2019/10/16 06:34
2019/10/16 06:35
2019/10/16 06:47
2019/10/16 06:53
2019/10/16 06:57
2019/10/16 07:25
2019/10/16 07:36
2019/10/17 05:50
2019/10/17 06:46
2019/10/17 07:34
2019/10/18 05:27
2020/07/18 02:07