MySQLに接続できない
by
MySQL接続問題さん
(329ce977)
投稿数:0回
(ベストアンサー:0回)
(ベストアンサー:0回)
2022/01/31 21:15
MySQLを有効にし、データベースを作成したのですが、接続がうまくできません。
$mysqli = new mysqli('MySQLホスト名', 'ユーザー名', 'データベースのユーザ名のパスワード(自分で設定したもの)', 'データベース名');
というコードを「<?php」の下に書き(つまり2行目)、接続したところ、接続拒否されました。これはアカウントの設定問題なのでしょうか?
phpMyadminでログインしたところ、特権なしとなっていたのですが、これが原因でしょうか?
エラー文を下に記載します。分かる方がいればご教授願います。
Warning: mysqli::__construct(): (42000/1044): Access denied for user 'ユーザー名'@'MySQLホスト名' to database 'データベース名' in /home/test/test.php.xdomain.jp/public_html/data/test.php on line 2
※これらのユーザー名やホスト名、データベース名はXFREEダッシュボードのデータベース設定よりコピーしています
$mysqli = new mysqli('MySQLホスト名', 'ユーザー名', 'データベースのユーザ名のパスワード(自分で設定したもの)', 'データベース名');
というコードを「<?php」の下に書き(つまり2行目)、接続したところ、接続拒否されました。これはアカウントの設定問題なのでしょうか?
phpMyadminでログインしたところ、特権なしとなっていたのですが、これが原因でしょうか?
エラー文を下に記載します。分かる方がいればご教授願います。
Warning: mysqli::__construct(): (42000/1044): Access denied for user 'ユーザー名'@'MySQLホスト名' to database 'データベース名' in /home/test/test.php.xdomain.jp/public_html/data/test.php on line 2
※これらのユーザー名やホスト名、データベース名はXFREEダッシュボードのデータベース設定よりコピーしています
by
.さん
(4b9b203e)
投稿数:257回
(ベストアンサー:32回)
(ベストアンサー:32回)
2022/02/01 06:16
同じようにやってみましたがこちらでは特にエラーは発生しませんでした。
パスワードをわざと間違えてやると同じwarningが出ることも確認しました。
チェックポイントとしては次のあたりでしょう。
DBは作成済みですか?
ホスト名、MySQLのID、そのパスワード、DB名は間違いないですか?
そのMySQLと同じサーバーからアクセスしようとしていますか?
(同じサーバーというのは正しくない書き方です。testというIDだとすると、testのPHPサーバーにあるMySQLをアクセスするには、testのPHPサーバーからアクセスする必要があると言う意味です)
特権なしというのはそれで大丈夫です。
自分で作ったPHPなどからDBを作成する権限がないという意味です。DB作成は管理パネルから行ってください。
パスワードをわざと間違えてやると同じwarningが出ることも確認しました。
チェックポイントとしては次のあたりでしょう。
DBは作成済みですか?
ホスト名、MySQLのID、そのパスワード、DB名は間違いないですか?
そのMySQLと同じサーバーからアクセスしようとしていますか?
(同じサーバーというのは正しくない書き方です。testというIDだとすると、testのPHPサーバーにあるMySQLをアクセスするには、testのPHPサーバーからアクセスする必要があると言う意味です)
特権なしというのはそれで大丈夫です。
自分で作ったPHPなどからDBを作成する権限がないという意味です。DB作成は管理パネルから行ってください。
by
.さん
(4b9b203e)
投稿数:257回
(ベストアンサー:32回)
(ベストアンサー:32回)
2022/02/01 18:29
> データベースの中にあるテーブルと紐づけることは必要でしょうか?
new mysqli()でデータベースを開いたら、その後でテーブルを作ったり、テーブルを参照したりします。
> また、データベース名はどこまで書けばいいのでしょうか?
> (IDがtestの場合・データベース名がtestdataの場合:test_testdataと記述するのでしょうか?それともtestdataと記述するのでしょうか?
MySQLサーバーがmysql1.php.xdomain.ne.jp、
MySQLのユーザー名がtest、
MySQLのパスワードがpasswd、
データベース名がtestdataだとすると、
$mysqli = new mysqli('mysql1.php.xdomain.ne.jp', 'test', 'passwd', 'testdata');
となります。
new mysqli()でデータベースを開いたら、その後でテーブルを作ったり、テーブルを参照したりします。
> また、データベース名はどこまで書けばいいのでしょうか?
> (IDがtestの場合・データベース名がtestdataの場合:test_testdataと記述するのでしょうか?それともtestdataと記述するのでしょうか?
MySQLサーバーがmysql1.php.xdomain.ne.jp、
MySQLのユーザー名がtest、
MySQLのパスワードがpasswd、
データベース名がtestdataだとすると、
$mysqli = new mysqli('mysql1.php.xdomain.ne.jp', 'test', 'passwd', 'testdata');
となります。
トピック作成者からの返信 2022/02/01 21:15 posted(329ce977)
ありがとうございます。
データベース名やユーザ名の記述方法が間違っていました。
しかし、今回は
Warning: mysqli::__construct(): (28000/1045): Access denied for user 'ユーザ名'@'サーバー名' (using password: YES) in /home/*ID*/*ID*.php.xdomain.jp/public_html/data/*ファイル名*.php on line 2
と、パスワードがYESとなって接続拒否されました...
これはどうすればいいのでしょうか?
by
.さん
(4b9b203e)
投稿数:257回
(ベストアンサー:32回)
(ベストアンサー:32回)
2022/02/02 06:22
おそらくIDかパスワードか、少なくともどちらかが間違っています。
トピック作成者からの返信 2022/02/01 06:59 posted(329ce977)
ご回答ありがとうございます。
データベースの中にあるテーブルと紐づけることは必要でしょうか?
追加の質問となってしまい、申し訳ありません。
また、データベース名はどこまで書けばいいのでしょうか?
(IDがtestの場合・データベース名がtestdataの場合:test_testdataと記述するのでしょうか?それともtestdataと記述するのでしょうか?