php连接非本机数据库,数据库远程连接的账号密码问题,Unable to connect,数据库集群的vip问题

mac2024-04-11  29

1.连接其他主机的数据库服务

如果你本机装有数据库那么直接输入localhost就可以了,如果是要远程调用其他主机的数据库你需要将localhost改成远程主机的ip(比如192.168.1.11)

mysql_connect(servername,username,password); [root@proxy ~]# vim /usr/local/nginx/html/mysql.php<?php $con = mysql_connect('localhost','root','密码.');        #连接数据库 if (!$con){     die('Unable to connect!'). mysql_error(); } mysql_query("set names utf8");            #字符编码为utf8 mysql_select_db("mysql",$con);                   #选择数据库            $result = mysql_query("select *from user");        #sql语句 while($row = mysql_fetch_array($result)){     printf("Host:%s",$row[0]);     printf("</br>");     printf("Name:%s",$row[1]);     printf("</br>"); } ?>

 

2.远程连接的账号密码问题

在公司开发环境中,数据库管理员是不会让你用root账户访问数据库的.

这里我们为了简单,就用root访问,但是有一个地方一定要注意,这里的root账号密码并不是你登录数据库服务的账号密码

举个例子,假设在数据库服务器上登录数据库,这里的密码我用的是123456.

mysql -uroot -p123456       

那么是不是我$con = mysql_connect('localhost','root','密码.');  用的也是123456呢?

肯定不是,你需要在mysql服务器上授权一个root账号(注意修改默认密码策略)

 grant all on *.* to root@"%" identified by "123456";

此时才可以使用root去连接远程数据库

但是这样很容易混淆,所以不建议取名为root

 grant all on *.* to remote_user@"%" identified by "123456";

 

3,数据库集群的vip问题

如果你为数据库服务器做了主从,那么你需要填写vip地址而不是数据库服务器地址

比如我的主数据库服务器ip为192.168.1.20,从服务器的ip192.168.1.21

而我的主服务器vip是192.168.1.80,那么我需要填写vip的地址,为什么这么做,因为主服务宕机后vip将转移到从服务器上,此时如果你填写的主服务器地址那么肯定要修改代码,这很浪费时间

$con = mysql_connect('192.168.1.80','root','密码.');

最新回复(0)