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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

XAMPP

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

Q&A

解決済

2回答

3030閲覧

CakePHP2でMySQL(MariaDB)に接続できない

onakahetta

総合スコア23

MySQL

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

XAMPP

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

0グッド

0クリップ

投稿2018/11/15 04:03

編集2018/11/15 05:14

始めまして。プログラミング初心者です。

前提・実現したいこと

勉強のため、こちらのサイトを参考にローカルでCakePHPの環境を作っています。
http://libro.tuyano.com/index2?id=734001

・Windows7
・Xampp7.2.7
・PHP7.2.7
・CakePHP2.10.13
・mysql Ver15.1 Distrib 10.1.34-MariaDB, for Win32 (AMD64)

発生している問題・エラーメッセージ

画面表示等は問題なくできるのですが、以下のエラーが消えません。

CakePHP is NOT able to connect to the database. Database connection "Mysql" is missing, or could not be created. Selected driver is not enabled

該当のソースコード

app\config\database.phpは以下のように書き換えました。

php

1class DATABASE_CONFIG { 2 3 public $default = array( 4 'datasource' => 'Database/Mysql', 5 'persistent' => false, 6 'host' => 'localhost', 7 'login' => 'root', 8 'password' => '', 9 'database' => 'mysampledata', 10 'prefix' => '', 11 //'encoding' => 'utf8', 12 ); 13 14 public $test = array( 15 'datasource' => 'Database/Mysql', 16 'persistent' => false, 17 'host' => 'localhost', 18 'login' => 'root', 19 'password' => '', 20 'database' => 'mysampledata', 21 'prefix' => '', 22 //'encoding' => 'utf8', 23 ); 24}

試したこと

コマンドプロンプトではDBに接続でき、テーブルの作成もできました。
調べたところPDOがないようなので、php.iniに以下の文言を追加しました。

extension=php_pdo.dll extension=php_pdo_mysql.dll

書き換えた後、Apacheを再起動しphpinfoを確認したのですが、PDO driversはno valueとなっています。
私の書き方が悪いのでしょうか。。。
(調べたサイトによると先程の文言のコメントを外すというように書いてあるのですが、私のファイルには
extension=pdo_mysql
としか書いていなかったので、そのまま追加しました。)
関係があるかは分かりませんが、Apacheのポート番号は81に変更しています。

またPhpMyAdminにも接続できず(mysqliがないと言われる)、これもphp.iniに加えたのですが反映されないのでここらへんの問題かな?と思うのですが、どうしたらいいかわからず手詰まりの状態です。
php.iniの場所は
Loaded Configuration File C:\xampp\php\php.ini
となっており、ここのファイルを編集しています。

初めてなので足りない情報等ありましたら教えてください。
よろしくお願い致します。

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

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

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

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

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

onakahetta

2018/11/15 05:05

すみません、修正します。ありがとうございます。
guest

回答2

0

PDO の問題もですが、MariaDB の場合、localhost の root でログインする場合には「OS のroot ユーザーが実行しているプロセスからでないと駄目」、という設定が標準だった気がします。

なのでできれば別にユーザーを作成してそっちで扱わせた方がよいかも知れません。

投稿2018/11/15 05:21

tacsheaven

総合スコア13703

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

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

onakahetta

2018/11/15 05:39

ご回答ありがとうございます。 一応接続はできたのですが、そちらも確認してみます。
guest

0

ベストアンサー

PDOが入っていないというのが答えだと思いますが。

<?php phpinfo() #CLIなら php -i ``` した結果に ``` --with-pdo-mysql ``` がconfigureにかかれているか確認して下さい。

extension=php_pdo_mysql.dll

と書かれているようですが、そもそもこのDLLは存在するのでしょうか?

投稿2018/11/15 04:23

kunai

総合スコア5405

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

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

onakahetta

2018/11/15 05:11

ご回答ありがとうございます。 --with-pdo-mysql は書かれていないです。 DLLはあるとしたら\xampp\php ですか? そこだとしたら、存在していないです。 DLLをあまり理解していないもので、、、すみません。
kunai

2018/11/15 05:21

phpinfo()の中に「extension_dir」という記述があるはずです。 dllはそこにあるはずなので、探してみていただけますか
onakahetta

2018/11/15 05:24

\xampp\php\extにありました。
kunai

2018/11/15 05:28

そこがextension_dirに指定されているのであれば読み込めるはずですけど。 違う場合、フルパスでextension= を記載してみて下さい。
onakahetta

2018/11/15 05:36

extension_dirがフルパスになっていなかったです。 変更したところ、接続できました! 本当にありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問