【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二進制和源碼安裝
各位技術愛好者,看完本文後,你可以掌握如下的技能,也可以學到一些其它你所不知道的知識,~O(∩_∩)O~:
① MySQL的二進制安裝過程(重點)
② MySQL多執行個體管理(mysqld_multi)
③ MySQL的源碼編譯安裝過程
④ Linux的邏輯卷的使用
⑤ 檔案的MD5值
⑥ 通路MySQL的幾種用戶端工具(Navicat和MySQLWorkbench)
⑦ 修改MySQL的密碼
⑧ 設定MySQL的遠端通路
⑨ 設定MySQL的開機啟動以及多執行個體的開機啟動
⑩ RPM、二進制和源碼編譯的優缺點
自從去年3月份開始寫書到現在,基本上大部分内容都寫完了。一個字,累!三個字,真心累!我也是以錯過了很多的東西,當然也收獲了很多,一切都随緣吧。現在來說說部落格吧,雖然我的部落格在這段時間更新比較頻繁,但是大多内容都不是來自我的原創,基本都是整理自網絡。可能有的朋友就會罵小麥苗了,抄襲抄襲,我不反駁,因為這的确是抄襲。為啥小麥苗要這麼做,可能基于這麼幾個原因吧。第一,幹貨類的文章,本來原創的内容就少,網上的文章也大多是一個抄一個的,很多内容,原創作者已經很難找到了。第二,個别文章并不是很完善,如果不整理在一塊,若下次碰到相同的内容,還是得網上再天翻地覆的搜一遍,太浪費時間了。第三,這些非原創的文章,不僅僅是給網友做參考,更重要的是,小麥苗自己也參考。畢竟人的記憶力是有限的,小麥苗也經常搜尋自己的文章,是以,這并不可恥。第四,有的文章寫得很好,但是裡邊有個别地方寫得不嚴謹,或者寫得有錯誤,這個時候,小麥苗整理到自己部落格的時候就可以順便修改過來。說再多,有的網友覺得,這都是借口,好吧。抄襲就是抄襲,再多借口也改變不了抄襲的本質。小麥苗不再多說了,隻想說一句,不喜勿噴。
從今天開始,小麥苗會準備OCM和MySQL的學習。是以,今天就先把MySQL的各個版本安裝一下吧。要學習MySQL,估計5.5、5.6和5.7版本的都需要安裝。不過,相比Oracle而言,MySQL還是更好安裝一點。
小麥苗出版的書籍:http://blog.itpub.net/26736162/viewspace-2142121/
廢話已經說了很多了,下面開始安裝吧。
在Windows下可以使用NOINSTALL包和圖形化包來安裝,在Linux下可以使用如下3種方式來安裝:
RPM(Redhat Package Manage)
二進制(Binary Package)
源碼(Source Package)
優點
安裝簡單,适合初學者學習使用
安裝簡單;可以安裝到任何路徑下,靈活性好;一台伺服器可以安裝多個MySQL
在實際安裝的作業系統進行可根據需要定制編譯,最靈活;性能最好;一台伺服器可以安裝多個MySQL
缺點
需要單獨下載下傳用戶端和伺服器;安裝路徑不靈活,預設路徑不能修改,一台伺服器隻能安裝一個MySQL
已經經過編譯,性能不如源碼編譯的好;不能靈活定制編譯參數
安裝過程較複雜;編譯時間長
檔案布局
/usr/bin:用戶端程式和腳本
/usr/sbin:mysqld伺服器
/var/lib/mysql:日志檔案,資料庫
/usr/share/doc/packages:文檔
/usr/include/mysql:包含(頭)檔案
/usr/lib/mysql:庫檔案
/usr/share/mysql:錯誤消息和字元集檔案
/usr/share/sql-bench:基準程式
bin:用戶端程式和mysqld伺服器
data:日志檔案,資料庫
docs:文檔,ChangeLog
include:包含(頭)檔案
lib:庫
scripts:mysql_install_db用來初始化系統資料庫
share/mysql:錯誤消息檔案
sql-bench:基準程式
bin:用戶端程式和腳本
include/mysql:包含(頭)檔案
info:Info格式的文檔
lib/mysql:庫檔案
libexec:mysqld伺服器
sql-bench:基準程式和crash-me測試
var:資料庫和日志檔案
主要安裝過程
在大多數情況下,下載下傳MySQL-server和MySQL-client就可以了,安裝方法如下:
rpm -ivh MySQL-server* MySQL-client*
1.添加使用者
groupadd mysql
useradd -g mysql mysql
2.安裝
tar -xzvf mysql-VERSION-OS.tar.gz -C /mysql/
ln -s MySQL-VERSION-OS mysql或用mv指令
3.初始化,MySQL 5.7之後用mysqld --initialize
scripts/mysql_install_db
4.啟動資料庫并修改密碼等
mysqld_safe &
set password=password('lhr');
除了第二步的安裝過程外,其它步驟和二進制基本一樣(MySQL 5.7開始使用cmake):
gunzip < mysql-VERSION.tar.gz | tar -xvf -
cd mysql-VERSION
./configure --prefix=/usr/local/mysql
make && make install
安裝包下載下傳選項
Red Hat Enterprise Linux / Oracle Linux
Linux - Generic
Source Code
rpm的安裝方式請參考:
<a>http://blog.itpub.net/26736162/viewspace-1349705/</a>
<a>http://blog.itpub.net/26736162/viewspace-1349787/</a>
官網中相應地有以上三種方式對應的下載下傳連結,其中源碼安裝,對應"Source Code";.tar.gz對應"Linux - Generic",.rpm則對應于"Red Hat Enterprise Linux / Oracle Linux",如下圖所示,

