dポイントプレゼントキャンペーン実施中!

現在ローカルで開発(cakephp)をしておりますが、
エックスサーバーで公開しようとしますとデーターベースに接続できません。

中々問題解決できるサイトに出会えませんでしたので、恐れ入りますが
ご教授いただけますと幸いです。

■ローカル開発環境
・CentOS5.5
・mysql5.0.95
・cakphp2.2.5

■行き詰っているところ、解決したいこと

現在上記ローカル開発環境でデータベースを作成しています。(testdb)
この作成したデータベースを使いたいのですが、接続方法がわかりません。

まず、そもそもなのですが、可能なのでしょうか?
それとも新しくxserverパネルから新しくデータベースを作成しなければいけないのでしょうか?

■試したこと

>mysql grant all privileges on testdb.* to hogeuser@'mysqlipアドレス' identified by 'xxxxxxxx';
>mysql flush privileges;

database.phpの変更

class DATABASE_CONFIG {

public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'mysqlxx.xserver.jp',
'login' => 'hogeuser',
'password' => 'xxxxxx',
'database' => 'testdb',
'prefix' => '',
//'encoding' => 'utf8',
);

これですと、
Error: A Database connection using "Mysql" was missing or unable to connect.
The database server returned this error: SQLSTATE[28000] [1045] Access denied for user
とエラーが返ってきます。

また、Xserverパネルからmysqlユーザーを追加してみてdatabase.phpを編集してみましたが、
やはり同様のエラーで接続できません。

一体どのようにすれば接続できるのでしょうか?
恐れ入りますが、ご回答宜しくお願い申し上げます。

A 回答 (4件)

>■解決策1


>開発環境で構築したデータベースがあり、xserverパネルで作成したデータベースにインポートする。
>■解決策2
>開発環境で作ったデータベースにxserverから接続する。(これは無理っぽいです)

解決策1です。開発環境からエクスポートして本番サーバのデータベースにインポートします。

自分の開発環境のデータベースをネット上に公開するなんて無茶をしてはいけません。ポートを開けたりしたらセキュリティの設定だけでも大変です(まして開発環境を24時間365日起動しっぱなしにはできないですよね)。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

やはり解決策2は無謀ですよね。。
ご教授いただき誠にありがとうございます。

ということは、通常大半の方は、解決策1をとるということでよろしいでしょうか?

以上、宜しくお願いします。

お礼日時:2013/05/20 15:51

>ということは、通常大半の方は、解決策1をとるということでよろしいでしょうか?



通常とか大半とかといった形容は要りません。それ以外は「あり得ない」です。

たまに「あり得ない方法」を選択してドツボに嵌まって楽しんでいる開発者もいないわけではないでしょうが、そういう『例外』をカウントしても意味がありません。
    • good
    • 0
この回答へのお礼

ご教授いただき誠にありがとうございます。
勉強になりました。

回答No.3をベストアンサーとさせていただきます。

お礼日時:2013/05/20 16:37

質問者さんの環境がよくわからないのだけど


localhostに対して処理しないで参照サーバーを別にもちたいの?
セキュリティの問題で当該ポートに制限がかかっていたりしませんか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
説明不足で申し訳ありません。

>localhostに対して処理しないで参照サーバーを別にもちたいの?

私の勉強不足で参照サーバーをよく理解できておりませんが、開発環境で折角作ったデータベースをそのままlocalで利用したいと考えているところです。

mysqlのポートは開放したのですが、やはり上記同様のエラーとなります。

通常、開発環境で作ったデータベースを本番環境で使うにはどのような手順になるのでしょうか?

恐れ入りますが、ご教授いただけますと幸いです。

お礼日時:2013/05/20 14:10

>それとも新しくxserverパネルから新しくデータベースを


>作成しなければいけないのでしょうか?

一般的にレンタルサーバではサーバ側で用意しているコンパネから行うことになっています。他のユーザに悪影響を与えかねない権限を制限していますので。なので「データベースの追加」や「ユーザーの追加」は(Xserverであれば)サーバパネルから行ってください。

https://www.xserver.ne.jp/manual/man_db_setting. …

エラーメッセージ(Access denied for user )は、ユーザー名の誤りか、データベースへのアクセス権の設定もれだと思われます。コンパネに「アクセス権設定」があるのは珍しいですね。普通はデータベースとユーザが自動的に紐付けられることが多いです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

まず、1点追記になりますが、サーバーパネルで作ったデータベースには接続できます。

しかし、既にあるデータベースを利用したい場合でも
コンパネから同じものを新しく作らなければいけないのでしょうか?

通常の手順がわからないためご教授いただいけないでしょうか?

私の中で解決策はいくつかありますが、通常はどのように行うのかも確認したいと思っております。

■解決策1

開発環境で構築したデータベースがあり、xserverパネルで作成したデータベースにインポートする。

■解決策2

開発環境で作ったデータベースにxserverから接続する。(これは無理っぽいです)

以上、宜しくお願いします。

お礼日時:2013/05/20 14:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!