全部博文(2065)
分类: Mysql/postgreSQL
2010-02-04 15:36:56
delimiter //
create procedure
no_disk_load_part()
begin
declare v int default 0;
while v<10000
do
insert into no_disk_part_tab values('testing partitons',adddate('
set v=v+1;
end while;
end
//
结果一测试马上挂死了!提示我MYSQL连接数过多。(不太明白?)
然后我想重启MYSQL
/etc/rc.d/init.d/mysql restart
结果启动不起来还提示我:Can't connect to local MySQL server through socket '/tmp/mysql.sock'
解决方法:service mysqld start 这样启动就好了!
补充
“/var/lib/mysql/mysql.sock不存在”的信息遇到过几次。不过我碰到的情况,通常是mysql.sock的位置问题。可以通过修改/etc/my.cnf来指定它的位置。
比如
[mysql]
socket=/var/lib/mysql/mysql.sock
[mysqld]
socket=/var/lib/mysql/mysql.sock
前者是告诉客户端(mysql)到哪里去找mysql.sock;后者是告诉mysqld启动时,把mysql.sock放在哪个目录下。
在ODBC的配置文件中也可以指定mysql.sock的位置,对于使用ODBC连接本地MYSQL的程序,可能需要配置.odbc.ini,加上对其位置的指定。
此外,出现上述错,通常是因为,安装了两个版本的MySQL。比如一个是rpm方式安装(在redhat系列上通常会有一个缺省安装的较低版本的 MySQL即是通过rpm方式安装的),另一个是用tgz包解压在/usr/local下安装的。而两个版本的mysqld和mysql缺省的 mysql.sock的路径是不同的。如果启动的是3.2的mysqld,而用4.1的mysql去连接,就可能找不到mysql.sock而报错。反之亦然。安装两个版本是没问题的,但要知道当前你执行的mysql和mysqld是否是同一版本的。而这一问题又往往被忽略,因为通常运行mysql和 mysqld都是不加绝对路径的,这时候就找的是缺省路径中的mysql和mysqld了,而又未必是你真正想用的那个版本。
chinaunix网友2010-02-04 15:39:49
居然更离奇的是我打开登录数据库之后发现我的数据库全没了。我倒!还好不是在实际环境中测试要是的话这下我死定了。数据库千万要记得备份! 怎么会把我的数据文件全给干掉了呢?奇怪了!!!