非常慢(1秒)的连接

时间:2013-07-23 16:18:38

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

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

我发现建立连接需要很长时间(大约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

1 个答案:

答案 0 :(得分:3)

卫生署!看起来这是一个骗局。参见:

Why is connecting to MySQL server so slow?

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

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

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