这二天,我想把我电脑里面的二个不同版本的mysql同时启动,但是没有成功,还导致其中一个mysql启动不了,郁闷。我用二种方式启动都不行
一,问题如下
1,[root@BlackGhost data]# /usr/local/mysql/bin/mysqld_safe --user=root --skip-grant-tables
提示如下:
100910 22:31:44 mysqld_safe Logging to '/usr/local/mysql/master-error.log'.
100910 22:31:44 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
100910 22:31:44 mysqld_safe mysqld from pid file /usr/local/mysql/mysql.pid ended
2,[root@BlackGhost mysql]# /usr/local/mysql/share/mysql/mysql.server start
提示含有以下东西
Starting MySQL.Manager of pid-file quit without updating file.[FAILED]
后来我发现,出现这个东西的原因,我把/mysql安装目录/libexec下面的mysqld给覆盖掉了,我以为mysql里面的mysqld都是差不多的东西,没想到libexec下面的mysqld不一样,差别大了
[root@BlackGhost bin]# du -sh mysqld
12K mysqld
[root@BlackGhost bin]# du -sh ../libexec/mysqld
6.1M ../libexec/mysqld
在libexec下面还有一个文件是mysqlmanager,我想在这里的mysqld也是管理的什么东西,我也不太确定libexec下面的mysqld是干什么用的,有谁知道可否告诉我一下,谢谢了。
12k的这个mysqld,就是一个启动,停止等控制的脚本,可以用vi打开,但是libexec下面的mysqld用vi打不开的,打开乱码。
二,解决办法
1,因为我有二个不同版本的mysql,所以把另一个libexec下面的mysqld考进来,我想就不会有大问题了。
2,等我把libexec下面的mysqld考好后,还是启动不了,还是提示问题1中的错误,我在网上找了好多办法都不行,有一个办法,可以解决,就是将/mysql安装目录/data/mysql-bin.index删除掉,然后在
/usr/local/mysql/bin/mysqld_safe --user=root --skip-grant-tables
然后就启动了。
3,当我用mysql -u root -p时提示我
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
但是my.cnf里面.sock文件定义在/tmp/mysql.sock啊,怎么会跑到那儿去呢
有二种方法可以解决这个问题
a),加软链接,ln -s /var/run/mysqld/mysql.sock /tmp/mysql.sock
b),mysql -u root -p -S /tmp/mysql.sock