Chinaunix

标题: MYSQL经典报错 [打印本页]

作者: maxl5460    时间: 2006-05-18 10:33
标题: MYSQL经典报错
各位大哥大姐们,这是咋回事啊,./mysqladmin -u root password 'mysql'
./mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
怎么有的时候装完了就可以,有时候就老报这错误啊,怎么回事啊,郁闷死了
作者: xxjoyjn    时间: 2006-05-18 10:52
已经有一个MSYQLD在运行了
不信的话,ps -ef | grep msyqld 这个命令可以看到
作者: maxl5460    时间: 2006-05-18 11:41
是个干净的系统,并没有安装自带的MYSQL,为什么会有另一个MYSQL进程呢,如何修改呢,谢谢
作者: maxl5460    时间: 2006-05-18 12:07
已经有一个MSYQLD在运行了
不信的话,ps -ef | grep msyqld 这个命令可以看到


我用你的命令看了,的确有个MYSQL进程,我如何能彻底删除这个MYSQL呢,都不知道它从哪来的
作者: xxjoyjn    时间: 2006-05-18 12:21
ps 后,可以看到进程号,然后使用命令
kill 进程号
再重起MYSQL,OK?
作者: maxl5460    时间: 2006-05-18 12:25
[root@maxl root]# ps -aux|grep mysql
root      1421  0.0  0.5  3692  664 pts/1    S    02:20   0:00 grep mysql


这说明什么,我已经把MYSQL源码安装的目录都删除了.
作者: xxjoyjn    时间: 2006-05-18 12:27
说明原先的MSYQLD已经被KILL掉了,你可以重新启动MSYQL了
作者: maxl5460    时间: 2006-05-18 12:27
[root@maxl root]# ps -aux|grep mysql
root      1421  0.0  0.5  3692  664 pts/1    S    02:20   0:00 grep mysql
[root@maxl root]# kill 3692
-bash: kill: (3692) - No such process
[root@maxl root]# kill 1421
-bash: kill: (1421) - No such process
作者: xxjoyjn    时间: 2006-05-18 12:31
原帖由 maxl5460 于 2006-5-18 12:27 发表
[root@maxl root]# ps -aux|grep mysql
root      1421  0.0  0.5  3692  664 pts/1    S    02:20   0:00 grep mysql
[root@maxl root]# kill 3692
-bash: kill: (3692) - No such process
[root@maxl root] ...



你犯了个错误啦
root      1421  0.0  0.5  3692  664 pts/1    S    02:20   0:00 grep mysql
这个进程是你使用 ps -aux|grep mysql命令的进程啦,所以,用户是ROOT啦
说明现在MSYQLD已经不存在了,你可以重新启动MSYQL了
作者: maxl5460    时间: 2006-05-18 13:32
MYSQL刚安装的时候用
shell> bin/mysqld_safe --user=mysql &
启动了,然后用pstree -p查看进程,怎么没有MYSQL进程呢?
用/etc/rc.d/init.d/mysqld restart不能启动MSYQL服务,因为在/etc/rc.d/init.d/目录下没有mysqld这个问题,不是安装好了,就应该有这个文件了吗?那如何启动MYSQL服务呢
作者: maxl5460    时间: 2006-05-18 13:43
[root@maxl mysql]# bin/mysqld_safe --user=mysql &
[1] 1792
[root@maxl mysql]# Starting mysqld daemon with databases from /var/lib/mysql
060516 03:39:09  mysqld ended


[1]+  Done                    bin/mysqld_safe --user=mysql
[root@maxl mysql]#

这样算正常吗
作者: maxl5460    时间: 2006-05-18 13:44
[root@maxl mysql]# bin/mysqld_safe --user=mysql &
[1] 1792
[root@maxl mysql]# Starting mysqld daemon with databases from /var/lib/mysql
060516 03:39:09  mysqld ended


[1]+  Done                    bin/mysqld_safe --user=mysql
[root@maxl mysql]#

