前記:html
畢業兩年了,前兩天換了份工做,由之前的傳統行業跳到了互聯網行業。以前的公司一直在用WinServer2003+Tomcat+SqlServer/Oracle這套部署環境。對於Linux+Tomcat(或其餘容器)+Mysql這套以前沒用用過。因此利用這週末的我在阿里雲上49元搞了個linux(centos 64位)的服務器。mysql
剛開始先裝了JDK1.6,安裝了Tomcat6.0。這過程當中沒有遇到太大的問題, 小問題也google一下就解決了。而週六晚上開始安裝Mysql,因而到今天下午爲止,終於ok了。linux
可能有人會問,阿里雲linux主機不是有一鍵安裝(http://help.aliyun.com/list/11108222.html?spm=5176.7224473.1997282749.12.vB3A4Z)嗎,爲何不用那個。緣由主要有:首先我這週末的時間比較充裕,其次我以爲這些東西不着急的狀況下仍是本身摸索着一點點部署比較好,畢竟是第一次學習,仍是不要省這個事兒了,大家覺的呢?不事後邊我參考了一鍵安裝中的方法,才解決個人問題,詳細見後面的正文。sql
寫這篇文章的目的就是在安裝mysql的過程當中,遇到的問題,去網上搜,發現獲得的答案多數都是你們互相轉來轉去的,因此想經過這篇文章記錄本身實踐中驗證可行的一套的完整流程,給本身留個備份,也但願能幫助到其餘人。數據庫
正文:vim
我在安裝的過程當中,主要分爲兩個階段,兩種方法:centos
第一階段:8月9號23點至8月10號凌晨3:30左右,採起的是rpm的安裝方法,安裝簡單,可是老是出現各類問題,最終失敗。tomcat
第二階段:8月10號13點至8月10號16:00點左右,採用的仿製一鍵安裝的方法,須要分析,最終安裝仍是比較簡單的,最終成功。bash
這兩個階段我都會介紹一下,以便供你們參考,或者選取序曲教訓。服務器
對於第一階段:
我主要參考的是這篇文章:http://www.ouropera.net/?p=308 ,記住我說的是參考,由於這些文章只是別人的,未必徹底適合你,因此我以爲使用的過程當中最好抱着一種隨時都會懷疑的態度,這篇文章不行,就看看別的文章的步驟。下面是個人步驟:
步驟1:我按照網上大多人的作法,先去mysql官網http://dev.mysql.com/downloads/mysql/下載MySQL-client-5.6.20-1.rhel5.x86_64.rpm、MySQL-server-5.6.20-1.rhel5.x86_64.rpm、MySQL-devel-5.6.20-1.rhel5.x86_64.rpm這三個文件,而且經過FileZilla的sftp服務上傳到個人linux雲服務器上(目錄隨本身的喜歡)。
步驟2:我如今服務器上執行"rpm -qa"查看本機已經安裝東西,確認沒有mysql。
步驟3:我在文件所在目錄執行"rpm -ivh MySQL-client-5.6.20-1.rhel5.x86_64.rpm MySQL-server-5.6.20-1.rhel5.x86_64.rpm MySQL-devel-5.6.20-1.rhel5.x86_64.rpm"這個命令,進行安裝.
步驟4:上面的安裝很簡單吧,我發現都成功以後,我就執行"service mysql start"這個命令,也能夠試試"service mysqld start"命令,因而個人噩夢就開始了,我如今已經記不清錯誤出現的前後順序了,但主要包括如下幾種:
糾結1:Starting MySQL..The server quit without updating PID file (/var/lib/mysql/XXX.pid)
糾結2:個人/etc/my.cnf沒有。
糾結3:個人/var/lib/mysql/ 下面沒有mysql.sock
等等。。。。我記不清了
步驟4:實際上從我出現第一個問題開始,個人主要作法就是先圍繞這個錯誤搜索文章,基本上把這些文章瀏覽一遍以後,再綜合比較靠譜的試一下, 我以爲這樣作事的成功率是比較高的,也是對本身理解問題的關鍵是有好處的,可是那天晚上就是在我已經屢試不爽的解決方式下,竟然越高越無頭緒,到時有些命令越敲越熟啊,好比:
1.top命令
2.ps -ef|grep mysql
3.根據2中的結果,獲取進程id,而後強殺kill -9 進程id
4.卸載: rpm -ev MySQL-client-5.6.20-1.rhel5.x86_64.rpm
步驟5:直到睡覺前,我絕望的將安裝的mysql卸載掉,同時也造成了這樣幾個簡單的結論:
1.用rpm安裝的方式原本在/etc下面就不會產生my.cnf。
2.mysql.sock是在mysql啓動成功後,根據my.cnf中配置的socket配置的文件位置生成。
3.我基本放棄了rpm這種安裝方式。
對於第二階段:
我週日中午起來後,吃完早飯,而後仔細想了下,我看了下阿里提供的一鍵安裝目錄,以下:
我確定打開的是最新版的install_mysql-5.6.15.sh,得到的內容以下:
注意:對於這兩個圖片所展現的步驟我作了以下總結:
步驟1:首先他先判斷當前機器是64位仍是32位,而後利用wget去一個阿里的地址上下載對應的安裝文件。PS:個人是64位的,同時我發現下載的這個文件其實就是官網上tar.gz版本,因此沒什麼不同。
步驟2:而後利用tar命令進行解壓縮。
步驟3:在利用mv命令移動到安裝目錄下。 這裏邊主要有三個目錄:
/alidata/server/mysql/
/alidata/server/mysql/data/
/alidata/log/mysql
PS:通過個人實踐,咱們須要提早創建好相似的三個文件夾,否則就會在安裝的最後,報沒有找到這三個目錄的錯誤。因此根據我本身的狀況,我以前在安裝tomcat時,放到了根目錄下我本身建立的/myself_setted下面。因此我想把mysql也放在這個 目錄下,後邊詳細再說,這也就須要我將本身定義的三個文件夾的目錄替換掉原文件中的那三個目錄,仔細一點,其實須要替換的地方並很少。固然你若是徹底按照阿里定義的文件夾創建也能夠。
步驟4:定義3中文件夾的全下,還作了一些不須要咱們修改的事情。
步驟5: 定義/etc/my.cnf中的內容,仔細發現並無須要咱們替換的。
===================================================分割線:下面是我通過上邊的分析,最終執行的步驟=======================================================
通過對上邊的分析,最終個人安裝步驟以下:
步驟1:創建三個文件夾,以替換上邊的三個文件夾,以下(我想對應關係你們應該能夠看明白哈):
/myself_setted/server/mysql5.6.15/
/myself_setted/server/mysql5.6.15/data/
/myself_setted/log/mysql5.6.15/
步驟2:將上邊的三個文件夾目錄在阿里原來的install_mysql-5.6.15.sh中替換掉以前阿里默認的,注意,上邊已經說了,若是你不在乎,直接按照原來文件中阿里定義的三個文件夾的結構也是能夠的。
步驟3:利用FileZilla的sftp服務將新定義好的install_mysql-5.6.15.sh文件上傳到linux服務器中。
步驟4:用cd定位到.sh所在的文件夾目錄,執行"./install_mysql-5.6.15.sh"命令便可。
步驟5:在步驟4中我當時點擊回車執行命令的時候當即報了以下錯誤:/bin/bash^M: bad interpreter: No such file or directory
我根據http://blog.csdn.net/esther0401/article/details/7361496中的解決方式以下:
1.vim install_mysql-5.6.15.sh
2.通常模式下輸入":set ff?",進行查看,發現時dos的
3.通常模式下輸入"set ff=unix",就ok了
而後在執行步驟4中的命令,就會看到下載各類文件,而後安裝。
步驟6:安裝速度很快,會在最後顯示:Starting Mysql ......SUCCESS之類。
PS:中止:service mysqld stop ; 啓動:service mysqld start;
步驟7:而後輸入命令"mysql",正常狀況下就應該顯示mysql的歡迎頁面了。可是我在這裏又爆了一個錯誤:-bash: /usr/bin/mysql: No such file or directory
而後我根據網上搜索的結果,獲得了以下結論,就是默認的是 /usr/bin/mysql,而個人是 /myself_setted/server/mysql5.6.15/bin/mysql,
因此在執行如下的鏈接命令"ln -s /myself_setted/server/mysql5.6.15/bin/mysql /usr/bin/"便可解決。
步驟8:通過前面的7步已經發現能夠了。可是我還須要在本機遠程鏈接個人mysql,因此我還須要在mysql中作這樣的處理:
show databases;
use mysql;
show tables; --用user表
select host,user,password from user;
update user set host='%' where user='root' and host='localhost';
flush privileges;
重啓服務便可。
***2015年3月10日針對上述步驟8進行修正: 上述步驟雖讓能夠解決遠程連接mysql的問題,但會出現本地看不到遠程創建的數據庫,緣由是由於root@localhost這個user不存在了,因此根本的解決方式是:
例如:grant all on test.* to lionbule@'%' identified by 'hello1234';
新增密碼爲‘hello234’的用戶lionbule對test庫擁有全部操做權限,並不限制lionbule用戶的登錄IP
因此,根據咱們的須要咱們能夠依次輸入以下命令:
grant all on *.* to root@'%' identified by ''; (最後是兩個單引號哈)
flush privileges;
總結:針對上文的內容,我提供的只是一套我試驗過的確實可行的方案。對於作事兒,我一直秉承着先及格再優秀,我想我已經及格了,對於優秀,我還須要努力啊。其實我目前對於rpm的安裝不成功還沒找到緣由,因此若是你們有實驗過的,麻煩分享如下。至於更詳細的原理,但願你們能一塊兒討論。