Max*_*Max 62 mysql ubuntu connection localhost socket
我想分析mysql流量。现在,所有 mysql 请求都发送到 MySQL unix 套接字:
unix 2 [ ACC ] STREAM LISTENING 3734388 15304/mysqld /var/run/mysqld/mysqld.sock
Run Code Online (Sandbox Code Playgroud)
我正在尝试禁用该套接字以强制 MySQL 在回送上使用网络套接字。我尝试注释掉和文件socket中的所有指令并重新启动 MySQL,但没有任何区别。my.cnfdebian.cnf
如何禁用 MySQL unix 套接字以通过网络强制 MySQL?
其他信息:我运行MySQL 5.1上ubuntu 10.04。
问题的精确度
由于很多人建议启用网络套接字,我想通过指出绑定地址已经启用bind-address = 127.0.0.1并且侦听连接可用来澄清我的问题:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 15601/mysqld
Run Code Online (Sandbox Code Playgroud)
我仍然没有看到127.0.0.1:3306来自我的 web 应用程序(Drupal 网站)的连接尝试。
更新了答案
问题似乎确实来自mysqliDrupal 使用的连接器(.ht_config.php对于那些感兴趣的人)。它被设置为: mysqli://drupal:***@localhost/drupal,更改localhost以127.0.0.1修复问题(即 Drupal 现在正在连接到网络套接字)。
小智 108
在 Linux 和其他 *nixes 中,如果您连接到主机“localhost”(这将是默认主机名),MySQL 将假定您要使用套接字。
您可以通过 3 种方式覆盖它:1) 指定不同的主机名,如 127.0.0.1 ( mysql -h 127.0.0.1) 或您服务器的真实主机名 2) 指定您要使用 TCP 而不是套接字 ( mysql --protocol tcp)
您还可以轻松地将默认设置为我编辑 my.cnf 以便它具有此功能([client] 表示任何客户端:
[client]
protocol=tcp
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看 MySQL 决定如何连接的完整说明:
http://dev.mysql.com/doc/refman/5.5/en/connecting.html
Nil*_*ils 62
使用 IP 绑定到127.0.0.1. 那应该激活一个监听端口localhost。在客户端不要使用localhost- 使用127.0.0.1。许多客户端都有一个内部别名,如果您指定localhost为目标,则它们可以连接到套接字。
MySQL 很奇怪。
use*_*517 16
这真的不是客户问题吗?如果使用mysql程序 可以使用--protocol开关。从手册页
--protocol={TCP|SOCKET|PIPE|MEMORY}
The connection protocol to use for connecting to the server. It is
useful when the other connection parameters normally would cause a
protocol to be used other than the one you want. For details on the
allowable values, see Section 4.2.2, “Connecting to the MySQL
Server”.
Run Code Online (Sandbox Code Playgroud)
我刚试过
mysql --protocol=TCP -u root -p
Run Code Online (Sandbox Code Playgroud)
在监视端口 3306 时tcpdump -i lo tcp port 3306,我可以看到流量,而如果我只是运行
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
我(正确地)看到端口 3306 上没有流量。
编辑:
现在您告诉我们您正在使用 DRUPAL,解决方案相对简单。
转到sites/<sitename>或sites/default编辑settings.php文件
你会发现这样的结构
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'databasename',
'username' => 'databaseuser',
'password' => 'databasepassword',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);
Run Code Online (Sandbox Code Playgroud)
更改'localhost'为'127.0.0.1'并保存文件。
| 归档时间: |
|
| 查看次数: |
108221 次 |
| 最近记录: |