質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

1回答

26767閲覧

MySQLに管理者権限でログインできない

kazumi_7

総合スコア21

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

1クリップ

投稿2019/10/11 08:30

編集2019/10/15 00:07

前提・実現したいこと

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ページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

文字量が多いので、気合で読まれてください。

質問まとめ

質問者(kazumi_7)さんの不明点をまとめてみました。
0. XAMPPのMariaDBへ管理者ログインしたい

  1. MariaDBのrootが複数居る理由(1件、削除した場合の対処)
  2. XAMPPコントロールパネルからMariaDBを起動すると起動できない
  3. MariaDBの初期設定諸々(root周り、logファイル)
  4. 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
tama_yn0815

総合スコア143

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazumi_7

2019/10/15 00:05

コメントありがとうございます。 ご明察の通りWindows環境(10)です。 MariaDBに[none]でのログインまではできましたが、 show databases; SELECT Host, User FROM mysql.user WHERE mysql.user = 'root'; が両方ともエラーです……。 エラーメッセージは、 show databases;が ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '> show databases' at line 1 で、追記にある SELECT Host, User FROM mysql.user WHERE mysql.user = 'root'; の方が ERROR 1054 (42S22): Unknown column 'mysql.user' in 'where clause'1 です……。 また、ログイン時にApacheとMySQLが起動できなかった時に一旦再インストールをしているのですが、もう一度再インストールすれば直るのでしょうか。 知識不足で申し訳ございません。
tama_yn0815

2019/10/15 01:13

SQLが間違えていた可能性がありますね。 --- `MariaDB[(none)] > SELECT user, host FROM mysql.user;` こちらのSLECT句を実行してみていただけますうでしょうか?
kazumi_7

2019/10/15 02:44

ありがとうございます。 今度は実行できました。 出力データは ```SQL +------+-----------------+ | User | Host | +------+-----------------+ | root | 127.0.0.1 | | root | ::1 | | root | ec2amaz-1qpqh3j | | pma | localhost | | root | localhost | +------+-----------------+ ``` でした。
tama_yn0815

2019/10/15 03:01

あれま、rootユーザがちゃんと居ますね。 でしたら、削除出来なかったのではないでしょうか?? 。。。MySQLがXAMPPから起動するとエラーとの事でしたが、エラーログは如何でしょうか? DBが正常に起動できないとアプリ(PHP)側から接続はできません。 ```SQL MariaDB[(none)] > SHOW VARIABLES LIKE '%log_file%'; ``` C:\xampp\mysql\data*****.logみたいなデータが出力されましたら、成功です。 ※相対パスの場合があるので、その場合、適宜読み替えてください。
kazumi_7

2019/10/15 04:51

何度もすみません。 最初に削除した時はユーザーのrootが一つ減ったのを確認しています。 再インストールした時に復旧できたのでしょうか……。 MySQLは解決して、今はXAMPPから正常に起動しています。 エラー文は何だったか失念しました……。 SQL文の実行結果です。 +---------------------------+--------------------------+ | Variable_name | Value | +---------------------------+--------------------------+ | aria_log_file_size | 1073741824 | | binlog_file_cache_size | 16384 | | general_log_file | DESKTOP-PVI11FN.log | | innodb_log_file_size | 5242880 | | innodb_log_files_in_group | 2 | | slow_query_log_file | DESKTOP-PVI11FN-slow.log | +---------------------------+--------------------------+ .logのファイルは二つありますが、いずれもパスが出てきていません。
tama_yn0815

2019/10/15 05:20

