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

WBOY
Release: 2016-05-16 19:58:41
Original
1531 people have browsed it

Background: When replacing mysql with mysqli, it appeared that there were too many connections. In fact, it was not the case. The reason was that I moved the location of the sock file in php. Because these socket modifications were not completely modified, it appeared. Too many connections. From the show processlist in mysql, I did not 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 made, but I guess it was. The mysqli client reported it by itself. Although this problem is small, after working on it for a long time, I wanted to reinstall Php. I found that the path was written wrong. At the same time, the mysqli client gave an error message of too many connections, which caused the direction to go. Wrong. 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导致。
Copy after login

Remember to restart php-fpm after modification:

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

_______________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 under 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)
Copy after login

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;>
Copy after login
Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template