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

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

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

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Q&A

5回答

2099閲覧

XREAサーバでのPHPMyadminの全権限ユーザの作成ができません,サイトからのデータベース操作の方法をお教えいただけるとありがたいです

sakuma_yujin

総合スコア27

MySQL

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

0グッド

1クリップ

投稿2018/11/11 07:14

編集2018/11/11 10:52

サーバーの作成とPHPサイトの作成をしようと思いXREAに無料サーバを借りたのですがそこで借りたサーバでインストールしたPHPMyadmin(ボタン一つでインストール)にログインすると特権無しと表示されてしまい、新たな権限のユーザの追加、サイトからの操作ができません
ユーザ名、パスワードはサイトで付与されたものです
サイトからの接続のみならばできました.

イメージ説明

ちなみにSQL文での追加も試してみましたが駄目でした

サイト側で操作しようとしたときのの表示は

SQLSTATE[HY000] [1045] Access denied for user 'ユーザ名'@'localhost' (using password: YES)

となっています

解決方法など心当たりある方いましたら教えていただけると幸いです

階層構造
― index.html
― login.php
― javascript
↳pload.js
index.html内の一部分にLogin.phpを呼び出して表示しています

HTML

1<html> 2 <head> 3 <meta charset='utf-8'> 4 <title>test</title> 5 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 6 7 <script type="text/javascript" src="js/pload.js"></script> 8 9 <link rel="stylesheet"type="text/css" href="css/index.css"> 10 <link rel="stylesheet"type="text/css" href="css/Button.css"> 11 12 </head> 13 <body> 14 15 <div id="allctnt"> 16 <center> 17 18 <h1>GPm</h1> 19 <div id="plt"> 20 <div id ="content"><h2>ようこそ!!</h2></div> 21 <div id ="logincontent"></div> 22 <input type="button" class="button" onclick='psbutton("#logincontent","php/login.php")'value="ENTER"> 23 </div> 24 25 26 </center> 27 </div> 28 29 <!--<script type="text/javascript" src="https://cache1.value-domain.com/xa.j?site=yspr.s1007.xrea.com"></script>--> 30 31 </body> 32</html>

呼び出しと表示用

Javascript

1function psbutton(part,pname){ 2 $(function(){ 3 $(part).load(pname); 4 }) 5}

使用サーバ:XREAフリー

追記しました

Login.php

PHP

1<?php 2//require 'password.php'; // password_verfy()はphp 5.5.0以降の関数のため、バージョンが古くて使えない場合に使用 3// セッション開始 4session_start(); 5header("Location: www.google.com"); // メイン画面へ遷移 6$db['host'] = "localhost"; // DBサーバのURL 7$db['user'] = "yspr"; // ユーザー名 8$db['pass'] = ""; // ユーザー名のパスワード 9$db['dbname'] = "yspr"; // データベース名 10 11// エラーメッセージの初期化 12$errorMessage = ""; 13 14// ログインボタンが押された場合 15if (isset($_POST["login"])) { 16 17 // 1. ユーザIDの入力チェック 18 if (empty($_POST["userid"])) { // emptyは値が空のとき 19 $errorMessage = 'ユーザーIDが未入力です。'; 20 } else if (empty($_POST["password"])) { 21 $errorMessage = 'パスワードが未入力です。'; 22 } 23 24 if (!empty($_POST["userid"]) && !empty($_POST["password"])) { 25 // 入力したユーザIDを格納 26 $userid = $_POST["userid"]; 27 28 // 2. ユーザIDとパスワードが入力されていたら認証する 29 $dsn = sprintf('mysql: host=%s; dbname=%s; charset=utf8', $db['host'], $db['dbname']); 30 31 // 3. エラー処理 32 try { 33 $pdo = new PDO($dsn, $db['user'], 34 $db['pass'], array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); 35 36 $stmt = $pdo->prepare('SELECT * FROM userData WHERE name = ?'); 37 $stmt->execute(array($userid)); 38 39 $password = $_POST["password"]; 40 41 if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 42 if (password_verify($password, $row['password'])) { 43 session_regenerate_id(true); 44 45 // 入力したIDのユーザー名を取得 46 $id = $row['id']; 47 $sql = "SELECT * FROM userData WHERE id = $id"; //入力したIDからユーザー名を取得 48 $stmt = $pdo->query($sql); 49 foreach ($stmt as $row) { 50 $row['name']; // ユーザー名 51 } 52 $_SESSION["NAME"] = $row['name']; 53 header("Location: home.php"); // メイン画面へ遷移 54 exit(); // 処理終了 55 } else { 56 // 認証失敗 57 $errorMessage = 'ユーザーIDあるいはパスワードに誤りがあります。'; 58 } 59 } else { 60 // 4. 認証成功なら、セッションIDを新規に発行する 61 // 該当データなし 62 $errorMessage = 'ユーザーIDあるいはパスワードに誤りがあります。'; 63 } 64 } catch (PDOException $e) { 65 $errorMessage = 'データベースエラー'; 66 //$errorMessage = $sql; 67 // $e->getMessage() でエラー内容を参照可能(デバッグ時のみ表示) 68 // echo $e->getMessage(); 69 } 70 } 71} 72?> 73 74<html> 75 <head> 76 <title>test</title> 77 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 78 <link rel="stylesheet"type="text/css" href="css/Button.css"> 79 </head> 80 <body> 81 <center> 82 <h1>ログイン画面</h1> 83 84 <form id="loginForm" name="loginForm" action="" method="POST"> 85 86 <fieldset> 87 <legend>ログインフォーム</legend> 88 <div><font color="#ff0000"><?php echo htmlspecialchars($errorMessage, ENT_QUOTES); ?></font></div> 89 <label for="userid">ユーザーID</label><input type="text" id="userid" name="userid" placeholder="ユーザーIDを入力" value="<?php if (!empty($_POST["userid"])) {echo htmlspecialchars($_POST["userid"], ENT_QUOTES);} ?>"> 90 <br> 91 <label for="password">パスワード</label><input type="password" id="password" name="password" value="" placeholder="パスワードを入力"> 92 <br> 93 <input type="submit" id="login" name="login" value="ログイン"> 94 </fieldset> 95 96 </form> 97 <br> 98 <form action="SignUp.php"> 99 <fieldset> 100 <legend>新規登録フォーム</legend> 101 <input type="submit" value="新規登録"> 102 </fieldset> 103 </form> 104 </center>center> 105 </body> 106</html>

