【发布时间】:2020-09-26 15:01:19
【问题描述】:
我们目前正在使用 LCN 进行托管,并且拥有一个一切正常的数据库,它基本上是一个调用主机上的脚本的应用程序,该脚本使用以下方式登录数据库:
class DB{
private $dbHost = "huya.uksrv.co.uk";
private $dbUsername = "uname";
private $dbPassword = "pword";
private $dbName = "dbase";
public function __construct(){
if(!isset($this->db)){
// Connect to the database
$conn = new mysqli($this->dbHost, $this->dbUsername, $this->dbPassword, $this->dbName, 2083);
if($conn->connect_error){
die("Failed to connect with MySQL: " . $conn->connect_error);
}else{
$this->db = $conn;
}
}
}
收到错误:无法与 MySQL 连接:MySQL 服务器已消失
问题是,将主机更改为 cPanel 并且他们的数据库与我习惯的有点不同,它没有提供正常的登录页面,即:
https://www.mydbadmin.co.uk/index.php 下雪了: https://huya.uksrv.co.uk:2083/3rdparty/index.php
我可以通过 cPanel 登录数据库并创建表等,但我可以运行通常在其他服务器上正常工作的脚本。
我认为问题与 localhost 和套接字有关,但我完全不知道它们是如何工作的。
新的数据库详情如下:
Server: Localhost via UNIX socket
Server type: MariaDB
Server connection: SSL is not being used Documentation
Server version: 10.3.24-MariaDB-log-cll-lve - MariaDB Server
Protocol version: 10
User: xxxxxxxxxxxxxx@localhost
Server charset: cp1252 West European (latin1)
旧的数据库详细信息是:
Server: database.lcn.com via TCP/IP
Server type: MySQL
Server connection: SSL is not being used Documentation
Server version: 5.7.29-log - MySQL Community Server (GPL)
Protocol version: 10
User: xxxxxxxxxx@xxxx.namesco.net
Server charset: UTF-8 Unicode (utf8)
如何修改类 DB{} 代码以连接到新数据库?是否有可能,因为我知道旧服务器是 TCP/IP。
【问题讨论】:
-
我不确定我是否理解,但您已经通过 TCP/IP 进行连接。我可以看到您指定了一个域名,我假设它会转换为一个 IP 地址。我错了吗?
-
这是来自另一台服务器的工作脚本,我的问题是我不确定用什么替换 dbHost。我试过huya.uksrv.co.uk:2083/3rdparty/index.php,但出现“MySQL 服务器已消失”错误
-
它应该只是您的域名,例如
huya.uksrv.co.uk。端口号在第五个参数中单独出现。见php.net/manual/en/mysqli.construct.php -
@Dharman 是的,我也尝试了第五个参数中的端口号,但仍然没有:/