实际上我在一个文件中有药物列表,我想将其插入ec2亚马逊服务器数据库,这是mysql。我在本地主机上运行这个文件。当我尝试我的代码,这是在PHP它显示如下错误:我没有得到。
警告:mysql_connect() [function。在C:websitesmedicinefilehandling.php的第17行中,无法连接到"ec2- 122-248-2205-105.ap-东南-1.compute.amazonaws.com"(10060)的MySQL服务器无法连接MySQL这是一个服务器名:ec2-122-248-220-105.ap-southeastern -1.compute.amazonaws.com这是我的代码…让我知道我错在哪里。
<?php
$hostname='http://ec2-122-248-220-105.ap-southeast-1.compute.amazonaws.com';
//$port='3306';
$user='root';//// specify username
$pass='bitnami'; //// specify password
$dbase='fortis'; //// specify database name
set_time_limit(1000);
$connection = mysql_connect("$hostname" , "$user" , "$pass" ,"$port")
or die ("Can't connect to MySQL");
$db = mysql_select_db($dbase , $connection) or die ("Can't select database.");
$file = fopen("med4","r") or exit ("File not found");
$c =0 ;
while (!feof($file)){
++$c;
$val = fgets($file);
mysql_query("insert into patientinfo_medicines (medicine) values ('$val')");
}
fclose($file);
echo $c;
?>
无法连接到服务器的原因可能有很多。
- 服务器上的防火墙(iptables)设置阻止外部访问
- MySQL服务器只监听本地连接 服务器上没有MySQL远程用户
- 你的
$hostname
应该是'ec2-122-248-220-105.ap-southeast-1.compute.amazonaws.com';
可能还有其他原因。
此外,出于从安全到延迟的各种原因,通过internet连接数据库通常是一个坏主意。
祝你好运!
ERROR 2005 (HY000): Unknown MySQL server host 'http://ec2-122-248-220-105.ap-southeast-1.compute.amazonaws.com/' (1)
试着把你的"主机名"改成IP地址怎么样?有帮助吗?
当我尝试ping它时,它无法到达
如果您使用的是BitNami AMI,您将无法在默认配置下远程连接到MySQL数据库。出于安全原因,我们没有启用它(我是BitNami开发人员)。在任何情况下,如果你想允许远程连接数据库'fortis',我建议创建一个不同的用户,只能访问该数据库,而不是使用用户'root'。这样会更安全一点,尽管Sukumar提到最好避免在公共机器上访问MySQL。
要让另一个用户远程访问,您需要(使用putty)连接到您的amazon机器并执行以下命令。我猜你正在使用BitNami(因为你的密码)。
. /opt/bitnami/scripts/setenv.sh
(注意点和命令之间的空格,这将加载BitNami环境)。
mysql -u root -p -e "grant all privileges on fortis.* to
'fortis_user'@'localhost' identified by 'fortis_password'"
上面的代码将为从localhost访问的数据库创建fortis_user。
mysql -u root -p -e "grant all privileges on fortis.* to
'fortis_user'@'%' identified by 'fortis_password'"
上面的命令允许从任何其他ip访问数据库的fortis_user。
现在您应该能够连接到:
$hostname='ec2-122-248-220-105.ap-southeast-1.compute.amazonaws.com';
//$port='3306';
$user='fortis_user';//// specify username
$pass='fortis_password'; //// specify password
$dbase='fortis'; //// specify database name