0

私は、古い codeigniter サイトを修正してから Rails に移植することを絶対に要求するクライアントと協力している Rails 開発者です (理由は聞かないでください。それはまったく別の質問です)。とにかく、2 つのデータベースが database.php ファイルにリストされているようです。1 つは、godaddy 経由でアクセスできる MySQL DB を指しています。問題ありません。もう1つは、すべての機能(読み取り、書き込み、編集など)を備えたもので、localhostホスト名を持っています。Godaddy アカウントには、この 2 番目のデータベースのテーブルまたはデータベース名の記録がなく、このアプリやドキュメントを作成した開発者に連絡する方法がありません。偶然にも、それは私が変更する必要がある DB であり、新しい Rails アプリに移植する必要があります。ここで明らかなことを完全に見逃していますか?

$active_group = "default";
$active_record = TRUE;
$db['default']['hostname'] = "hostedresource.com";
$db['default']['username'] = "uname";
$db['default']['password'] = "pword"; 
$db['default']['database'] = "database";
$db['default']['dbdriver'] = "mysqli";
$db['default']['dbprefix'] = "";
$db['default']['active_r'] = TRUE;
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

// Admin group (for adding and deleting articles)
$db['admin']['hostname'] = "localhost";
$db['admin']['username'] = "username";
$db['admin']['password'] = "password";
$db['admin']['database'] = "other_database";
$db['admin']['dbdriver'] = "mysql";
$db['admin']['dbprefix'] = "";
$db['admin']['active_r'] = TRUE;
$db['admin']['pconnect'] = TRUE;
$db['admin']['db_debug'] = TRUE;
$db['admin']['cache_on'] = FALSE;
$db['admin']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

そして、タスクファイルの1つにmysql_connect呼び出しがあります

$conn = mysql_connect("localhost", "username", "password"); mysql_select_db("other_database");
4

1 に答える 1

2

Godaddy がサイトをホストしていますか? Godaddy がすべての Web ホスティングと mysql ホスティングを分離していることを知っているので、そうではないと思います。

古いgo-daddy sql dbにアクセスしていたのと同様の状況がありましたが、新しいもの(hostgatorから使用していたVMに対してローカルでした)も基本的に同じコードを使用していました(使用したことを除いて)あなたが想定しているような新しいmysqli拡張機能)

このインスタンスの localhost は、DB が PHP を実行している同じマシン上にあることを意味します。したがって、localhost db は、Web サーバーが実行されているマシンに配置する必要があります。サーバーに SSH アクセスできる場合は、シェルから mysql を実行して、必要な情報を取得できるはずです。

yoururl/phpmyadmin を試すこともできます...多くのサーバーにはプリインストールされています...

さて、あなたが資格情報を持っていることを願っています:-p

=======

あなたが得ている今

#2013 - Lost connection to MySQL server at 'reading initial communication packet', system error: 110

通常、これはローカル IP (コンピューター) が PHPmyadmin のアクセス制御リストにないことを意味します。

ホストにコントロール パネルがある場合は、phpmyadmin 設定の [Allowable Hosts] セクションに IP アドレスを追加できるはずです (cpanel などのほとんどのコントロール パネルにはこれがあります)。

yoururl/cpanel または yoururl:2083 を試してみてください

phpmyadmin ini ファイルを見つける必要がない場合、私のサーバーでは /etc/httpd/conf.d/phpMyAdmin.conf にありますが、設定によって異なります。

iniファイルで

#obviously the path is dependent on your setup

<Directory "/usr/share/phpMyAdmin"> 
Options FollowSymLinks
AllowOverride None
Order allow,deny
#put your ip address here
Allow from 111.111.111.111
</Directory>
于 2013-07-11T22:11:45.877 に答える