标签: php

连接到 PostgreSQL 服务器:致命:没有主机的 pg_hba.conf 条目

您好,我正在尝试运行发送给我的网站,但这样做后出现此错误

connect to PostgreSQL server: FATAL: no pg_hba.conf entry for host "4X.XXX.XX.XXX", user "userXXX", database "dbXXX", SSL off in C:\xampp\htdocs\xmastool\index.php on line 37
Run Code Online (Sandbox Code Playgroud)

谷歌搜索后,它说我只需要在 pg_hba.conf 文件中为该特定用户添加一个条目。这是我的 pg_hba.conf 文件。

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# IPv4 local connections:
local dbXXX userXXX md5
host    dbXXX  userXXX  XX.XXX.XXX.XXX           md5
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32 …
Run Code Online (Sandbox Code Playgroud)

postgresql php pg-hba.conf

257
推荐指数
9
解决办法
69万
查看次数

如何摆脱“最大用户连接数”错误?

我正在将 MySQLi 用于我的网络应用程序,但是每当我想访问某个特定页面时,我都会得到mysqli_connect() [function.mysqli-connect]: (42000/1203): User ***_user already has more than 'max_user_connections' active connections.

我已经尝试关闭所有连接,但这并没有改善情况。

有没有办法确切知道在任何特定时刻打开了哪些连接或任何其他可以帮助我解决此问题的有用数据?

顺便说一句,我使用的是 PHP 5.2.17 和 MySQL 5.1。

mysql mysql-5 max-connections php mysql-5.1

17
推荐指数
1
解决办法
14万
查看次数

导入大型 SQL 文件 phpmyadmin

我正在尝试在 phpmyadmin 中导入此 SQL 文件并收到此消息

#1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near 
'<br /> <b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tr' at line 1
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能执行此导入?

mysql phpmyadmin php

12
推荐指数
1
解决办法
7万
查看次数

如何在 InnoDB 引擎中使用插入延迟并为插入语句使用更少的连接?

我正在开发一个涉及大量数据库写入的应用程序,大约 70% 的插入和 30% 的读取。这个比率还包括我认为是一次读取和一次写入的更新。通过插入语句,多个客户端通过下面的插入语句在数据库中插入数据:

$mysqli->prepare("INSERT INTO `track` (user, uniq_name, ad_name, ad_delay_time ) values (?, ?, ?, ?)");
Run Code Online (Sandbox Code Playgroud)

问题是我应该使用insert_delay还是使用mysqli_multi_query机制,因为 insert 语句在服务器上使用 ~100% cpu。我在我的数据库上使用 InnoDB 引擎,所以插入延迟是不可能的。服务器上的插入是 ~36k/hr 和 99.89% 读取,我也在使用 select 语句在单个查询中检索数据七次,这个查询在服务器上执行需要 150 秒。我可以使用什么样的技术或机制来完成这项任务?我的服务器内存是 2 GB,我应该扩展内存吗?。看看这个问题,任何建议将不胜感激。

表的结构:

+-----------------+--------------+------+-----+-------------------+----------------+
| Field           | Type         | Null | Key | Default           | Extra          |
+-----------------+--------------+------+-----+-------------------+----------------+
| id              | int(11)      | NO   | PRI | NULL              | auto_increment |
| user            | varchar(100) | NO   |     | NULL              | …
Run Code Online (Sandbox Code Playgroud)

mysql innodb memory prepared-statement php

11
推荐指数
2
解决办法
3万
查看次数

从 UNIFIED QUERY not FOR EACH TABLE 计算 MATCH() AGAINST() 分数

我正在尝试为整个 SELECT 语句部分打分

SELECT *,MATCH(`result`) AGAINST('keyword') as `score` FROM `table1` WHERE MATCH(`result`) AGAINST('keyword')
UNION
SELECT *,MATCH(`content`) AGAINST('keyword') as `score` FROM `table2` WHERE MATCH(`content`) AGAINST('keyword')
UNION
SELECT *,MATCH(`text`) AGAINST('keyword') as `score` FROM `table3` WHERE MATCH(`text`) AGAINST('keyword')
Run Code Online (Sandbox Code Playgroud)

在这种情况下,分数是按表计算的 + 它们不是按相关性排序的

但我试过这种方法,它有效但不值得生产

SELECT * FROM (
    SELECT *,MATCH(`result`) AGAINST('keyword') as `score` FROM `table1` WHERE MATCH(`result`) AGAINST('keyword')
    UNION
    SELECT *,MATCH(`content`) AGAINST('keyword') as `score` FROM `table2` WHERE MATCH(`content`) AGAINST('keyword')
    UNION
    SELECT *,MATCH(`text`) AGAINST('keyword') as `score` FROM `table3` WHERE MATCH(`text`) AGAINST('keyword')
) as `combined` ORDER BY …
Run Code Online (Sandbox Code Playgroud)

