1. 程式人生 > >linux下mysql的解除安裝、安裝全過程及遇到"MySQL提示:The server quit without updating PID file問題的解決辦法"

linux下mysql的解除安裝、安裝全過程及遇到"MySQL提示:The server quit without updating PID file問題的解決辦法"

1、查詢以前是否裝有mysql

命令:rpm -qa|grep -i mysql

可以看到mysql的兩個包:

mysql-4.1.12-3.RHEL4.1

mysqlclient10-3.23.58-4.RHEL4.1

2、刪除mysql

刪除命令:rpm -e --nodeps 包名

( rpm -ev mysql-4.1.12-3.RHEL4.1 )

3、刪除老版本mysql的開發標頭檔案和庫

命令:rm -fr /usr/lib/mysql

rm -fr /usr/include/mysql

注意:解除安裝後/var/lib/mysql中的資料及/etc/my.cnf不會刪除,如果確定沒用後就手工刪除

rm -f /etc/my.cnf

  rm -fr /var/lib/mysql

安裝mysql

安裝前準備:兩個rpm包

MySQL-client-5.1.20-0.glibc23.i386.rpm

MySQL-server-5.1.20-0.glibc23.i386.rpm

1、安裝服務端:

命令:rpm -ivh MySQL-server-5.1.20-0.glibc23.i386.rpm

安裝成功會出現....

warning: MySQL-server-5.1.20-0.glibc23.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5

Preparing... ########################################### [100%]

1:MySQL-server ########################################### [100%]

080220 13:58:27 [Note] Plugin 'InnoDB' disabled by command line option

080220 13:58:28 [Note] Plugin 'InnoDB' disabled by command line option

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'

/usr/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

See the manual for more instructions.

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at

Support MySQL by buying support/licenses at http://shop.mysql.com

Starting MySQL.[ OK ]

2、安裝客戶端

命令:rpm -ivh MySQL-client-5.1.20-0.glibc23.i386.rpm

成功表現:

[[email protected] ~]# rpm -ivh MySQL-client-5.1.20-0.glibc23.i386.rpm

warning: MySQL-client-5.1.20-0.glibc23.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5

Preparing... ########################################### [100%]

1:MySQL-client ########################################### [100%]

3、登陸mysql

登陸MySql的命令是mysql,mysql 的使用語法如下:

mysql [-u username] [-h host] [-p[password]] [dbname]

username 與 password 分別是 MySQL 的使用者名稱與密碼,mysql的初始管理帳號是root,沒有密碼,注意:這個root使用者不是Linux的系統使用者。MySQL預設使用者是root,由於初始沒有密碼,第一次進時只需鍵入mysql即可

[[email protected] ~]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.1.20-beta MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

出現了“mysql>”提示符,恭喜你,安裝成功!

   增加了密碼後的登入格式如下:

   mysql -u root -p

   Enter password: (輸入密碼)

   其中-u後跟的是使用者名稱,-p要求輸入密碼,回車後在輸入密碼處輸入密碼。

   注意:這個mysql檔案在/usr/bin目錄下,與後面講的啟動檔案/etc/init.d/mysql不是一個檔案。

補:

通過rpm包安裝、配置及解除安裝mysql的詳細過程.

  以MySQL-server-4.0.14-0.i386.rpm為例,放在/data目錄下

  cd /data

  rpm -ivh MySQL-server-4.0.14-0.i386.rpm

  安裝完成後在/usr/share/mysql目錄中會有一個mysql的啟動指令碼mysql.server及示例配置檔案等(如my-huge.cnf、my-large.cnf、my-medium.cnf)

  拷貝一個示例配置檔案作為mysql的配置檔案:

  cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

  rpm包安裝完後自動將mysql安裝成系統服務,所以可以使用下面命令啟動、停止mysql

  啟動mysql

  /etc/init.d/mysql start 或 service mysql start

  停止mysql

  /etc/init.d/mysql stop 或 service mysql stop

  到此,mysql服務就安裝配置完成。

  安裝mysql客戶端

  rpm -ivh MySQL-client-4.0.14-0.i386.rpm

  mysql安裝好後目錄結構如下:

  工具程式在/usr/bin目錄中---ls /usr/bin/mysql*

  伺服器程式/usr/sbin/mysqld

  資料目錄/var/lib/mysql

  預設情況下mysql將錯誤日誌檔案、二進位制日誌檔案及程序檔案寫在/var/lib/mysql目錄中,如localhost.err、localhost.pid、localhost-bin.001等

  要改變這些情況可以修改/etc/my.cnf檔案

  如將日誌檔案寫在/var/log目錄中,可以在my.cnf檔案中加入下面兩行:

  [mysqld_safe]

  err-log = /var/log/mysqld.log

  有個實用程式/usr/bin/mysql_install_db,該程式可以用來初始化 mysql資料庫,即建立/var/log/mysql目錄,及建立mysql資料庫(mysql授權表等資訊)及test資料庫(空庫),如果不小心刪 除了/var/log/mysql目錄可以通過該程式來初始化.

  解除安裝mysql

  rpm -qa|grep -i mysql

  rpm -ev MySQL-server-4.0.14-0 MySQL-client-4.0.14-0

  解除安裝後/var/lib/mysql中的資料及/etc/my.cnf不會刪除,如果確定沒用後就手工刪除

  rm -f /etc/my.cnf

  rm -rf /var/lib/mysql

mysql 1130錯誤解決方法:

通過MySQL-Front或mysql administrator連線mysql的時候發生的這個錯誤

ERROR 1130: Host ***.***.***.*** is not allowed to connect to this MySQL server

說明所連線的使用者帳號沒有遠端連線的許可權,只能在本機(localhost)登入。

需更改 mysql 資料庫裡的 user表裡的 host項

把localhost改稱%

具體步驟:登陸到mysql

首先 use mysql;

按照別人提供的方式update的時候,出現錯誤。

mysql> update user set host='%' where user = 'root';

ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'

然後查看了下資料庫的host資訊如下:

mysql> select host from user where user = 'root';

+-----------------------+

| host |

+-----------------------+

| % |

| 127.0.0.1 |

| localhost.localdomain |

+-----------------------+

3 rows in set (0.00 sec)

host已經有了%這個值,所以直接執行命令:

mysql>flush privileges;

再用mysql administrator連線...成功!!!

tar.gz版本安裝:

版本1:

1。把MYSQL安裝包放置並解壓到/usr/local下

tar zxvf mysql-standard-5.0.27-linux-i686-glibc23.tar.gz

2。為目錄建立符號連結

ln -s mysql-standard-4.0.24-pc-linux-gnu-i686 mysql

3。建立MYSQL組和使用者

groupadd mysql

useradd -g mysql mysql

4。改變mysql目錄的所屬使用者和組

chown -R mysql . #注意保證此時的當前目錄是/usr/lcoal/mysql

chgrp -R mysql .

5。以mysql使用者執行配置指令碼

su mysql #切換到mysql使用者

cd /usr/local/mysql #注意切換使用者以後,工作目錄已經不是/usr/local/mysql。所以得重新進去

./configure #執行配置指令碼

6。進入資料庫,檢查安裝是否成功

/usr/local/mysql/bin/mysql

如果出現mysql的提示符且進入,說明安裝成功!

7。在系統啟動時自動開啟mysql服務

su - #切換回root使用者

cd /usr/local/mysql

cp support-files/mysql.server /etc/rc.d/init.d/mysql #把mysql的指令碼檔案拷到系統的啟動目錄下

cd /etc/rc.d/init.d/

chmod +x mysql #改為可執行檔案屬性

chkconfig --add mysql #將mysql加到啟動服務列表裡

chkconfig mysql on #讓系統啟動時自動開啟mysql服務

重起系統後,執行 /usr/local/mysql/bin/mysql ,如果出現mysql的提示符,說明整個安裝成功