XAMPPコントロールパネルから起動できているのでしたら、あと一歩ですね。 再インストールを実行されているのでしたら、環境は綺麗になっておりますので、 CREATE USER構文かGRANT構文を実行すれば、ユーザは作成できそうです。 こちらでまとめてユーザの作成と権限の付与が出来ます。 ```SQL MariaDB[(none)] > GRANT 権限 ON レベル TO ユーザ IDENTIFIED BY PASSWORD 'パスワード' ```  権限のところ:SELECT、UPDATE、INSERRT、DELETE、の組み合わせやALLなどを記述します。 レベルのところ:*.*ですべてのDBとテーブルに対して、指定権限を付与する ユーザのところ:'作成したユーザ名'@'ホスト名orIPアドレス'を記述         ホスト、IPアドレス箇所は、そのユーザの接続元が何処か?です。         localhostを指定で、コマンドラインにて「mysql -u ユーザ名」でログイン可です。 パスワードのところ:お好みのパスワードを指定、指定条件はDBのパスワードルールを順守する必要があります。 [参考サイト①:https://qiita.com/hishigataBOZE/items/00e4522a945399e9bf96] [参考サイト②:https://www.dbonline.jp/mysql/user/index5.html] ・・・ログについては一度アンインストールしているので、起動不可時点のログは消えているので、 あまり、本件と関係なくなってしまいました。 が、一応、共有しますと | general_log_file | DESKTOP-PVI11FN.log | こちらが、エラーログのファイルだと思われます。。。 すみません、私のPCがXAMPP環境をインストールできないため、勘所で回答させていただいております。 こちらのファイルの記述を確認いただけますでしょうか。 C:\xampp\mysql\bin\myconf -------------- [mariadb] ... log_error=mariadb.err ## ここに記述された場所に出力されます。ファイル名の場合、相対パス扱いで出力されます。 --------------
kazumi_7

2019/10/15 06:09

GRANT ALL PRIVILEGES ON ``.* TO 'root'@'localhost' IDENTIFIED BY 'root'; と入力すればroot権限で入れるようになるのでしょうか。 (パスがアレですが) 参考サイトを見ながら変更してみましたが、権限とレベルがよく分かっておりません。 ファイルの記述について、C:\xampp\mysql\bin\myconfをbinフォルダで探しましたが、見当たりません……。 コマンドプロンプトで入力するものなのでしょうか。
tama_yn0815

2019/10/15 07:11

えっと、すみません。。。私の頭がパンクしてきたので、整理したいのですが。 実現目標:MySQLに管理者権限でログインして、ユーザーを一件作りたい。 こちらの条件として、私は以下の認識ですが、合っておりますか? mysqlにログイン -> CMD等でMareaDBに"直接"ログインすること 管理者権限 -> MareaDBのrootユーザのこと ユーザーを一件作りたい -> MareaDBのユーザのこと こちらの認識は合っておりますか? MariaDB[(none)] > GRANT ALL PRIVILEGES ON ``.* TO 'root'@'localhost' IDENTIFIED BY 'root'; こちらは、実行すると危険です。 1つ目に、rootユーザのGRANTは変更しないこと(予期しない不具合の元です) 2つ目に、構文が一部間違っております。  レベル箇所の「``.*」ですが、DB名が指定されておりません。  DBを全体にする場合、*を入れましょう。 【権限とレベルについて】 権 限:ユーザに対して許可したい命令の種類     例)XXXユーザに"SELECT権限"を与えたい。等の要求です。 レベル:付与したい権限を有効にする範囲の指定     例)XXXユーザに"YYYYDBのZZZZテーブル"に対してSELECT権限を与えたい 全権限を付与する場合の例を示します。 GRANT ALL PRIVILEGES ON 'dbname'.'tablename' TO 'username'@'hostname' IDENTIFIED BY 'password';    ※シングルクォート箇所は、適宜変更してください。
tama_yn0815

2019/10/15 07:13

mysqlにログイン -> CMD等でMareaDBに"直接"ログインすること この部分が肝になります。 直接ではなく、アプリ(PHP)側のログイン機能をDBユーザで代替させる等のサービスを行う場合、 質問の意図がガラリと変わりますので、一度、確認したく。。。すみません(;^ω^)
kazumi_7

2019/10/15 07:24

実現目標についてはtama_yn0815様の内容で合っています。 私のコマンドプロンプトへの理解が追い付いていないようで混乱させてしまい、申し訳ございません。 MariaDBに管理者権限でログインできないので、テーブルも作れない、一部権限を持ったユーザーの追加もできない、という状態なので……。 新しく作ったuserというユーザー名に全権限を与える場合は以下でよろしいでしょうか。 GRANT ALL PRIVILEGES ON `*`.* TO 'user'@'localhost' IDENTIFIED BY 'user'; (パスワードはアレですが)
tama_yn0815

2019/10/15 07:24

