Perfect solution to the problem that MySQL cannot connect to the database through localhost

Perfect solution to the problem that MySQL cannot connect to the database through localhost

Problem: The PHP program on one server cannot connect to the database via the localhost address, but can connect normally if it is set to 127.0.0.1, and can also connect to other database servers normally. The MySQL permissions are set correctly, and the database can be connected normally through the mysql command line client.

Analysis: This is a typical case where the socket is not configured correctly.

There are two ways to connect to a MySQL database: TCP/IP (the kind commonly understood as a port) and Unix sockets (generally called sockets or socks). In most cases, localhost can be used to represent the local machine 127.0.0.1, but when connecting to MySQL, the two cannot be mixed, and localhost and 127.0.0.1 are also set separately in the permission settings in MySQL. When set to 127.0.0.1, the system connects to the database via TCP/IP; when set to localhost, the system connects to the database via socket.

Solution: First, check where the socket file of the local MySQL is. The command to check is:

mysqld --verbose --help | grep socket

The output shows the location of the socket file. For example, this server shows

socket /var/run/mysqld/mysqld.sock

Then modify the php configuration file php.ini to correspond to it.

Find this one:

mysql.default_socket =

Generally this item is empty, change it to:

mysql.default_socket = /var/run/mysqld/mysqld.sock

The file queried in the previous step should be written here and set according to your situation. At this point, the PHP configuration has been modified. If it is CLI (command line) mode or CGI mode, it will take effect immediately. If it is FASTCGI mode, you need to restart the fastcgi process.

The above article perfectly solves the problem that MySQL cannot connect to the database through localhost. This is all the content that the editor shares with you. I hope it can give you a reference. I also hope that you will support 123WORDPRESS.COM.

You may also be interested in:
  • How to quickly modify the host attribute of a MySQL user
  • Does the % in the newly created MySQL user include localhost?
  • How to allow all hosts to access mysql
  • Solution to the problem that MySQL can connect using localhost but cannot connect using IP
  • A brief discussion on the matching rules of host and user when Mysql connects to the database

<<:  Graphical tutorial on installing CentOS 7.3 on VMWare

>>:  Implementation of vscode custom vue template

Recommend

...

9 Tips for MySQL Database Optimization

Table of contents 1. Choose the most appropriate ...

How to import/save/load/delete images locally in Docker

1. Docker imports local images Sometimes we copy ...

HTML imitates Baidu Encyclopedia navigation drop-down menu function

HTML imitates the Baidu Encyclopedia navigation d...

Detailed analysis of MySQL optimization of like and = performance

introduction Most people who have used databases ...

Tutorial on using Multitail command on Linux

MultiTail is a software used to monitor multiple ...

Automatically log out inactive users after login timeout in Linux

Method 1: Modify the .bashrc or .bash_profile fil...

How to enable the root account in Ubuntu 20.04

After Ubuntu 20.04 is installed, there is no root...

The most commonly used HTML escape sequence

In HTML, <, >, &, etc. have special mean...

Detailed explanation of Nginx configuration file

The main configuration file of Nginx is nginx.con...

Example of using MySQL to count the number of different values ​​in a column

Preface The requirement implemented in this artic...