ssh源码编译安装mysql_总结源码编译安装mysql
最近在學(xué)習源碼編譯安裝LAMP、LNMP時,一直遇到一個難題,就是就是mysql無論怎么源碼編譯安裝,到最后啟動服務(wù)都提示"Starting MySQL.The server quit without updating PID file (/data/mysql/localhost.pid). ? ? ? ? ? ? ?[FAILED]",因為是初學(xué)linux,不知道在哪查看和怎么查看MySQL錯誤日志,也沒人指點,在網(wǎng)上搜了一大堆解決方法,也沒有解決,這時自己就想了想,再沒有埋頭安裝,就在QQ上找了些linux學(xué)習交流群,加上去后咨詢了一下,說是數(shù)據(jù)存放目錄的權(quán)限問題,檢查了一下,確認不是數(shù)據(jù)存放目錄的權(quán)限問題,之后我又咨詢確認了一下,也不是配置文件語法問題,也不是編譯安裝問題和依賴庫文件等問題,最后讓我看了看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")占用,出來的信息里面已經(jīng)沒有占用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
現(xiàn)在接著敲入"service mysqld start"回車后,呵呵,看到了mysql服務(wù)啟動成功,如下:
[root@localhost ~]# service mysqld start
Starting MySQL.... SUCCESS!
之后,我又查看了相關(guān)資料,有說是編譯安裝的順序問題,及編譯參數(shù)問題,就抱著試了試的態(tài)度,實踐了一邊,還真是沒有任何錯誤的安裝成功,啟動成功了,方法還是前面的編譯安裝方法,只是順序不一樣了,呵呵,現(xiàn)總結(jié)如下:
這里下載MySQL壓縮包,解壓縮,安裝依賴庫文件我就不再描述了,只總結(jié)寫下重要的編譯安裝順序;
1、檢查系統(tǒng)配置環(huán)境:cmake .回車,中間的內(nèi)容省略;
2、添加MySQ用戶和用戶組:groupadd mysql回車,useradd -g mysql mysql -s /sbin/nologin -M -r回車;
3、創(chuàng)建mysql安裝目錄以及數(shù)據(jù)庫存放目錄,并給予數(shù)據(jù)庫存放目錄權(quán)限:
mkdir -p /data/mysql
chown -R mysql.mysql /data/mysql ? ? ??mkdir ? -p /usr/local/mysql
4、編譯及安裝:make&&make install;
5、初始并生成系統(tǒng)mysql數(shù)據(jù)庫:cd /usr/local/mysql 回車,進入到mysql安裝目錄,然后敲入:./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql回車生成mysql系統(tǒng)數(shù)據(jù)庫;
6、這時mysql安裝目錄下已生成mysql客戶端配置文件:my.cnf,現(xiàn)在敲入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 加入系統(tǒng)啟動
chmod +x /etc/init.d/mysqld #給予執(zhí)行權(quán)限
chkconfig mysqld on #加入開機啟動
8、vi /etc/rc.d/init.d/mysqld
修改下面兩行定義
basedir=/usr/local/mysql ? ?//MySQL目錄位置
datadir=/data/mysql ? ? ? ? ? //?MySQl數(shù)據(jù)庫存放目錄大約在46、47行,注意,等號后面不要有空格
9、service mysqld start ,呵呵相信你們的也沒有任何錯誤的啟動成功了吧
10、vi /etc/profile ??把mysql服務(wù)加入系統(tǒng)環(huán)境變量:在最后邊一行的下面添加下面這一行
export?PATH=$PATH:/usr/local/mysql/bin
:wq! ? ?//?保存
11、下面這兩行把myslq的庫文件鏈接到系統(tǒng)默認的位置,這樣你在編譯類似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、需要重啟系統(tǒng),等待系統(tǒng)重新啟動之后繼續(xù)在終端命令行下面操作
mysql_secure_installation ? ? #根據(jù)提示按Y 回車,然后輸入2次同樣的密碼,繼續(xù)按Y回車,直到設(shè)置完成。
或者采用下面的方式直接修改密碼 /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
總結(jié)的有遺漏或不對的地方還請大家指正,謝謝,希望能給和我一樣初學(xué)linux的朋友帶來幫助!
總結(jié)
以上是生活随笔為你收集整理的ssh源码编译安装mysql_总结源码编译安装mysql的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解 GNU C 标准中的 typeof
- 下一篇: mysql 转型_MySQL的未来在哪?