> 参考サイトを見ながら変更してみましたが、権限とレベルがよく分かっておりません。 > ファイルの記述について、C:\xampp\mysql\bin\myconfをbinフォルダで探しましたが、見当たりません……。 > コマンドプロンプトで入力するものなのでしょうか。 こちら、返信が漏れてました。。。ごめんなさいっ!???? ファイル名が違う可能性があります。 C:\xampp\mysql\bin\my.ini こちらのファイルはありませんでしたでしょうか? こちらもXAMPP環境でのMareaDBの振る舞いを制御するコンフィグファイル(※) ※:多くのミドルウェア(Web、DB、PHP等)は設定コマンドで起動中の振る舞いを設定できますが、   起動前に設定ファイルを読み込んで、グローバルな設定を保持します。   ログファイルの出力設定などは、コンフィグファイルで設定する典型例です。   ...ミドルの種類や切り分け方は割愛します(少々、長い歴史の話が必要になるので( *´艸`))
kazumi_7

2019/10/15 07:30

うお、書いた端から追加のご回答ありがとうございます。 my.iniはありました! log_error="mysql_error.log" これでしょうか。
tama_yn0815

2019/10/15 07:32

連投で、すみません!! GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'user'; このSQLで新規ユーザが作れますよ。 説明が少し足りませんでしたが、ワイルドカード(*)を指定する場合、文字リテラルとして、 シングルクォートで囲む必要はないですよ。 シングルクォートで囲むのは、それが文字列であると強制するときに必要なのです。 > MariaDBに管理者権限でログインできないので、テーブルも作れない、一部権限を持ったユーザーの追加もできない、という状態なので……。 こちらは、管理課権限でログインは出来ておりますよ。 管理者権限とはつまり、rootのことです。 一部権限持ちユーザの追加は、SQLの構文が間違っている可能性もありますから、 一度、上記のSQLを実行してみてください。 【進行度チャート】 1.管理者ログイン 2.ユーザの追加 <- 今ココ 3.テーブル作成
tama_yn0815

2019/10/15 07:45 編集

log_error="mysql_error.log" これです! 同じファイルの設定値で、"datadir"の値が何になっているか、確認できますか? datadirが、ログファイルのある、フォルダまでのパスを示しています。 一応、週末含め5日間も解決していないのと、乗り掛かった船なので、 最後まできちんと案内したいと思います。。。教えるの下手ですが、許してください!!
kazumi_7

2019/10/15 08:48

いえいえ、理解力……の前に知識が足りていませんが、ご回答頂けてありがたいです。 自力で丸一日半ほど格闘した挙句の質問なので……。 乗り掛かった船ですみません。 GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'user'; は実行できました。 SELECT user, host FROM mysql.user; で追加されているのも確認済です。 ファイルパスは datadir="C:/xampp/mysql/data" でしょうか。
kazumi_7

2019/10/15 08:50

今管理者権限でログインできているという事は、ログインエラーの原因はアンインストールした時にパスワードが消えたから、ということなんでしょうか。(よく分かっていない)
tama_yn0815

2019/10/15 09:31

悪い船ではないので、謝らないで大丈夫ですよ~ 仕事中とても暇なので。。。ちょっと失礼な表現ですが(笑) そう言った塩梅ですから、負担じゃありませんよ~ 。。。すごい失念しておりました。 【rootの初期設定】 ```CMD C:\Users\username > cd C:\xampp\mysql\bin C:\xampp\mysql\bin > mysqladmin -u root password New password: (新たに設定したいrootのパスワードを入力) Confirm new password: (再入力) C:\xampp\mysql\bin > mysql -h localhost -u root -p Enter password: (新パスワードを入力) MariaDB[(none)] > (この状態になれば、ログイン成功) MariaDB[(none)] > quit ``` こちらの処理をして、rootをログイン出来る様に初期化する必要があります。 【テーブルの作成】 ```CMD C:\Users\username > cd C:\xampp\mysql\bin C:\xampp\mysql\bin > mysql -u user -p(作成したユーザでログイン) MariaDB[(none)] > show databases; ``` こちらで、利用できるDB領域を確認していただけますでしょうか? 【進行度チャート】 1.管理者ログイン 2.ユーザの追加 3.テーブル作成 <- 今ココ
kazumi_7

2019/10/16 01:04

仕事時間が六時までと書くのを綺麗さっぱり忘れておりました……。 お忙しくないなら少し安心です。 なお理解力と知識が足りていないのは「私」です!!! (まさか勘違いされるとはおもっていなかった) XAMPPでMySQLが起動できなくなってしまったので今悩んでおります……。
kazumi_7

2019/10/16 01:25

MySQLが起動できなくなった件は解決しました。 rootのパスワード再設定も完了。 以下が show databases; の結果です。 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | phpmyadmin | | test | +--------------------+
tama_yn0815

2019/10/16 03:32

おはようございます。 すみません。。。寝坊して出社が遅れたので、返信も遅れました。 定時が18時の件、承知しました。 XAMPPのMySQLが起動しないのは、サービスを重複起動させようとしているからではないでしょうか? 以下の手順を実施いただけますか? ①:「コントロールパネル」→「管理ツール」→「サービス」を起動 ②:"MyySQL"の状態を確認 ③-1:②が起動以外の場合に実施 ③-2:以下のコマンドを実行 ```CMD C:\Users\username > sc delete MySql ``` ③-3:XAMPPを再起動し、XAMPPコントロールパネルからMySQLを起動させる ちなみに、XAMPPから起動させる際、XAMPPコントロールパネルにログが出力されますが、 内容はどのような感じですか?
kazumi_7

2019/10/16 03:49

サービスを見ると、「実行中」となっていました。 これを右クリックで「停止」にすると正常に起動できるようです。 sc delete MySqlの実行結果は [SC] OpenService FAILED 1060: 指定されたサービスはインストールされたサービスとして存在しません。 だそうです……。 今は復旧したので黒い文字だけです。 12:47:32 [mysql] Attempting to start MySQL app... 12:47:32 [mysql] Status change detected: running
tama_yn0815

2019/10/16 04:13

起きていた現象は、"恐らく"と表現されますが、 既にMySQLが起動しており、多重起動させようとしてポートなどが重複したため、 起動できませんってエラーを起こしたのだと思われます。。。勘ですが もしも、今後も起きるようであれば、 「コントロールパネル」→「管理ツール」→「サービス」を起動して、 "MyySQL"の設定を自動起動しない状態等に変える事をお勧めします。 また、お帰りの際などは、スリープを掛けるのではなく、シャットダウンする様にすると良いです。 サービスの操作は、覚えるの大変なので、、、、他者さんへ丸投げします(汗) 要するに、Linux系で言うところのデーモンと呼ばれるプログラムの事ですよ。 普通のプログラムは、実行から操作、終了までを"対話"式に行いますが、 その必要がないプログラムなんかは、OS側から起動させたりしておきたいなって時に使います。 お使いかは分かりませんが、Windows Updateの自動取得なんかがそれに当たります。 [説明サイト](https://www.keicode.com/windows/what-is-nt-service.php) [簡単な手順](https://www.howtonote.jp/windows7/service/index2.html)
tama_yn0815

2019/10/16 04:49

【テーブル作成】 ①:新規ユーザの作成(test DBのみ操作可能ユーザ) ```SQL MariaDB[(none)] > GRANT ALL PRIVILEGES ON 'test'.* TO 'user2'@'localhost' IDENTIFIED BY 'user2'; ``` ②:テーブルの作成 ```SQL MariaDB[(none)] > USE test; MariaDB[(none)] > CREATE TABLE m_shouhin( id INT(11) NOT NULL AUTO_INCREMENT COMMENT '商品マスタID', seq INT(4) COMMENT 'シーケンス', shouhin_mei VARCHAR(200) NOT NULL COMMENT '商品名', insert_user INT(11) COMMENT '登録者ID', insert_date DATETAME COMMENT '登録日時', update_user INT(11) COMMENT '更新者ID', update_date DATETAME COMMENT '更新日時' PRIMARY KEY (id) ); ``` この手順でテーブルが作成できます。 。。。テーブルクリエイト辺りから、コマンドライン(CMD)で実行するのが大変なので、 SQLクライアントツールを使ってSQLを実行するのをお勧めします。 【おすすめツール】 ・A5:SQL Mk-2 [本家サイト](https://a5m2.mmatsubara.com/) データベースの種類に依存しない接続が可能 ・HeidiSQL [本家サイト](https://www.heidisql.com/) 癖のないGUIが使いやすいです。 本家は海外ですが、日本語での操作手順ブログ等の情報が多くある。
kazumi_7

2019/10/16 06:17

ポート3306が既に使われていますのような英文エラーが出た覚えがあります。 帰りはちゃんとシャットダウンしているのですが……とりあえずサービスから開始を自動ではなく手動に切り替えてみました。 サービスの説明が…よく分かりません……! こちら側から操作しなくても自動で動くプログラムという事でしょうか コマンドプロンプトでの入力でよくスペルミスを起こしていたのですが、こんな便利なソフトがあるんですね……。 とりあえずA5:SQL Mk-2をダウンロードしてみました。 そして、先にDB「tennis」を作り、 GRANT ALL PRIVILEGES ON 'tennis'.* TO 'user2'@'localhost' IDENTIFIED BY 'user2'; を実行したところ、エラーが出ました……。 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''tennis'.* TO 'user2'@'localhost' IDENTIFIED BY 'user2'' at line 1 です。
kazumi_7

2019/10/16 06:34

GRANT ALL PRIVILEGES ON tennis.* TO 'user2'@'localhost' IDENTIFIED BY 'user2'; とtennisからシングルクォーテーションを抜いたら作成ができました。
tama_yn0815

2019/10/16 06:34

うーん、GRANT構文のセキュリティが違うよみたいな記事は散見しますが。。。 MariaDBでも同じなのでしょうか。。。ちょっと調べますね。 一旦、「 'tennis'.*」のシングルクォートを外して、「tennis.*」で実行いただけますでしょうか。 DBをコマンドでチマチマ触りのも悪くないのですが。。。 人間は楽をしたい生き物ですから、ツールも進化しています"(-""-)" A5:SQL Mk-2の詳細な使い方などは、Qiita等の記事を参考に接続設定することをおすすめします。 私個人的には、A5:SQL Mk-2は日本人が作ってらっしゃるので同郷のよしみで勧めております。
tama_yn0815

2019/10/16 06:35

あ、出来たのですね!
tama_yn0815

2019/10/16 06:47

では次は、テーブルクリエイトを早速、A5:SQL Mk-2等のツールから実行してみましょう!
kazumi_7

2019/10/16 06:53

あ、書き忘れていました。 ユーザー作成より先にテーブル作ってしまいました……。 そして公式サイトを参考にして、A5:SQL Mk-2の初期設定も完了しました!
tama_yn0815

2019/10/16 06:57

あ、そうだったのですね! では、無事、ご質問の件は完了でしょうか? SQLの構文等でお困りでしたら、新しい質問を作って頂ければ、 また回答しますよ~ こちらの回答は、kazumi_7さんの助けになったであろうモノを まとめて、回答記事にしておきます~ P.S. フォローしますので、お困りの際は、リクエスト出してください~ 気が付いたら、すぐに返事するようにします~ 【進行度チャート】 1.管理者ログイン 2.ユーザの追加 3.テーブル作成 <- 完了!!
kazumi_7

2019/10/16 07:25

多分これで完了です。 長々とお付き合い頂き、ありがとうございました!
tama_yn0815

2019/10/16 07:36

とりあえずは、一安心ですね!ホッ(*´ω`*) いえいえ、回答の修正は今日中に行っておきますー 色々と解説も載せるので、後で、見返してみて下されっ( *´艸`)
tama_yn0815

2019/10/17 05:50

昨日中と云いながら、未だ半分くらいしかまとめられてません! ごめんあさい????
kazumi_7

2019/10/17 06:46

編集中の回答見ました。 複合要因だとは全く思わず……。 「root権限でのログインがしたい」で切ったらまだマシだったんでしょうか。
tama_yn0815

2019/10/17 07:34

すみません、、、編集中の回答、、、また、修正しているのでもう暫しお待ちください。 今回の件、複数要因と云うよりは、問題が複数有った感じでしょうか(笑) 厳しい人も居ますが、私は性分上そこまで?って感じなので気にされないで下さい~ これに懲りず、エンジニアライフを楽しんでください!!( *´艸`)
kazumi_7

2019/10/18 05:27

なるほど、問題が複数あった事に気づかなかったんですね。 また利用する機会がありそうなので(相変わらずPHPで苦戦中) 次は気をつけます。 楽しんで……楽しめるようにしたいです……苦笑
kazumi_7

2020/07/18 02:07

今更ですが……ベストアンサーをつけていない上にまだ「回答受付中」扱いになっていたことに気付いたのでベストアンサーに設定しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問