總結源碼編譯安裝mysql

     最近在學習源碼編譯安裝LAMP、LNMP時,一直遇到一個難題,就是就是mysql無論怎麼源碼編譯安裝,到最後啓動服務都提示"Starting MySQL.The server quit without updating PID file (/data/mysql/localhost.pid).              [FAILED]",因爲是初學linux,不知道在哪查看和怎麼查看MySQL錯誤日誌,也沒人指點,在網上搜了一大堆解決方法,也沒有解決,這時自己就想了想,再沒有埋頭安裝,就在QQ上找了些linux學習交流羣,加上去後諮詢了一下,說是數據存放目錄的權限問題,檢查了一下,確認不是數據存放目錄的權限問題,之後我又諮詢確認了一下,也不是配置文件語法問題,也不是編譯安裝問題和依賴庫文件等問題,最後讓我看了看MySQL的端口3306是否被佔用,這時我敲入"netstat -antulp"回車,看到確實有一個進程號爲"1331"的進程佔用了3306端口,之所以佔用,是因爲之前我多次安裝啓動造成的,如下所示:

[root@localhost ~]# netstat -antulp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1174/sshd           

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1417/master         

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      1157/php-fpm        

tcp        0     52 192.168.1.200:22            192.168.1.209:2375          ESTABLISHED 1523/sshd           

tcp        0      0 :::22                       :::*                        LISTEN      1174/sshd           

tcp        0      0 ::1:25                      :::*                        LISTEN      1417/master         

tcp        0      0 :::3306                     :::*                        LISTEN      1331/mysqld         

tcp        0      0 :::80                       :::*                        LISTEN      797/httpd           

知道了佔用3306端口的進程號後好就好了,敲入"kill 1331"回車後,再入查看端口("netstat -antulp")佔用,出來的信息裏面已經沒有佔用3306端口的進程了,如下所示:

[root@localhost ~]# kill 1331

[root@localhost ~]# netstat -antulp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1174/sshd           

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1417/master         

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      1157/php-fpm        

tcp        0     52 192.168.1.200:22            192.168.1.209:2375          ESTABLISHED 1523/sshd           

tcp        0      0 :::22                       :::*                        LISTEN      1174/sshd           

tcp        0      0 ::1:25                      :::*                        LISTEN      1417/master         

tcp        0      0 :::80                       :::*                        LISTEN      797/httpd           

現在接着敲入"service mysqld start"回車後,呵呵,看到了mysql服務啓動成功,如下:

[root@localhost ~]# service mysqld start

Starting MySQL.... SUCCESS! 

    之後,我又查看了相關資料,有說是編譯安裝的順序問題,及編譯參數問題,就抱着試了試的態度,實踐了一邊,還真是沒有任何錯誤的安裝成功,啓動成功了,方法還是前面的編譯安裝方法,只是順序不一樣了,呵呵,現總結如下:

    這裏下載MySQL壓縮包,解壓縮,安裝依賴庫文件我就不再描述了,只總結寫下重要的編譯安裝順序;

    1、檢查系統配置環境:cmake .回車,中間的內容省略;

    2、添加MySQ用戶和用戶組:groupadd mysql回車,useradd -g mysql mysql -s /sbin/nologin -M -r回車;

    3、創建mysql安裝目錄以及數據庫存放目錄,並給予數據庫存放目錄權限: 

          mkdir -p /data/mysql                           

          chown -R mysql.mysql /data/mysql       
          mkdir   -p /usr/local/mysql   

    4、編譯及安裝:make&&make install;

    5、初始並生成系統mysql數據庫:cd /usr/local/mysql 回車,進入到mysql安裝目錄,然後敲入:./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql回車生成mysql系統數據庫;

    6、這時mysql安裝目錄下已生成mysql客戶端配置文件:my.cnf,現在敲入cp my.cnf /etc/my.cnf回車,提示是否要覆蓋當前文件,按y就可以了,編輯/etc/my.cnf: vi /etc/my.cnf回車,在[mysqld]部分增加下面一行(注意是增加,不是修改:";datadir = ")

datadir = /data/mysql 

:wq!  //保存

 7、cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld // 把mysql 加入系統啓動

    chmod +x /etc/init.d/mysqld #給予執行權限

    chkconfig mysqld on #加入開機啓動

  8、vi /etc/rc.d/init.d/mysqld

     修改下面兩行定義

     basedir=/usr/local/mysql    //MySQL目錄位置

     datadir=/data/mysql           // MySQl數據庫存放目錄 大約在4647行,注意,等號後面不要有空格

 9、service mysqld start ,呵呵相信你們的也沒有任何錯誤的啓動成功了吧

  10、vi /etc/profile   mysql服務加入系統環境變量:在最後邊一行的下面添加下面這一行

     export PATH=$PATH:/usr/local/mysql/bin  

     :wq!    // 保存  

     11、下面這兩行把myslq的庫文件鏈接到系統默認的位置,這樣你在編譯類似PHP等軟件時可以不用指定mysql的庫文件地址

        ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql 
           ln -s /usr/local/mysql/include/mysql /usr/include/mysql  
           shutdown -r now    
       12、需要重啓系統,等待系統重新啓動之後繼續在終端命令行下面操作 
           mysql_secure_installation     #根據提示按Y 回車,然後輸入2次同樣的密碼,繼續按Y回車,直到設置完成。

        或者採用下面的方式直接修改密碼 /usr/local/mysql/bin/mysqladmin -u root -p password "123456"           13、service mysqld restart  
           至此,mysql5.5.27安裝完畢 # mysql -V
           mysql  Ver 14.14 Distrib 5.5.27, for Linux (i686) using  EditLine wrapper 

     總結的有遺漏或不對的地方還請大家指正,謝謝,希望能給和我一樣初學linux的朋友帶來幫助!

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章