Home  >  Article  >  Backend Development  >  When using mysqli function to connect to mysql under PHP, warning: mysqli::real_connect(): (hy000/1040): ..., mysqlihy000_PHP tutorial

When using mysqli function to connect to mysql under PHP, warning: mysqli::real_connect(): (hy000/1040): ..., mysqlihy000_PHP tutorial

WBOY
WBOYOriginal
2016-07-12 08:59:19853browse

When using mysqli function to connect to mysql under PHP, warning: mysqli::real_connect(): (hy000/1040): ..., mysqlihy000

Background: Replace mysql with Mysqli appears, there are too many connections, but it is not actually the case. The reason is that I moved the sock file location of php. Because these socket modifications were not completely modified, too many connections appeared. Show processlist from mysql. I didn't find that there is really a connection. In fact, I used tshark to capture the package and I guess I can see it (http://justwinit.cn/post/7458/). No request was sent, but it was probably reported by the mysqli client itself. Although this problem is small, I have been working on it for a long time and want to reinstall Php. I found that the path was written wrong and the mysqli client prompted an error message that there were too many connections, causing the wrong direction. As follows:

[root@iZ25z0ugwgtZ etc]# grep -r "mysql.sock" ./
./php.ini:pdo_mysql.default_socket=/data/runsock/mysqlsock/mysql.sock
./php.ini:;mysql.default_socket = /tmp/mysql.sock
./php.ini:mysql.default_socket = /data/runsock/mysqlsock/mysql.sock
./php.ini:mysqli.default_socket = /data/runsock/mysql.sock //这个位置被挪动到,/data/runsock/mysqlsock/mysql.sock导致。

Remember to restart php-fpm after modification:

[root@iZ25z0ugwgtZ etc]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done

_______________The troubleshooting points are as follows_______________________________

warning: mysqli::real_connect(): (hy000/1040): too many connections in:

Scenario: Manually compile and install mysql, and specify the installation location, php connects to mysql in localhost mode

Cause analysis: After manual compilation and installation, all mysql files are in the specified directory or data directory. By default, PHP will only look for /temp/mysql.sock to find this sock file, so it will As a result, the sock file cannot be found.

Solution:

1. Make a soft link to the sock file

ln -s /data/mysqldb/mysql.sock /tmp/mysql.sock;

or

2. Modify the default mysql.sock connection address of php

mysql.default_socket=/data/mysqldb/mysql.sock

3. Use tcp socket to connect

mysql('127.0.0.1','username','passwod');

Let me introduce to you the PHP mysql_connect() function

Definition and usage

The mysql_connect() function opens a non-persistent MySQL connection.

Grammar

mysql_connect(server,user,pwd,newlink,clientflag)

Parameters Description
server

Optional. Specifies the server to connect to.

Can include a port number, such as "hostname:port", or a path to a local socket, such as ":/path/to/socket" for localhost.

If the PHP directive mysql.default_host is not defined (the default case), the default value is 'localhost:3306'.

user Optional. username. The default value is the username of the server process owner.
pwd Optional. password. The default value is an empty password.
newlink Optional. If mysql_connect() is called a second time with the same parameters, no new connection will be established, but the ID of the already open connection will be returned. The parameter new_link changes this behavior and causes mysql_connect() to always open a new connection, even when mysql_connect() has been called previously with the same parameters.
clientflag

Optional. The client_flags parameter can be a combination of the following constants:

  • MYSQL_CLIENT_SSL - 使用 SSL 加密
  • MYSQL_CLIENT_COMPRESS - 使用压缩协议
  • MYSQL_CLIENT_IGNORE_SPACE - 允许函数名后的间隔
  • MYSQL_CLIENT_INTERACTIVE - 允许关闭连接之前的交互超时非活动时间

返回值

如果成功,则返回一个 MySQL 连接标识,失败则返回 FALSE。

提示和注释

注释:脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用 mysql_close() 关闭了。
提示:要创建一个持久连接,请使用 mysql_pconnect() 函数。

例子

<&#63;php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
// 一些代码...
mysql_close($con);
&#63;>

您可能感兴趣的文章:

  • mysql error 1130 hy000:Host''localhost''解决方案
  • 详解远程连接Mysql数据库的问题(ERROR 2003 (HY000))
  • mysql错误处理之ERROR 1786 (HY000)
  • mysql错误处理之ERROR 1665 (HY000)
  • MySQL错误ERROR 2002 (HY000): Can''t connect to local MySQL server through socket
  • MySQL ERROR 2013 (HY000)错误解决方法
  • mysql中一个普通ERROR 1135 (HY000)错误引发的血案

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1099060.htmlTechArticlePHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...,mysqlihy000 背景:把mysql换成mysqli时出现,连接数过多,其实际上并...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn