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