这样算正常吗
作者: xxjoyjn    时间: 2006-05-18 14:13
当然不正常,MSYQL启动失败
作者: xxjoyjn    时间: 2006-05-18 14:15
你的MSYQL是怎么安装的?是RPM包安装的还是下载原代码编译安装的?
作者: maxl5460    时间: 2006-05-18 15:00
我装的mysql-standard-4.0.20-pc-linux-i686.tar.gz
RH-AS3 U6系统,完全按照安装文档安装的:
# groupadd mysql
# useradd -g mysql mysql
# cd /usr/local
# gunzip < ~/server/mysql-standard-4.0.20-pc-linux-i686.tar.gz | tar xvf -
# ln -s mysql-standard-4.0.20-pc-linux-i686 mysql
# cd mysql
# scripts/mysql_install_db --user=mysql
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
# bin/mysqld_safe --user=mysql &
# ./mysqladmin -u root password ‘password’ (到这里就报上面的错了)

系统自带的服务都没装,MYSQL是我安装的头一个软件.
作者: xxjoyjn    时间: 2006-05-18 15:08
现在启动正常吗?
作者: maxl5460    时间: 2006-05-18 15:31
[root@maxl mysql]# bin/mysqld_safe --user=mysql &
[1] 1792
[root@maxl mysql]# Starting mysqld daemon with databases from /var/lib/mysql
060516 03:39:09  mysqld ended


[1]+  Done                    bin/mysqld_safe --user=mysql
[root@maxl mysql]#

[root@maxl local]# /etc/rc.d/init.d/mysqld start
-bash: /etc/rc.d/init.d/mysqld: No such file or directory

