這二天,我想把我電腦裡面的二個不同版本的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