對于PHP連接遠程MySql數(shù)據(jù)庫,通常要使用如下的語句:
為延壽等地區(qū)用戶提供了全套網頁設計制作服務,及延壽網站建設行業(yè)解決方案。主營業(yè)務為成都做網站、成都網站制作、延壽網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
var
$serverName
=
'db4free.net:3306';//數(shù)據(jù)庫服務器
var
$dbName
=
'dbname';//數(shù)據(jù)庫名
var
$dbUsername
=
'username';//用戶名
var
$dbPassword
=
'123';//登陸密碼
mysql_connect($serverName,$dbUsername
,$dbPassword);
mysql_select_db($dbName);
如果mysql服務器是你的而你的網站不在服務器里你可以把擁有這數(shù)據(jù)庫權限的用戶設置遠程權限,
在mysql命令如下:grant all no *.* to 用戶名@"遠程的IP地址" identified by "數(shù)據(jù)庫密碼" with grant option;
決方法:
1。
改表法??赡苁悄愕膸ぬ柌辉试S從遠程登陸,只能在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.
授權法。例如,你想myuser使用mypassword從任何主機連接到mysql服務器的話。
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'%'
IDENTIFIED
BY
'mypassword'
WITH
GRANT
OPTION;
如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql服務器,并使用mypassword作為密碼
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'root'@'192.168.1.3'
IDENTIFIED
BY
'mypassword'
WITH
GRANT
OPTION;
這個在你的項目里面配置一下就好了。比如我使用thinkphp框架,在配置文件里面有這么一行: 'DB_HOST'= 'localhost', 這里配置的就是要訪問的數(shù)據(jù)庫服務器,我本地使用就用localhost,如果你是在服務器上的,就寫你服務器的網址或者是IP就好了。任何一個php框架或者不用框架都有這么一個設置的
可以使用pdo進行連接
$dbms='mysql'; //數(shù)據(jù)庫類型
$host='localhost'; //數(shù)據(jù)庫主機名
$dbName='test'; //使用的數(shù)據(jù)庫
$user='root'; //數(shù)據(jù)庫連接用戶名
$pass=''; //對應的密碼
$dsn="$dbms:host=$host;dbname=$dbName";
try {
$dbh = new PDO($dsn, $user, $pass); //初始化一個PDO對象
echo "連接成功br/";
/*你還可以進行一次搜索操作
foreach ($dbh-query('SELECT * from FOO') as $row) {
print_r($row); //你可以用 echo($GLOBAL); 來看到這些值
}
*/
$dbh = null;
} catch (PDOException $e) {
die ("Error!: " . $e-getMessage() . "br/");
}
//默認這個不是長連接,如果需要數(shù)據(jù)庫長連接,需要最后加一個參數(shù):array(PDO::ATTR_PERSISTENT = true) 變成這樣:
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT = true));
和ASP+ACCESS不一樣,其實你的PHP一直都是在操作遠程數(shù)據(jù)庫:
你的mysql_connect連接MYSQL數(shù)據(jù)庫的時候,即使是本地數(shù)據(jù)庫,程序也完全是和遠程一樣的操作:使用TCP連接你指定的服務器端口,127.0.0.1和data.baidu.com這樣的主機,程序是完全相同的。