MySQL
データベース名:yspr

UserData

idnamepassword

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

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

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

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

m.ts10806

2018/11/11 10:09

要件が変わってきていますのでタイトルも調整願います。またこのphpはどこに置いてどこから実行されてるのでしょうか? 提示されている情報だけでは不明点が多いです。どのようなデータがあるのか、そもそもこのphpはどこから呼び出されているのか、入力フォームならそのhtmlなど。
sakuma_yujin

2018/11/11 10:53

修正しました。よろしくお願いします
m.ts10806

2018/11/11 11:57

冒頭いきなりheader()で画面遷移させてますけど何がしたいのでしょうか・・。
m.ts10806

2018/11/11 11:59

PHPはサーバーにおいてブラウザから http://ドメイン/login.php のような形でアクセスされてるんですよね?
sakuma_yujin

2018/11/11 12:05

はい、その形でアクセスしています
m.ts10806

2018/11/11 12:07

あえてJavaScriptでフォームをロードしているのはどういう意図があるのでしょうか?(あと冒頭のheader()が謎です)
colling

2018/11/11 13:44 編集

もしかして、login.phpのログインフォームにMySQLのユーザー名とパスワードを入力していますか?
TeamPassionall

2019/05/29 14:26

あ。私そのコード使ったことあります。 回答にも書きましたが、 hostの所を、[localhost]から、[localhost:3306]に変えてみてください。 あと、そのコードはpassword.phpが無いと、パスワード認証処理に影響が出ます。 そのコードがあったquitaのページにリンクがありますので、ダウンロードして配置してください。
TeamPassionall

2019/05/29 14:32

冒頭にheader()持ってきてますけど、それは何をさせたいんですか? それがあると、無条件にgoogleに飛ばされますよ
phpsyoshinsya

2019/05/31 05:57

テーブルの唯一のデータはIDでしょうか? それとも、唯一は設定していないのでしょうか? もし、唯一が設定されていないと、今後公開するなら、同一のユーザーIDを許してしまうことにならないように、新規登録のときに、既に登録されているユーザーIDのために使用できませんのエラーメッセージを出すのに、一度セレクトしてフェッチしてレコードを確認してという処理が必要になりますが大丈夫ですか? ユーザーIDをもとに探索するのに、whereを使用して、'?'になっていますが、私の考えでは'*'ではないかと思いますが、既に試されていますか?
guest

回答5

0

