【问题标题】:Very slow (1 second) connections非常慢(1 秒)的连接
【发布时间】:2013-07-22 20:13:08
【问题描述】:

我在 Windows 7 上运行 MySQL 5.6(64 位)。我正在测试最近在 32 位 Windows 7 上从 MySQL 5.0 升级的数据库。(我还复制了 my.ini,做了一些更改)

我发现建立连接需要很长时间(大约 1 秒)。例如,我创建了一个非常简单的 SQL 脚本:

select 1 as n;

然后我在批处理文件中运行了 10 次,需要 10 秒才能完成:

mysql -h localhost -u root -D myschema 0< myscript.sql

(是的,这里没有密码,这是一个只监听127.0.0.1的测试数据库)

有人知道为什么这么慢吗? (见下面的 my.ini)

[client]
port=3306
[mysql]
default-character-set=latin1
[mysqld]
port=3306
bind-address=127.0.0.1
basedir="C:/Program Files/MySQL/mysql-5.6.10-winx64/"
datadir=C:/DATA
character-set-server=latin1
default-storage-engine=myisam
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=0
table_open_cache=256
tmp_table_size=18M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=35M
key_buffer_size=25M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=47M
innodb_log_file_size=24M
innodb_thread_concurrency=8
log-bin=c:/data/mysql/binarylog
max_binlog_size=1024M
enable-named-pipe
slow_query_log=
expire_logs_days=90

【问题讨论】:

    标签: mysql connection 64-bit myisam mysql-5.6


    【解决方案1】:

    哇!看来这是个骗子。见:

    Why is connecting to MySQL server so slow?

    https://serverfault.com/questions/408550/connecting-to-mysql-from-php-is-extremely-slow

    我在 64 位机器上启用了 IPv6,而不是 32 位机器。当我连接以下备用字符串时,事情会快得多:

    mysql -h 127.0.0.1 -u root -D myschema 0< myscript.sql
    

    仍然不确定为什么会发生这种情况,但至少有一个解决方法!唉,可怜的localhost我很了解他。

    编辑:对 my.ini 的以下更改允许在脚本和连接字符串中使用 localhost

    bind-address=::1
    

    注意:绑定到 ::ffff:127.0.0.1localhost 似乎没有帮助。我读到了将 IPv6 和 IPv4 地址绑定到 MySQL 服务器,所以所有 3 个连接字符串都可以工作(例如-h ::1-h 127.0.0.1-h localhost)。但是,我一次只能让其中一两个客户端字符串工作。

    EDIT2:按以下方式绑定:

    bind-address=*
    

    彻底解决了这个问题,IPv4 和 IPv6 客户端都可以连接。唯一的缺点是现在允许远程连接。我还没有找到一种方法来使用带有localhost 限制的 TCP 并绑定到 127.0.0.1 ::1

    【讨论】:

    • 起初我认为这不适用于我的情况 - 连接到我本地网络中另一台机器上的 MySQL 服务器。发现确实如此!我建议修改答案以描述一般情况,而不仅仅是 localhost / 127.0.0.1 ... 即名称引用的任何服务器节点与 IPv4 地址。
    • @rObjects 我同意这是很好的信息,但我不确定我能不能把它挤在这里。也许堆栈溢出 wiki 条目会更好,您或我可以从这里链接。
    猜你喜欢
    • 2019-07-26
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2013-01-19
    • 2022-01-12
    • 1970-01-01
    • 2012-01-03
    • 2012-01-29
    相关资源
    最近更新 更多