1. 程式人生 > >Linux下mysql的原始碼編譯安裝

Linux下mysql的原始碼編譯安裝

1>【安裝依賴包】

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel   bison perl perl-devel  perl perl-devel 

2>【解壓mysql的原始碼安裝包到mysql_install_src目錄下】

cd /usr/local/mysql_install_src/

tar -zxvf mysql-boost-5.7.11.tar.gz 

3>【建立mysql組和使用者】

groupadd mysql #建立mysql組

useradd -g mysql mysql #建立mysql組中的mysql使用者

4>【建立mysql的預設安裝目錄和資料儲存目錄】

#建立預設安裝目錄
mkdir /usr/local/LAMP/mysql
#建立資料儲存目錄
mkdir /usr/local/LAMP/mysql/data

5>【將第4步中建立的目錄的所有者許可權賦給mysql組和mysql使用者,並賦予相應許可權】

chown -R mysql:mysql /usr/local/LAMP/mysql   

chown -R mysql:mysql /usr/local/LAMP/mysql/data

chmod 750 /usr/local/LAMP/mysql

6>【編譯並安裝mysql】

cd /usr/local
/mysql_install_src/mysql-5.7.11 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/LAMP/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost make make install

7>【修改環境變數,讓我們在任意目錄下都可以使用mysql和mysqld命令】

vim /etc/profile # 在profile檔案末尾增加兩行 
PATH=/usr/local/LAMP/mysql/bin/:/usr/local/LAMP/mysql/lib
:$PATH export PATH # 退出並儲存profile # 使PATH搜尋路徑立即生效: source /etc/profile

注意:如果以前的PATH有內容,則只需在其原有內容後面新增一個冒號,再新增/usr/local/LAMP/mysql/bin/:/usr/local/LAMP/mysql/lib:
export也不用改變(一般裝完java後會因配置環境變數而出現這種情況)

8>【新增命令到系統中】

#複製啟動指令碼到init.d下
cp /usr/local/LAMP/mysql/support-files/mysql.server /etc/init.d/mysqld
#增加執行許可權
chmod 755 /etc/init.d/mysqld
#建立mysql命令檔案
ln -s /mysql/bin/mysql /usr/bin/

注:沒有這個檔案就沒有mysql命令,不能在任意位置使用mysql/bin下的各種命令訪問資料庫

9>【初始化資料庫】

/usr/local/LAMP/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/LAMP/mysql/ --datadir=/usr/local/LAMP/mysql/data

!!!!!!注:初始化後會生成預設密碼,千!萬!要!記!錄!下!來!。[Note] A temporary password is generated for [email protected]: kci!&aa?s8wE

10>【啟動mysql】

/usr/local/LAMP/mysql/bin/mysqld_safe --user=mysql &

執行完該命令後會出現如下提示資訊,該提示資訊無法關閉。
mysqld_safe Starting mysqld daemon with databases from /usr/local/LAMP/mysql/data
等待一會後,再開啟一個終端登入root使用者

11>【在新開啟的終端上登入mysql】

mysql -u root -p

回車後提示輸入密碼,輸入上面記錄下的密碼即可。

12>【修改mysql預設密碼】

#將MyNewPass替換為你要更改的密碼
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

#修改密碼之後需要執行該語句才會儲存。
flush privileges;

#退出mysql
quit 
#重啟mysqld後才會使重置的密碼生效
service mysqld restart