XREA では、データベース作成時に指定した「ユーザー名(データベース名と同じ)」、「パスワード」以外は使用できません。
(1つのデータベースに ユーザー名、パスワードは、1つしか使えません。)

複数のWebアプリで、データベースを使う場合は、データベース作成時の「ユーザー名」・「パスワード」を共通して使用します。

投稿2018/11/11 11:20

CHERRY

総合スコア25171

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

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

sakuma_yujin

2018/11/11 12:04

作成時のユーザ名パスワードでのデータベースが操作できない場合、そのアカウントの問題点を探し出すしかないということですか?
CHERRY

2018/11/11 12:10

操作できないというのであれば、エラーメッセージが出ているはずですが、どんなエラーが出ているのでしょうか?
guest

0

XREAの管理画面から「データベースの新規作成」を行ってください。データーベースを操作できるユーザー(データベース名と同一)が一個作成されます。

投稿2018/11/11 08:16

編集2018/11/11 08:18
hichon

総合スコア5737

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

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

sakuma_yujin

2018/11/11 08:56

作成はすでにしてあるのですがその中でグローバル権限のすべてを持つユーザの作成ができません。 そこがやりたいのですが。。。。
hichon

2018/11/11 09:09 編集

このようなサービス(Saas)では、1台のサーバーに複数のユーザーのデータベースが同居しているので、特権ユーザーは提供されません。
sakuma_yujin

2018/11/11 09:22

そうなると、新しいユーザが作れないためWebサイト上のPHPからの操作は事実上不可能ということですか?
hichon

2018/11/11 09:30

「データーベースを操作できるユーザー(データベース名と同一)」を使用して下さい。
sakuma_yujin

2018/11/11 09:47

今現在そのようにしています。 何かSQL文に問題があるのでしょうか 追記します
m.ts10806

2018/11/11 10:04

要件の方向性大きくかわってませんかね…
phpsyoshinsya

2019/05/31 05:24

他の人もそれとなく書いてはくれているのですが、GRANTの権限を与えたテーブルを作ることはできますが、GRANTの権限をもつユーザを作ることが無料の状態および広告非表示オプションの購入ではできないので、どうしてもGRANTなユーザが必要なら、xreaのサーバーのデータベースを利用せず、DDNSなどを利用して自前でPCにインストールするか、他の有料データベースだけ借りるかしか現段階では提案できないです。私の勉強不足と理解不足なところがあるかもしれません。 テーブルを作ることも、私はPHPMyAdminではなく、PHPのコードで行っています。
guest

0

「サイトからの操作」というのは具体的に何をさしますか?
というかサポートにライブチャットがあるようなので時間内であればそちらに問い合わせたほうが早いような。
フリープランはDB1個という仕様からもそのあたりの制限があるようには思いますが。
特権があったら何でもできてしまいますからね。

投稿2018/11/11 08:14

m.ts10806

総合スコア80850

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

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

0

「サイトからの操作が出来ません。」
多分phpmyadminの、infomation_schemaデータベースの操作や、新規データベース作成のことではないかと思います。
まず、infomation_schemaデータベースは権限が有っても操作できないと思うんですけど…
また、「xreaのdbのroot権限が欲しい。」と、私もサポートに問い合わせたことがありますが、回答は「共用のデータベースサーバーを使っているのでroot権限は付与しかねます。」との事でした。
Login.phpはそれQuitaのコピペですよね?
私もそのコード使ってました。
password.phpがコメントアウトしてありますが、そのコードはpassword.phpが無いとうまく動きませんよ。
Quitaのページにリンクが貼ってあるので配置してください。
また、コードが「コピペしたものにDB情報を書き加えただけ」だったらうまく動きます。
また、DBのhostの所を「localhost」じゃなくて、「localhost:3306」に変えてみてください。
うまく動きませせんか?
私の場合はこれでうまく行きました。
試してみて、新たなエラーが出たら教えてください。

投稿2019/05/29 14:14

編集2019/05/29 14:22
TeamPassionall

総合スコア80

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

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

0

いまひとつやりたい事が特定できませんが、特権がなくて困ることはなにかありますか?
私もxreaユーザーですが、特に困る事象は発見されていませんし、テーブルの数も特段の制限はないようですが?

なにをしたいために、特権が欲しいのか、今一度箇条書きにしてもらえるとなにかしらアドバイスできるかもしれません。

このような回答で申し訳ありませんが、よろしくお願いします。

投稿2018/11/11 13:56

phpsyoshinsya

総合スコア156

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問