1.目錄大小。MySQL 5.7的二進制安裝後大約3G,是以可以配置設定5G空間;而5.5和5.6版本的二進制包安裝可以配置設定2G左右。
2.MySQL 5.7的源碼包需要配置設定10G的空間。cmake最低需要2.8.2版本。
3.下載下傳和上傳後需要校驗md5值,防止上傳的檔案不完整。
4.源碼編譯安裝比較費時費力。
在官網:http://dev.mysql.com/downloads/mysql/中,選擇以下版本的MySQL下載下傳:
注意:MD5: dbe7e5e820377c29d8681005065e5728,下載下傳完成後需要校驗。
注意:不要下載下傳rpm類型的包,安裝路徑不靈活,預設路徑不能修改,一台伺服器隻能MySQL安裝一個 MySQL。下圖下載下傳後均是rpm包:
OS路徑設定:
vgcreate vg_mysqlsoft /dev/sdb1
lvcreate -n lv_mysqlsoft_57 -L 5G vg_mysqlsoft
mkfs.ext4 /dev/vg_mysqlsoft/lv_mysqlsoft_57
mkdir -p /tmp/mysql5719
mkdir -p /var/lib/mysql57
mount /dev/vg_mysqlsoft/lv_mysqlsoft_57 /var/lib/mysql57/
vi /etc/fstab
二進制安裝過程:
md5sum mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /var/lib/mysql57/
mv mysql-5.7.19-linux-glibc2.12-x86_64 mysql5719
useradd -r -g mysql mysql
MySQL 5.6版本:./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql56/mysql5637 --datadir=/usr/local/mysql56/mysql5637/data
MySQL 5.7版本:./bin/mysqld --initialize --user=mysql --basedir=/var/lib/mysql57/mysql5719 --datadir=/var/lib/mysql57/mysql5719/data
more /etc/my.cnf
cp mysql.server /etc/init.d/mysql57
chmod 755 /etc/init.d/mysql57
chkconfig --add mysql57
chkconfig mysql57 on
chkconfig --level 345 mysql57 on
mysqld_safe --user=mysql &
MYSQL_HOME=/var/lib/mysql57/mysql5719
PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile
#MySQL 5.7初始化時有預設密碼,5.6無密碼
mysql -uroot --socket=/usr/local/mysql56/mysql5637/mysql.sock -p
update mysql.user set authentication_string=password('lhr') where user='root';
grant all privileges on *.* to root@'%' identified by 'lhr';
flush privileges;
源碼安裝:
tar -zxf /tmp/mysql5.7sc/mysql-5.7.19.tar.gz -C /usr/local/mysql57sc/
tar -zxf /tmp/mysql5.7sc/mysql-boost-5.7.19.tar.gz -C /usr/local/mysql57sc/
mv mysql-5.7.19 mysql57
yum install -y cmake make gcc gcc-c++ ncurses-devel
#cmake最低需要2.8.2版本的
cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57sc/mysql57 \
> -DMYSQL_DATADIR=/usr/local/mysql57sc/mysql57/data \
> -DMYSQL_USER=mysql \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
> -DWITH_READLINE=1 \
> -DDOWNLOAD_BOOST=1 \
> -DWITH_BOOST=/usr/local/mysql57sc/mysql57/boost/boost_1_59_0/
make && make install
檢視MySQL的端口:
netstat -lntp | grep mysqld
本文轉自lhrbest 51CTO部落格,原文連結:http://blog.51cto.com/lhrbest/1960271,如需轉載請自行聯系原作者