mysql full-text-search php

10
推荐指数
1
解决办法
1709
查看次数

带有 IN() 参数的 PostgreSQL PREPARE 查询

我正在尝试从 PHP 准备一个查询,例如:

pg_prepare($con, "prep", "select * from test where tid in ($1)");
Run Code Online (Sandbox Code Playgroud)

然后执行它:

$strpar = "3,4,6,8,10";
pg_execute($con, "prep", array($strpars));
Run Code Online (Sandbox Code Playgroud)

问题是我无法传递一系列构建为 prepare 期望固定数量参数的值。有没有办法使参数动态?

postgresql prepared-statement php array

10
推荐指数
1
解决办法
5424
查看次数

定期有效地删除大量(400 万行)mysql 数据

我们有一个 mysql 表,在任何给定时间都有大约 1200 万行。我们需要删除旧数据以保持表的大小在某种程度上易于管理。

现在我们每天在午夜运行这个查询,使用 cron 作业:

DELETE FROM table WHERE endTime < '1393632001'
Run Code Online (Sandbox Code Playgroud)

上次运行查询时,它检查了 4,602,400,花费了 3 多分钟,CPU 崩溃了。

CPU在午夜尖峰

在清除旧数据的同时,我们可以做些什么来防止 CPU、同步数据库连接、磁盘提示深度等不合理地飙升?

PS:您会注意到查询实际上发生在我们使用周期中相当不合时宜的时间。假设我们已经将查询的时间转移到每天使用的最低点。此外,“endTime”上没有索引,如果可能的话,我更愿意保持这种方式,因为有大量数据被非常定期地插入,并且没有太多查找。

mysql php

10
推荐指数
1
解决办法
4523
查看次数

如何解决在 vps 上运行的 mysql 中的连接过多和致命错误

我在我的 linode 服务器上运行一个应用程序 PHPlist,同时运行 12 个 PHP 脚本,每个脚本打开一个 MySQL 连接。现在,当我访问 PHPlist 时,它经常显示此错误:

致命错误:抱歉,服务器当前太忙,请稍后再试。

当我尝试访问 phpMyAdmin 时,它显示 #1040 错误。我通过cron作业运行的 PHP 脚本的输出显示:

PHP 警告:mysqli_connect():(HY000/1040):连接过多

我在带有 phpMyAdmin 的服务器上使用 LAMP 堆栈;top终端中的输出显示mysqld使用 100-130% CPU。当我试图解决这个问题时,我得到了一些线索:

  • 增加 max_connection 变量:我使用的是 200(默认为 100)
  • 打开表缓存:512(默认400)

有很多变量要设置,但我无法确定具体是哪些变量,我从以下方面获得了一些参考: 连接过多http://dev.mysql.com/doc/refman/5.5/en/table-cache。 html

但是根据我的使用情况如何增加内存以及对我来说最大的内存困难是多少。

在我的服务器上,我使用了大约 12 个 PHP 脚本、用于发送电子邮件的 PHPlist 应用程序以及用于用户注册的主要数据库。

请帮我解决这个问题。

mysql phpmyadmin php

9
推荐指数
1
解决办法
19万
查看次数

数据库中的应用程序设置

过去,我将所有通用设置和配置项(例如:自定义应用程序标题、家庭地址、版本、调试等)存储在“settings.php”文件中,我会将其包含在所有脚本中。

我认为最好为这些应用程序设置专门设置一个数据库表,这样您就不需要编辑 php 文件来调整或进行更改。然而,我对如何设置这个有点谨慎。

我一直在考虑两种选择:

  1. 我有一个包含一行多列的表格,使每一列成为唯一的变量值。
  2. 我有两列,第一列是变量名,第二列是变量的值。

从数据库设计的角度来看,有什么建议或我应该注意的事情吗?

mysql configuration php

8
推荐指数
1
解决办法
1819
查看次数

如何创建重复工作日作为数据透视表中的列?

我是编程和数据库的新手,如果能在以下场景中得到一些帮助,我将不胜感激。

我在 SQL Server 中使用 PHP。我正在构建一个员工考勤系统,我想创建一个(枢轴)表,其中月份为行,所有工作日名称为列(针对特定年份)。单元格中的值将是天数(1、2、3...31)。

单元格的背景颜色(已作为表格列存在)声明了员工休假的类型。该表具有以下列:employee_id, leave_date, leave_type, leave_type_color.

我想达到如下结果:

在此处输入图片说明

谢谢你。

sql-server pivot php

8
推荐指数
1
解决办法
923
查看次数