mysql 1067 错误解决的方法和思路

问题描述: windows 2003 平台 mysql 5 的 服务无法启动,显示 1067 错

问题解决过程:

经排查发现 1067错原因在于进程里面还有一个mysqld-nt 没有完全释放,在进程中强制终止后,可以正常启动mysql ,但是远程连接不上,而服务器已经关闭了防火墙等可能屏蔽的因素,一度以为是网络限制了3306端口的访问,可是在外部 nmap 居然可以看到3306端口是open的。在服务器上可以连接 localhost 的mysql 服务器,使用 show processlist; 发下大量的 login 慢请求,显示unauthorized, 判断为mysqld 需要反差ip 的dns name ,再进一步检查发现时服务器的dns server 失效。

问题解决方案:

1) 更换好的names erver ip 地址

2) 在my.ini 里面加 [mysqld] 加入 skip-name-resolve 后重启 mysqld ,发下原来无法正常关闭的mysqld-nt.exe 进程也可以完全关闭和正常启动了,问题解决

 

问题总结:

由于是服务器参数以及程序未作调整而出现问题,所以不应盲目判断为服务器内部问题,多分析状态,思路开阔,根据显示内容去查询搜索引擎,可以快速解决问题

 

my.cnf 内 [mysqld] 调整参数备忘

[mysqld]

open_files_limit = 10240
back_log = 600
max_connections = 5000
max_connect_errors = 6000
table_cache = 614
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 300
#thread_concurrency = 8
query_cache_size = 512M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 246M
max_heap_table_size = 246M
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover

interactive_timeout = 120
wait_timeout = 120

skip-name-resolve

mysql 经常连接不上 error 10048 10061 错误的解决办法 ,微软补丁 KB967723 造成

原因: 微软补丁 KB967723 造成

打开注册表编辑器regedit

TcpTimedWaitDelay 设置:
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键
并创建名为 TcpTimedWaitDelay 的新 REG_DWORD 值
设置此值为十进制 30, 十六进制为 0×0000001e
该值等待时间将是 30 秒。
本项的默认值:0xF0(16进制), 等待时间设置为 240 秒

MaxUserPort 设置(增加最大值端口连接):
找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键
并创建名为 MaxUserPort 的新 REG_DWORD 值
设置此值为十进制 65534
本项的默认值:5000(十进制)

关闭注册表编辑器, 重启windows系统。

mysql 4.0 升级到 mysql 5.0 的 discuz bbs 系统解决方案

一个discuz 运行于mysql 4 上面 现在需要把数据库升级到 mysql 5
经验证以下方式可行,且无错

1) 用mysql5的bin\mysqldump 把 mysql4的数据导出,

分别以结构形式和数据形式导出成2分文件
d:\mysql5\bin\mysqldump   -uroot -p   DBNAME -d -P3306   > d:\phpsir\jokcnbbs.sql
d:\mysql5\bin\mysqldump   -uroot -p   DBNAME  -t -P3306  –default-character-set=latin1       > d:\phpsir\jokcnbbs-data.sql

2) 用mysql5的bin\mysql 以latin1 导入,注意, create database 要用latin1
d:\mysql5\bin\mysql -P3307 -uroot -p    -e “drop database DBNAME;”
d:\mysql5\bin\mysql -P3307 -uroot -p    -e “create database `DBNAME` DEFAULT CHARACTER SET latin1 collate latin1_general_ci;”
d:\mysql5\bin\mysql -P3307 -uroot -p -D DBNAME  -f  –default-character-set=latin1 < d:\phpsir\jokcnbbs.sql
d:\mysql5\bin\mysql -P3307 -uroot -p -D DBNAME -f  –default-character-set=latin1  < d:\phpsir\jokcnbbs-data.sql