Linux CentOS6.6系統(tǒng)中安裝mysql源碼包的方法
這里以CentOS6.6系統(tǒng)中安裝MySQL的源碼包,進(jìn)行講解。
1. mysql源碼包的下載
mysql安裝包的官方下載地址為:http://dev.mysql.com/downloads/mysql/5.6.html#downloads
打開(kāi)該下載地址后,在 “Select Version:”處,選擇要下載的mysql的版本,我選擇的是5.6.34;在“Select Platform:”處,選擇適用的操作系統(tǒng)類型,由于是下載源碼包,故這里我們要選擇Source Code。
之后,會(huì)顯示適合各個(gè)系統(tǒng)的安裝包(奇怪的是,該列表中居然有很多rpm包),但這里我們并不是用rpm包來(lái)安裝mysql。這里我們選擇 Generic Linux (Architecture Independent), Compressed TAR Archive,在它的最右邊有一個(gè)Download按鈕,點(diǎn)擊它就可以找到下載鏈接。
如果你還是不會(huì)的話,就直接使用我已經(jīng)找到的下載地址:http://101.110.118.70/dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz 直接使用 wget 命令下載即可。
如果知道m(xù)ysql源碼包的具體地址,可直接在linux系統(tǒng)中使用 wget 命令,進(jìn)行下載。
(注意:如果你的linux系統(tǒng)中還沒(méi)有 wget 命令,可使用 yum -y install wget,先安裝 wget)
在linux的根目錄,創(chuàng)建一個(gè)多級(jí)空目錄 /my_package/source,用來(lái)存放下載的源碼包。
mkdir -p /my_package/source cd /my_package/source
執(zhí)行下載命令:
wget http://101.110.118.70/dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.34.tar.gz
下載完成后,在目錄 /my_package/source 中,就有了mysql的源碼包 mysql-5.6.34.tar.gz
然后,可以對(duì)安裝包的完整性進(jìn)行MD5校驗(yàn),即使用下面的命令:
md5sum ./mysql-5.6.34.tar.gz
執(zhí)行該命令后,會(huì)生成一個(gè)md5的校驗(yàn)值,將該值與源碼包下載頁(yè)面給出的md5值進(jìn)行人工比對(duì),如果一致,則說(shuō)明安裝包完整無(wú)缺(當(dāng)然,你也可以不校驗(yàn))。
2. mysql源碼包的安裝與配置
從mysql5.5版本開(kāi)始,源碼安裝mysql需要使用到 cmake 命令。
檢查你的linux系統(tǒng)是否安裝了 cmake,可使用下面的命令檢查:
whereis cmake
如果安裝了 cmake 命令,就會(huì)顯示 cmake 命令的絕對(duì)路徑和 cmake命令幫助手冊(cè)的絕對(duì)路徑。否則,就說(shuō)明沒(méi)有安裝 cmake 命令。
這里,使用 yum 工具,在線快速安裝 cmake,方法如下:
yum search cmake yum -y install cmake.i686
還需要安裝bison、gcc、gcc-c++和ncurses,也用yum工具快速安裝:
yum -y install bison yum -y install gcc gcc-c++ ncurses
上述準(zhǔn)備工作做好了之后,再來(lái)安裝mysql,下面來(lái)詳細(xì)介紹mysql的安裝步驟。
(1)創(chuàng)建用戶組和系統(tǒng)用戶
出于安全考慮,需要?jiǎng)?chuàng)建一個(gè)組名為mysql的用戶組,然后再創(chuàng)建一個(gè)屬于該用戶組的系統(tǒng)用戶mysql,該系統(tǒng)用戶的作用是用來(lái)安裝和運(yùn)行MySQL服務(wù)。
groupadd mysql useradd -r -g mysql -s /bin/false mysql
(2)解壓源碼壓縮包
tar -zxvf mysql-5.6.34.tar.gz cd mysql-5.6.34
解壓完畢后,進(jìn)入解壓后的目錄。一般來(lái)說(shuō),該目錄中都會(huì)有README(關(guān)于該軟件包的介紹說(shuō)明)和INSTALL(安裝說(shuō)明),這兩個(gè)文件。當(dāng)然,也可以不參考它的安裝說(shuō)明。
(3)安裝參數(shù)配置、編譯和安裝
可以利用 cmake 命令來(lái)設(shè)置一些安裝參數(shù)(如安裝路徑等),這里我們使用默認(rèn)配置,然后進(jìn)行編譯 make,編譯完成之后,執(zhí)行安裝過(guò)程 make install。
cmake . make make install
(4)MySQL數(shù)據(jù)目錄初始化
安裝過(guò)程執(zhí)行完成之后,會(huì)在 /usr/local/ 目錄中,自動(dòng)生成一個(gè)文件夾mysql,也就是說(shuō),/usr/local/mysql 是MySQL的默認(rèn)安裝目錄。
現(xiàn)在,我們需要對(duì)MySQL進(jìn)行一些初始化操作,比如:初始化 data 目錄,初始化MySQL的系統(tǒng)表,初始化一個(gè)配置文件 my.cnf 等等。
cd /usr/local/mysql chown -R mysql . chgrp -R mysql . scripts/mysql_install_db --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data chown -R root . chown -R mysql data
說(shuō)明:scripts/mysql_install_db 是 MySQL的初始化命令。在初始化命令前,將目錄 /usr/local/mysql 的所有者和所屬組改為了mysql;在初始化命令后,將目錄 /usr/local/mysql 的所有者改為了root,然后又將 /usr/local/mysql/data 目錄的所有者改為了mysql。
注意:上述初始化操作完成后,會(huì)在 /usr/local/mysql 目錄中自動(dòng)生成一個(gè)配置文件 my.cnf。如果系統(tǒng)的其他位置沒(méi)有 my.cnf 文件,啟動(dòng)MySQL的時(shí)候,就會(huì)默認(rèn)以 /usr/local/mysql/my.cnf 作為配置文件啟動(dòng)。否則,需要手動(dòng)指定要使用的配置文件。
當(dāng)然,最好的辦法是刪除其他位置的my.cnf。
我們會(huì)發(fā)現(xiàn),在linux系統(tǒng)的配置文件目錄 /etc 中,本身就早已存在了一個(gè) my.cnf 文件,為了防止沖突,我們將其刪除(其實(shí),初始化操作完成后,也會(huì)給出這樣的提示)。
rm -f /etc/my.cnf
(5)啟動(dòng)和關(guān)閉MySQL服務(wù)
手動(dòng)啟動(dòng)MySQL:
cd /usr/local/mysql bin/mysqld_safe --user=mysql &
啟動(dòng)完畢后,使用下面的命令檢測(cè)MySQL是否啟動(dòng)成功
netstat -tlunp
或
ps aux | grep mysql
如果MySQL沒(méi)有啟動(dòng)成功,就查看一下錯(cuò)誤日志:
vi /usr/local/mysql/data/localhost.localdomain.err
根據(jù)具體的錯(cuò)誤信息,解決問(wèn)題后,重新啟動(dòng)MySQL。
關(guān)閉MySQL:
./bin/mysqladmin -u root -p shutdown
為了方便,將mysql的bin目錄加入linux系統(tǒng)的環(huán)境變量PATH中,方法如下:
export PATH=/usr/local/mysql/bin:$PATH
這樣,我們就可以在任何目錄直接使用 /usr/local/mysql/bin 目錄中的命令,而不用再帶上絕對(duì)路徑了,或者說(shuō)不用再切換到該目錄中了。
(6)常見(jiàn)的錯(cuò)誤及解決方法
錯(cuò)誤1 :無(wú)法在本地連接mysql
當(dāng)MySQL服務(wù)成功啟動(dòng)后,卻發(fā)現(xiàn)無(wú)法在本地連接上mysql,即在本地使用命令 mysql -uroot -p 時(shí),卻出現(xiàn)錯(cuò)誤信息“-bash: mysql: command not found”。如果已經(jīng)確定mysql命令存在且訪問(wèn)方式正確,但還是出現(xiàn)該錯(cuò)誤信息,則很有可能是 socket 套接字文件的絕對(duì)路徑?jīng)]有明確指定導(dǎo)致的。
解決方法:
修改mysql的配置文件 /usr/local/mysql/my.cnf,加入下面的代碼:
[client] socket=/tmp/mysql.sock
也就是,在配置文件中,明確指定socket套接字的位置。mysql.sock文件會(huì)在MySQL服務(wù)啟動(dòng)后,自動(dòng)生成。如果不清楚它的具體路徑,可使用命令 find / -name mysql.sock,進(jìn)行查找。
修改mysql的配置文件后,關(guān)閉MySQL服務(wù),然后重新開(kāi)啟MySQL服務(wù)。再來(lái)在本地連接mysql試試,一般就沒(méi)問(wèn)題了。
錯(cuò)誤2:無(wú)法在遠(yuǎn)程連接mysql
在本地連接mysql沒(méi)有問(wèn)題,但是在其他電腦上連接mysql,就算使用同樣的用戶名(如:root)和密碼,也無(wú)法連接上mysql。
這是因?yàn)?,linux系統(tǒng)的mysql服務(wù)器出于安全考慮,默認(rèn)只允許在本地登錄數(shù)據(jù)庫(kù)服務(wù)器。
mysql服務(wù)器中,有一個(gè)系統(tǒng)數(shù)據(jù)庫(kù),名為mysql,該庫(kù)中有一個(gè)user數(shù)據(jù)表,user表有很多字段,比如:host、user、password和權(quán)限字段等等。mysql服務(wù)器,通過(guò)該表來(lái)控制各個(gè)用戶的操作權(quán)限。
所以,只要對(duì)該表的數(shù)據(jù)進(jìn)行修改或在表中新增一條授權(quán)記錄,就可以了。
解決方法:
首先,我們不急著解決問(wèn)題,先看看問(wèn)題的原因。在本地登錄root用戶,查看下mysql數(shù)據(jù)庫(kù)中user表的記錄信息。
mysql -uroot -p show databases; use mysql; show tables; select host,user,password from user;
這時(shí),我們會(huì)發(fā)現(xiàn),所有用戶(包括root)的host列的值基本上都是localhost或127.0.0.1,也就是說(shuō),默認(rèn)只允許從本地登錄和操作mysql。可以證明,上面的分析是正確的。
然后,我們?cè)賮?lái)解決問(wèn)題。給指定的用戶分配所有的操作權(quán)限,并允許其從其他電腦登錄和操作MySQL服務(wù)器。一般來(lái)說(shuō),僅執(zhí)行下面的命令就可以完成授權(quán),并解決問(wèn)題:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '';
上面的命令執(zhí)行完后,就會(huì)在mysql.user表中新增一條授權(quán)記錄。此后,我們也就可以從遠(yuǎn)程的其他電腦登錄這臺(tái)linux的MySQL服務(wù)器了。
如果還是有問(wèn)題,可以執(zhí)行命令:flush privileges; 該命令的作用是使剛剛新增的授權(quán)記錄立即生效(一般都不用執(zhí)行該命令)。
可能很多人都不明白剛剛的授權(quán)命令,這里,我進(jìn)行詳細(xì)說(shuō)明,以便大家可以靈活運(yùn)用該命令進(jìn)行授權(quán)。
ALL PRIVILEGES:表示給指定的用戶分配所有的權(quán)限,主要包括增、刪、改、查等等。
ON *.*:表示指定的用戶可以對(duì)所有數(shù)據(jù)庫(kù)的所有數(shù)據(jù)表進(jìn)行操作,如果想改為指定數(shù)據(jù)庫(kù)的指定數(shù)據(jù)表,可以用 “ON 數(shù)據(jù)庫(kù)名.數(shù)據(jù)表名” 替代。
TO ‘root':表示給root用戶分配操作權(quán)限,如果想給其他的用戶分配權(quán)限,可以將root改為其他的用戶名。
@'%':表示允許所有的客戶端IP進(jìn)行訪問(wèn)。也就是說(shuō),% 表示不限制客戶端的IP地址。如果想限制客戶端的IP地址,可以將 % 替換為指定的IP地址。
IDENTIFIED BY ”:表示被授權(quán)的用戶的密碼。由于我是給root用戶分配權(quán)限,而root用戶的密碼默認(rèn)為空,故我使用的是空字符串。
(7)設(shè)置root用戶的初始密碼
mysql的root用戶默認(rèn)是沒(méi)有密碼的,這里設(shè)置root用戶的初始密碼為123456。即執(zhí)行下面的命令:
mysqladmin -u root password '123456'
當(dāng)然,也可以讓root用戶一直沒(méi)有密碼。但為了安全起見(jiàn),還是推薦給root用戶設(shè)置一個(gè)初始密碼。
(8)將mysql服務(wù)添加到系統(tǒng)服務(wù)
將mysql服務(wù)添加到系統(tǒng)服務(wù),是為了以后可以通過(guò)系統(tǒng)服務(wù)快速啟動(dòng)或關(guān)閉mysql服務(wù)。方法如下:
cd /usr/local/mysql cp support-files/mysql.server /etc/init.d/mysql.server
這樣,就可以使用新的方式啟動(dòng)和關(guān)閉mysql服務(wù)了。
啟動(dòng)mysql服務(wù):service mysql.server start
關(guān)閉mysql服務(wù):service mysql.server stop
重啟mysql服務(wù):service mysql.server restart
當(dāng)然,以前的命令方式(啟動(dòng)和關(guān)閉)仍然有效。
mysqld_safe --user=mysql & mysqladmin -u root -p shutdown
(9)將mysql服務(wù)設(shè)置為開(kāi)機(jī)自動(dòng)啟動(dòng)
將mysql服務(wù)設(shè)置為開(kāi)機(jī)自動(dòng)啟動(dòng)的方法有很多種,這里只介紹修改
/etc/rc.d/rc.local 文件的方式。
也可以修改 /etc/rc.local 這個(gè)文件,/etc/rc.local 其實(shí)是 /etc/rc.d/rc.local 文件的軟鏈接,相當(dāng)于快捷方式,該文件會(huì)在系統(tǒng)開(kāi)機(jī)后自動(dòng)執(zhí)行。
只需執(zhí)行下面的命令,即可將mysql服務(wù)設(shè)置為開(kāi)機(jī)自啟動(dòng):
echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.d/rc.local
上面的命令表示,將字符串 “/usr/local/mysql/bin/mysqld_safe –user=mysql &” 以追加的方式寫(xiě)入 /etc/rc.d/rc.local 文件。
由此可知,要想關(guān)閉mysql的開(kāi)機(jī)自啟動(dòng),只需編輯這個(gè)文件,刪除剛剛寫(xiě)入的字符串即可。
以上所述是小編給大家介紹的Linux CentOS6.6系統(tǒng)中安裝mysql源碼包的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Linux下rpm、yum和源碼三種安裝方式詳細(xì)介紹
- Linux下安裝mysql的方式(yum和源碼編譯兩種方式)
- linux下安裝mysql數(shù)據(jù)庫(kù)5.6源碼安裝,修改登錄用戶密碼
- linux下源碼安裝mysql5.6.20教程
- Linux CentOS 7源碼編譯安裝PostgreSQL9.5
- Linux下mysql源碼安裝筆記
- Linux下源碼編譯安裝配置SVN服務(wù)器的步驟分享
- SUSE Linux下源碼編譯方式安裝MySQL 5.6過(guò)程分享
- Linux+php+apache+oracle環(huán)境搭建之CentOS下源碼編譯安裝PHP
- 分析Linux內(nèi)核調(diào)度器源碼之初始化
相關(guān)文章
FOXHIS西軟系統(tǒng)sybase提示通知空間不足處理方法
各位酒店的電腦房經(jīng)理有沒(méi)有經(jīng)歷過(guò)在如下圖這樣的錯(cuò)誤?有時(shí)候酒店的維護(hù)費(fèi)沒(méi)有到位或者時(shí)間急迫的時(shí)候我們需要自己的操作,操作步驟如下文所述2017-01-01Linux下connect超時(shí)處理(總結(jié))
這篇文章主要介紹了Linux下connect超時(shí)處理(總結(jié)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04如何創(chuàng)建Linux的swap交換分區(qū)文件的方法步驟
這篇文章主要介紹了如何創(chuàng)建Linux的swap交換分區(qū)文件的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03Linux工具之Nethogs按進(jìn)程監(jiān)控網(wǎng)絡(luò)帶寬的安裝部署
NetHogs是一個(gè)小型的net top工具,不像大多數(shù)工具那樣拖慢每個(gè)協(xié)議或者是每個(gè)子網(wǎng)的速度而是按照進(jìn)程進(jìn)行帶寬分組,這篇文章主要介紹了Linux工具Nethogs按進(jìn)程監(jiān)控網(wǎng)絡(luò)帶寬,值得收藏,需要的朋友可以參考下2019-07-07詳解如何在阿里云服務(wù)器部署程序并用域名直接訪問(wèn)
這篇文章主要介紹了詳解如何在阿里云服務(wù)器部署程序并用域名直接訪問(wèn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07