版本2:

mysql-standard-4.0.24-pc-linux-gnu-i686.tar.gz 是mysql4.0.24版本的安裝檔案,是一個二進位制的壓縮包,所以我們的安裝方式就為二進位制分發安裝。

安裝步驟:

1.將 mysql-standard-4.0.24-pc-linux-gnu-i686.tar.gz 拷貝到一個目錄中

2.shell> tar zvxf mysql-standard-4.0.24-pc-linux-gnu-i686.tar.gz

3.上面的命令將在當前目錄下生成一個mysql-standard-4.0.24-pc-linux-gnu-i686資料夾

4.shell>mv mysql-standard-4.0.24-pc-linux-gnu-i686 /usr/local/mysql

5.上面的命令是將mysql-standard-4.0.24-pc-linux-gnu-i686下的所有東東,剪下到/usr/local/mysql 下,進行這一步是為了以後的方便。

6.shell> groupadd mysql 增加一個名為mysql的使用者組

7.shell> useradd -g mysql mysql 在mysql使用者組中加一個名為mysql的使用者

如果上面的兩個命令不能執行,那麼要切換到root使用者下執行

shell>su root -

8.shell> cd /usr/local/mysql

9.shell> cp support-files/my-medium.cnf /etc/my.cnf

這時會問是否覆蓋重名檔案,回答y

10.shell> scripts/mysql_install_db --user=mysql

以mysql使用者初始化資料庫,必須以mysql使用者

11.shell> chown -R root

注意後面有點,表示將當前目錄下的所有檔案與子目錄的擁有者設

定為root使用者

12.shell> chown -R mysql data

表示將當前目錄下的data目錄的擁有者設定為mysql使用者

13.shell> chgrp -R mysql .

注意後面有點,表示將當前目錄下的檔案的檔案組設為mysql組

14.shell> bin/mysqld_safe --user=root &

此時如果沒有出現“……ended”字樣,大功告成!

15.回車顯示shell>

此時你可以

通過 shell>netstat –atln 命令檢視3306埠是否已經啟用

也可以 shell>ps -ef | grep mysqld 檢視當前系統中的mysqld的程序

或直接 shell>bin/mysql –u root 進入mysql客戶端,進行mysql操作

或shell>bin/mysqladmin shutdown 停止mysql服務

記住:此時你的root使用者是沒有密碼的,任何身份都可以用root進入,你可以

通過shell> bin /mysqladmin -u root password '新口令'來設定root使用者的口令,此口令將在進入mysql客戶端和停止mysql服務時需要輸入

提示:在啟單個服務的時候,可以通過修改/etc/my.cnf檔案來配置

可以用VI編輯器開啟my.cnf ,怎麼開啟呢,看下面

shell>vi my.cnf 開啟my.cnf

找到下面這段

[mysqld]

port = 8888

socket = /tmp/mysql.sock

可以在後面加上相應的配置

log = /var/log/mysql.log

datadir = /free/mysqldbf

如 log = /* 改變log的儲存位置

datadir = /free/mysqldbf 改變data的儲存位置

希望對遇到同樣問題的朋友有點點幫助

常用命令:

啟動 MySQL:

service mysql start

/etc/init.d/mysql start

/usr/share/mysql/mysql.server start

[mysql.server]

# 註釋掉 basedir 行,否則 MySql 可能不能啟動

# 據說是 MySql 的 bug

# basedir=/var/lib

root登入時,自動啟動mysql:

在 /root/.bash_profile 檔案中增加1行:

/usr/share/mysql/mysql.server start

檢視啟動日誌:

/var/log/messages

顯示MySQL所有使用者:

use mysql;

select host,user,password from user;

新增 MySQL 使用者(user name:user1,password:sql):

grant all on *.* to [email protected]'%' identified by 'sql' with grant option;

刪除 MySQL 使用者:

delete from user where user='user1';

配置環境變數:

PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:/usr/local/mysql/bin:$PATH