[root@maxl local]# pstree -p
init(1)忖?apmd(107
        忖atd(1229)
        忖bdflush(7)
        忖crond(1193)
        忖cupsd(1122)
        忖gpm(1182)
        忖kapmd(3)
        忖keventd(2)
        忖khubd(76)
        忖kjournald(17)
        忖kjournald(645)
        忖klogd(959)
        忖kscand(6)
        忖ksoftirqd/0(4)
        忖kswapd(5)
        忖kupdated(
        忖login(1241)忖鈈ash(1247)
        忖mdadm(1019)
        忖mdrecoveryd(9)
        忖mingetty(1242)
        忖mingetty(1243)
        忖mingetty(1244)
        忖mingetty(1245)
        忖mingetty(1246)
        忖portmap(987)
        忖rpc.statd(1007)
        忖sshd(114忖鈙shd(1356)忖?bash(135忖鈖stree(8427)
        ?                        忖bash(145
        ?                        忖bash(160
        ?                        忖sftp-server(1403)
        忖syslogd(955)
        忖xfs(1219)
        忖xinetd(1164)
作者: maxl5460    时间: 2006-05-18 15:52
有人说这是MYSQL服务没起来导致的,怎么起啊,不就是用/etc/rc.d/init.d/mysqld start启动吗,可是/etc/rc.d/init.d/mysqld 下根本没有MSYQLD这个文件啊,郁闷坏了,照着安装文档也不行 ,LINUX装个东西咋这麻烦
作者: xxjoyjn    时间: 2006-05-18 16:05
很明显在/etc/rc.d/init.d/没有这个mysqld启动文件

在/etc/rc.d/init.d/下,到底是mysqld还是mysql?
find / -name mysqld
find / -name mysql

难道你不知道启动文件安装在什么位置?
作者: xxjoyjn    时间: 2006-05-18 16:07
root@maxl mysql]# Starting mysqld daemon with databases from /var/lib/mysql
060516 03:39:09  mysqld ended

当然是没有启动,启动失败
作者: maxl5460    时间: 2006-05-18 16:32
应该是/etc/rc.d/init.d/mysqld,安装完MYSQL后应该有个mysqld文件,但里面没有.
作者: rardge    时间: 2006-05-18 17:59
原帖由 maxl5460 于 2006-5-18 16:32 发表
应该是/etc/rc.d/init.d/mysqld,安装完MYSQL后应该有个mysqld文件,但里面没有.

用 rpm 安装才会有这个,按照你贴出来的安装过程,你下载的是二进制包,就是直接解压即可用的,所以,所有 mysql 用到的命令都在你解压后的那个目录中。(/usr/local/mysql)

你现在用 bin/mysqld_safe --user=mysql & 方式启动一下,然后去 /usr/local/mysql/data/ 目录下,看一个后缀是 .err 的文件,它里面写什么?
作者: sickcat2004    时间: 2006-05-18 23:08
如果是远程服务器
ps -aux | grep mysqld
kill -9 pid-value
ps -aux | grep mysql
kill -9 pid-value
找到所有的mysqld ,全部杀掉,重新启动mysql


如果是本地服务器
请直接敲
reboot


that is ok , maybe ,good luck!
作者: perryhg    时间: 2006-05-19 02:31
别瞎折腾了,到data目录下看看mysqld的errorlog吧,里面有说明为什么不能启动的,你启动时指定了用mysql用户运行,是不是mysql用户无权限访问data目录啊
作者: lifeistrue    时间: 2006-05-19 09:52
socket文件已经存在,启动的时候自己指定sock文件,--with-socket=/tmp/new.sock
作者: macrodba    时间: 2006-05-19 10:50
加入-h ip_address
作者: blackface    时间: 2006-05-19 11:40
标题: 呵呵,新手,一般肯定是mysql下面的 var目录权限不是mysql的!
一般肯定是mysql下面的 var目录权限不是mysql的!
作者: dangk    时间: 2006-05-19 13:14
标题: 回复 15楼 maxl5460 的帖子
难道你没有你没有./configure ;make ;make install ???
作者: dangk    时间: 2006-05-19 13:17
标题: 回复 28楼 dangk 的帖子
哦,是二进制包
作者: dangk    时间: 2006-05-19 13:23
标题: 回复 1楼 maxl5460 的帖子
Starting mysqld daemon with databases from /var/lib/mysql
你的mysqld是从这里启动的数据表,但是你
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
修改的数据库权限是另外一个目录。

确认 /var/lib/mysql已经属于mysql
作者: xxjoyjn    时间: 2006-05-19 14:42
cd /var/lib
chown mysql.mysql -R mysql
作者: olda    时间: 2006-05-21 11:27
我是菜鸟一个,小声的说一下,你看一下一下数据库文件所在的目录权限是谁的,mysql用户有没有写入的要限,当然还要看一下sock文件所在目录,还的PID 文件所在的目录,还的LOG文件所在的目录,如果权限正确的话的应该没有什么问题,建议先运行一下msqyl_install_db试一下行不行
作者: tchhyc    时间: 2006-05-21 13:07
原帖由 maxl5460 于 2006-5-18 10:33 发表
各位大哥大姐们,这是咋回事啊,./mysqladmin -u root password 'mysql'
./mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.so ...


1.启动的时候失败,先看启动错误日志,就是mysql安装目录下面data下的*.err文件,不看错误日志就在乱弄其实是在浪费时间,除非你已经知道原因了,或者凑巧运气好弄对了。 很多人启动错误失败就发贴问,又没把错误日志贴上来,那么回答的人都是在猜的,可能也是在误导。

2.看有没有mysql进程用ps -ef|grep mysqld
看到的root      23131 23106  0 12:50 pts/1    00:00:00 grep mysql只是你刚才命令的进程,
不是mysqld的进程。或者用ps -ef|grep mysqld |grep -v grep 来查看mysqld的进程

3.发贴问问题之前最好先看一下置顶版主的帖子,理解置顶的帖子,基本上对解决这些很基本的问题肯定没问题。如果是经典错误,我想你肯定已经看过了,还上来问吗?
作者: victorchang    时间: 2006-05-22 16:42
最好用TAR包安装吧,执行安全模式启动后,用netstat -nl看一看3306端口起没起来就行了。
把suports下面的mysql.server文件考到/etc/rc.d/init.d下面,执行就应该可以启动吧!!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2