PDA

View Full Version : ارتباط به دیتابیسی در یک سرور دیگر



engmmrj
سه شنبه 19 آذر 1392, 13:22 عصر
سلام
من میخوام دیتابیس را از یک سرور دیگر بخوانم و روی سرور مقصد هیچ پنلی نصب نیست فقط Apache , php ,mysql نصب هست و به صورت دستی ip مورد نظر رو allow کردم و الان با error زیر مواجه میشوم

Warning: mysql_connect(): mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file in C:\xampp\htdocs\class\test.php on line

if( mysql_connect('192.208.182.222', 'user','pass',3306) )
echo 'true' ;
else
echo'false';

در گوگل هم سرچ کردم و راحل ها را تست کردم ولی به نتیجه مورد نظر نرسیدم

MMSHFE
سه شنبه 19 آذر 1392, 14:32 عصر
توی اون سرور Remote MySQL Connection رو فعال کردین یا نه؟ ضمناً همونطور که توضیحات گفته، اگه نسخه MySQL روی سرور به تازگی ارتقا پیدا کرده، با دستوری که گفته شده، رمزتون رو جدید کنید یا یکبار دیگه رمز کاربر MySQL رو عوض کنید یا از پشتیبانی بخواین که براتون اینکار رو انجام بدن تا از الگوریتم Hash جدید MySQL استفاده بشه.

sadegh1362
سه شنبه 19 آذر 1392, 16:16 عصر
از تابع Curl استفاده کردین ؟
این تابع در apache به صورت پیش فرض غیر فعاله!!
در این تابع می تونین تابع فراخونیه داده های دیتابیس رو در سرور دوم مستقیم صدا بزنین و مقداراشو دریافت کنین .


$tuCurl = curl_init();
curl_setopt($tuCurl, CURLOPT_URL, "https://example.com/path/for/soap/url/");
curl_setopt($tuCurl, CURLOPT_PORT , 443);
curl_setopt($tuCurl, CURLOPT_VERBOSE, 0);
curl_setopt($tuCurl, CURLOPT_HEADER, 0);
curl_setopt($tuCurl, CURLOPT_SSLVERSION, 3);
curl_setopt($tuCurl, CURLOPT_SSLCERT, getcwd() . "/client.pem");
curl_setopt($tuCurl, CURLOPT_SSLKEY, getcwd() . "/keyout.pem");
curl_setopt($tuCurl, CURLOPT_CAINFO, getcwd() . "/ca.pem");
curl_setopt($tuCurl, CURLOPT_POST, 1);
curl_setopt($tuCurl, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($tuCurl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($tuCurl, CURLOPT_POSTFIELDS, $data);
curl_setopt($tuCurl, CURLOPT_HTTPHEADER, array("Content-Type: text/xml","SOAPAction: \"/soap/action/query\"", "Content-length: ".strlen($data)));


البته این یه ساختار که برا تون گذاشتم باید در مورد ست کردن option هاش مطالعه کنید .
در آدرس زیر

http://ir2.php.net/curl

Tarragon
سه شنبه 19 آذر 1392, 17:16 عصر
از تابع Curl استفاده کردین ؟
این تابع در apache به صورت پیش فرض غیر فعاله!!
در این تابع می تونین تابع فراخونیه داده های دیتابیس رو در سرور دوم مستقیم صدا بزنین و مقداراشو دریافت کنین .


$tuCurl = curl_init();
curl_setopt($tuCurl, CURLOPT_URL, "https://example.com/path/for/soap/url/");
curl_setopt($tuCurl, CURLOPT_PORT , 443);
curl_setopt($tuCurl, CURLOPT_VERBOSE, 0);
curl_setopt($tuCurl, CURLOPT_HEADER, 0);
curl_setopt($tuCurl, CURLOPT_SSLVERSION, 3);
curl_setopt($tuCurl, CURLOPT_SSLCERT, getcwd() . "/client.pem");
curl_setopt($tuCurl, CURLOPT_SSLKEY, getcwd() . "/keyout.pem");
curl_setopt($tuCurl, CURLOPT_CAINFO, getcwd() . "/ca.pem");
curl_setopt($tuCurl, CURLOPT_POST, 1);
curl_setopt($tuCurl, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($tuCurl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($tuCurl, CURLOPT_POSTFIELDS, $data);
curl_setopt($tuCurl, CURLOPT_HTTPHEADER, array("Content-Type: text/xml","SOAPAction: \"/soap/action/query\"", "Content-length: ".strlen($data)));


البته این یه ساختار که برا تون گذاشتم باید در مورد ست کردن option هاش مطالعه کنید .
در آدرس زیر

http://ir2.php.net/curl

در این حالت نمی شه query ها رو تو سرور دوم وارد کرد باید از قبل در سرور اول نوشته شده باشه همچنین خیلی امن نیست.
بهترین کار همون Remote MySQL Connection است که بالا آقای شهرکی توضیح دادند.

engmmrj
سه شنبه 19 آذر 1392, 17:29 عصر
توی اون سرور Remote MySQL Connection رو فعال کردین یا نه؟ ضمناً همونطور که توضیحات گفته، اگه نسخه MySQL روی سرور به تازگی ارتقا پیدا کرده، با دستوری که گفته شده، رمزتون رو جدید کنید یا یکبار دیگه رمز کاربر MySQL رو عوض کنید یا از پشتیبانی بخواین که براتون اینکار رو انجام بدن تا از الگوریتم Hash جدید MySQL استفاده بشه.
استاد نشد ! میشه اطلاعات teamviewer رو بدم خودتون ببینید ؟