你好,遠程云主機上的MySQL有幾種方式
創(chuàng)新互聯(lián)建站是少有的成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、營銷型企業(yè)網(wǎng)站、小程序制作、手機APP,開發(fā)、制作、設(shè)計、買友情鏈接、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,自2013年起,堅持透明化,價格低,無套路經(jīng)營理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評
1、原生
mysqli_connect(host,username,password,dbname,port,socket);
2、框架
如ThinkPHP框架,在database.php中可以直接配置遠程鏈接參數(shù)
//?服務(wù)器地址
'hostname'????????=?'你的IP',
//?數(shù)據(jù)庫名
'database'????????=?'',
//?用戶名
'username'????????=?'',
//?密碼
'password'????????=?'',
//?端口
'hostport'????????=?'',
//?連接dsn
其他的框架,您可以看下框架的手冊,按照手冊一步步來配置
希望對你有幫助!
1、在asp網(wǎng)站上生成 xml新聞源 php中調(diào)用
2、php直接遠程讀取asp上的網(wǎng)頁 下面發(fā)段php遠程讀取的函數(shù)
function get_content($url)
{
$buf=parse_url($url);
if($buf['scheme']=="http")//如果是URL
{
$host=$buf['host'];
$page=$buf['path'];
if(trim($buf['query'])!=="") $page.="?".trim($buf['query']);
$myHeader="GET $url HTTP/1.1\r\n";
$myHeader.="Host: $host\r\n";
$myHeader.="Connection: close\r\n";
$myHeader.="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
$myHeader.="Accept-Language: zh-cn,zh;q=0.5\r\n";
$myHeader.="Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7\r\n";
$myHeader.="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.7.6) Gecko/20050226 Firefox/1.0.1 Web-Sniffer/1.0.20\r\n";
$myHeader.="Referer: \r\n\r\n";
$server=$host;
$port=80;
$res="";
if(false!==($fp = @fsockopen ($server, $port, $errno, $errstr, 30)))
{
@fputs ($fp, $myHeader);
while (!@feof($fp)) $res.= @fgets ($fp, 1024);
@fclose ($fp);
}
else return false;
if(strlen($res)==0) return false;
return $res;
}
else//如果是本地文件
{
$fileName=$url;
if(false!==@file_exists($fileName))
{
if(false!==($buf=@implode("",file($fileName)))@strlen($buf)0)
{
return $buf;
}
else return false;
}
else return false;
}
}
和ASP+ACCESS不一樣,其實你的PHP一直都是在操作遠程數(shù)據(jù)庫:
你的mysql_connect連接MYSQL數(shù)據(jù)庫的時候,即使是本地數(shù)據(jù)庫,程序也完全是和遠程一樣的操作:使用TCP連接你指定的服務(wù)器端口,127.0.0.1和data.baidu.com這樣的主機,程序是完全相同的。
決方法:
1。
改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改
"mysql"
數(shù)據(jù)庫里的
"user"
表里的
"host"
項,從"localhost"改稱"%"
mysql
-u
root
-pvmwaremysqluse
mysql;mysqlupdate
user
set
host
=
'%'
where
user
=
'root';mysqlselect
host,
user
from
user;
2.
授權(quán)法。例如,你想myuser使用mypassword從任何主機連接到mysql服務(wù)器的話。
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'%'
IDENTIFIED
BY
'mypassword'
WITH
GRANT
OPTION;
如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql服務(wù)器,并使用mypassword作為密碼
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'root'@'192.168.1.3'
IDENTIFIED
BY
'mypassword'
WITH
GRANT
OPTION;
$conn=mysql_connect('主機','數(shù)據(jù)庫名','密碼');?將’主機‘改為IP號,是可以遠程訪問數(shù)據(jù)庫的。
前提是需要:
? ? ?1、關(guān)閉所訪問的主機的?防火墻。(不然其他用戶無法訪問主機)
? ? ?2、設(shè)置主機上的?數(shù)據(jù)庫的?訪問權(quán)限,即?允許?其他用戶訪問?數(shù)據(jù)庫。
? ? ? ? ? MySql數(shù)據(jù)庫的訪問權(quán)限設(shè)置:在mysql命令行中輸入命令? grant?all?on?*.*?to?root@'%'?identified?by?password;? ? ?其中password是數(shù)據(jù)庫的密碼。
? ? ? 3、該步驟最關(guān)鍵,得保證與主機之間的線路是通的(否則永遠也連不上)。
看了,LZ提出的問題后,親自編程序試了下,程序如下:
上述程序即可,用于測試。
如有問題,請再留言。