2013-09-26 3 views
3

В принципе, мне нужно подключиться к другой базе данных в другом домене.Как подключиться к базе данных MySQL в другом домене?

Например, я буду использовать domain1 и домен, которому необходимо подключиться, и domain2 как домен, имеющий базу данных.

Я попытался:

mysql_connect("domain2.com.au", "user", "pass") or die(mysql_error()); 

mysql_select_db("database") or die(mysql_error()); 

Хотя, что отказался работать.

Я искал довольно долгое время в Интернете, чтобы найти решение, и многие из них участвовали в регистрации в SSH, с которым я не знаком, и я хотел бы избежать этого метода.


При необходимости, здесь моя ошибка (некоторые вещи, модифицированные для обеспечения конфиденциальности):

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'user'@'host.com' (using password: YES) in /php/2012.php on line 270 
Access denied for user 'user'@'host.com' (using password: YES) 

Есть вариант, что я должен изменить в моей базе данных, чтобы разрешить доступ из других доменов? Если да, то где именно это?

Есть ли порт, который мне нужно подключить, например, domain2.com.au:3307?

+3

Это действительно должно сработать. Проконсультируйтесь с вашим провайдером хостинга, если они блокируют удаленные подключения MySQL. – Brian

+2

Вы принимаете эти серверы самостоятельно или у вас есть веб-хостинг? Большинство хостов, вероятно, блокируют доступ к MySQL из внешних IP-адресов, что означает, что вы не можете делать то, что хотите, без открытия портов. –

+2

** использовать mysqli или PDO вместо mysql_ * functions ** –

ответ

3

Если вы используете общий хостинг, то он отключен. Вы можете попробовать включить его, обратившись в ваш отдел поддержки, или если вы cPanel x3 перейдите в раздел «Удаленная база данных» в разделе «MySQL».

+1

Переход к «Удаленной базе данных» и присвоение дикой карты там отлично работали. Благодаря! – Fizzix

+1

Имейте в виду, что если вы вдруг заметите медленное время загрузки страницы, это связано с тем, что запросы базы данных, отправленные на внешний сервер (а не на localhost), намного медленнее. И если у вас много запросов, это может значительно замедлить страницу. – Andrew

1

Вам необходимо включить удаленный доступ на сервере MySQL domain2.

Откройте my.cnf файл (/etc/mysql/my.cnf для Debian на базе Linux) и убедитесь, что вы удалите или закомментируйте строку:

#skip-networking 

и добавить или изменить эту строку:

bind-address=[YOUR SERVER's EXTERNAL IP] 

После этого перезагрузите ваш служба mysql.

/etc/init.d/mysql restart 

или

service mysql restart 

Затем вам нужно предоставить удаленный доступ к базе данных. Откройте консоль MySQL:

mysql -u root –p mysql 

mysql> GRANT ALL ON [DB].* TO '[USER]'@'[IP]' IDENTIFIED BY '[PASSWORD]'; 
mysql> exit 

Где [DB] это база данных, [USER] является MySQL имя пользователя, [IP] это внешний IP-адрес вашего сервера и [PASSWORD] пароль пользователя.

http://dev.mysql.com/doc/refman/5.1/en/grant.html

+0

Спасибо за ваш ответ. Где abouts является файлом 'my.cnf'? Это внутри 'PHPMyAdmin'? Я внутри своей Cpanel. – Fizzix

+0

Кроме того, часть 'PASSWORD', это пароль для пользователя этой базы данных? – Fizzix

+0

Извините, неправильно прочитал, что вы НЕ хотите войти в систему через SSH. Но если конфигурация еще не настроена для удаленного доступа, вы должны это сделать. Если у вас есть пользовательский доступ к mysql root, вы можете попробовать выполнить запрос в phpmyadmin. – edditor

Смежные вопросы