MySQLi 无法连接到 db,但 MySQL 可以

Posted

技术标签:

【中文标题】MySQLi 无法连接到 db,但 MySQL 可以【英文标题】:MySQLi cannot connect to db, but MySQL can 【发布时间】:2015-11-20 13:12:02 【问题描述】:

Config.php:

define("DB_HOST", "127.0.0.1:1433");
define("DB_USER", "****");
define("DB_PASSWORD", "****");
define("DB_DATABASE", "name");

由于某些奇怪的原因,我不断收到错误:

mysqli::mysqli() [mysqli.mysqli]: (HY000/2005): 未知 MySQL 服务器主机 '127.0.0.1:1433' (3) in filelocation/file.php on line X

第 X 行 = $this->con = new mysqli(DB_HOST, DB_USER, DB_PASSWORD,DB_DATABASE);

奇怪的是,我还运行了一个旧的 mysql api,

mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

它连接到数据库没有任何问题。 请注意,我的 MySQLi api 正在工作和运行。我从一两周前才注意到这个问题。

问题


我是否需要更新我的 apache 才能再次运行 mySQLi?

【问题讨论】:

您使用的是什么版本的 PHP?另外,你有没有在phpinfo()查看你有没有mysqli? 你试过DB_HOST", "127.0.0.1没有端口号吗? @b0s3,是的,我有。我只是得到同样的错误,但后来托管'12.0.0.1'。 你试过用localhost代替ip和端口号 【参考方案1】:

您需要在单独的常量中定义您的端口号

define("DB_HOST", "127.0.0.1");
define("DB_USER", "****");
define("DB_PASSWORD", "****");
define("DB_DATABASE", "name");
define("DB_PORT", 1433);

并使用参数连接您的数据库

new mysqli(DB_HOST, DB_USER, DB_PASSWORD,DB_DATABASE,DB_PORT);

【讨论】:

是的,成功了。不过很奇怪,因为它曾经可以工作……也许 msqli 更新?【参考方案2】:
$mysqli = new mysqli("127.0.0.1", "user", "password", "database", "port number");

【讨论】:

以上是关于MySQLi 无法连接到 db,但 MySQL 可以的主要内容,如果未能解决你的问题,请参考以下文章

mysqli::mysqli(): (HY000/2002): 无法通过套接字 'MySQL' 连接到本地 MySQL 服务器 (2)

无法通过php代码连接到mysql数据库,PHP致命错误:找不到类'MySQLi'

mysqli_connect(): (HY000/2002): 无法通过socket连接到本地MySQL服务器

为啥我可以将 java 应用程序连接到 MySQL DB 但无法执行查询? [复制]

无法连接到数据库服务器

PHP 7.2 mysqli 无法在没有 SSL 的情况下使用身份验证插件 sha256_password 连接到 MySQL