【问题标题】:PHP connect to MariaDB, Multiple InstancesPHP连接到MariaDB,多个实例
【发布时间】:2017-10-08 14:15:15
【问题描述】:

我有一个 Synology Box,刚刚将 MariaDB 5 升级到 MariaDB 10。 我在那里托管的网页可以正常工作,但更新 MariaDB 数据库中数据的 PHP 脚本现在失败了

连接失败:SQLSTATE[HY000] [1049] 未知数据库 'joomla_d'

在 phpMyAdmin 中,我可以选择连接到不存在数据库的 MariaDB 5 和存在数据库的 MariaDB 10。如何在我的脚本中做出这个选择?

这是与旧 DB 配合良好的 PDO 行:

$DB_Conn = new PDO("mysql:host=localhost;port=3306;dbname=$DB_Name", $DB_User, $DB_Pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));

感谢您的帮助 问候 洛朗

【问题讨论】:

  • 10 是否在不同的端口上运行?
  • 我试图检查,但我在 phpMyAdmin 中没有看到这个!如何检查...
  • 你有一个你设置10的配置文件吗?也许运行SHOW GLOBAL VARIABLES LIKE 'PORT';,但不确定这是否适用于玛丽亚。
  • 是的,他们使用的是 3306 的 3307 端口。我在语句中更改了这一点,但仍然出现相同的错误
  • SHOW DATABASES; 显示 db?

标签: php pdo mariadb


【解决方案1】:

我将“localhost”替换为“127.0.0.1”,它现在可以正常工作,同时仍将新端口地址保留在连接字符串中。

也许有人可以证实这一点!

感谢所有贡献者! 干杯 洛朗

【讨论】:

  • localhost 将导致mysql API 通过UNIX socket 连接,而IP 地址使其通过TCP 连接
  • OK.. 所以这就是为什么即使我们在本地主机上使用 IP 地址也是有意义的!
猜你喜欢
  • 2019-01-02
  • 2021-11-10
  • 2018-05-11
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 2020-04-21
  • 2015-03-10
  • 1970-01-01
相关资源
最近更新 更多