centos7原始碼編譯mysql
阿新 • • 發佈:2019-01-07
centos7原始碼編譯mysql
整理一下學習日記,很適合小白學習
實驗環境:centos7(VM虛擬機器)
安裝版本:mysql-5.5.62
下載mysql
下載連結:https://pan.baidu.com/s/1RgL70vmy4OLj57zgOL6p9A
此處就不在重複上傳操作,如需瞭解可以看我發的上一篇文章
下邊開始進行編譯安裝
安裝依賴包
yum -y install cmake ncurses ncurses-devel bison libaio-devel autoconf
使用tar工具解壓縮已上傳的mysql安裝包
tar xvf mysql-5.5.62.tar.gz
建立mysql使用者
useradd mysql -s /sbin/nologin -M
編譯安裝httpd
cd mysql-5.5.62 \ #自定義配置詳解 #-DCMAKE_INSTALL_PREFIX 自定義mysql安裝目錄 #-DDEFAULE_CHARSET 設定預設使用的字符集編碼 utf8 #-DDEFAULE_COLLATION 設定預設使用的字符集校對規則,utf8_general_ci #-DEXTRA_CHARSETS 開啟其他所有字符集的支援 #-DSYSCONFIDIR 自定義初始化引數檔案目錄 #-DMYSQL_DATADIR 自定義資料目錄儲存位置 #-DMYSQL_UNIX_ADDR 自定義mysql的通訊目錄 #儲存引擎規則設定 #MyISAM,MERGE,MEMORY,和CSV引擎是預設編譯到伺服器中,並不需要明確地安裝。 #靜態編譯一個儲存引擎到伺服器,使用-DWITH_engine_STORAGE_ENGINE= 1 #可用的儲存引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema) #自定義配置 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULE_CHARSET=utf8 -DDEFAULE_COLLATION=utf8_general_ci -DEXTAR_CHARSETS=all -DSYSCONFIDIR=/home/mysql -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock -DWITH_INNOBASE_STORANGE_ENGIN=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/data -DWITH_BOOST=boost -DWITH_SYSTEMD=1 \ #編譯 make \ #安裝 make install \
將mysql使用者作為資料庫目錄所有者
chown -R mysql.mysql /usr/local/mysql
為mysql設定環境變數:
echo 'PATH=/usr/local/mysql/bin:/usr/local/lib:$PATH' >> /etc/profile
設定全域性變數
echo 'export PATH' >> /etc/profile
使變數生效
source /etc/profile
對mysql進行初始化
#進入mysql安裝目錄 cd /usr/local/mysql \ #初始化 bin/mysqld --initalize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
為方便使用,我們需要將mysql服務新增到系統服務中
cp /usr/lib/systemd/system/mysqld.service /usr/lib/sysytemd/system/ \
cp support-files/mysql.server /etc/init.d/mysqld \
chmod +x /etc/init.d/mysqld \
將mysql新增至系統服務管理器
chkconfig --add httpd \
chkconfig --level 35 mysqld on
重新載入系統服務管理器配置
systemctl daemon reload
啟動mysql,看是否能夠正常啟動
systemctl start msyqld
檢視是否mysql有沒有成功啟動
netstat -anpt | grep 3306 或者 netstat -anpt | grep mysql
如果沒有啟動成功請進行再次初始化
/usr/local/mysql/scripts/mysql_install_db --user=mysql --ldata=/var/lib/mysql --basedir=/usr/local/mysql --datadir=/home/mysql \
ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock \
systemctl daemon-reload
再次啟動然後檢視是否能夠正常啟動,
如果沒有成功啟動可以嘗試移除my.cnf配置檔案(將my.cnf重新命名即可)。再進行啟動:
mv /etc/my.cnf /etc/my.cnf.backup1
#重新啟動mysql,可以發現已經成功了
systemctl restat mysql
接下來就要更新mysql的帳號密碼了:
#輸入mysql,進入mysql命令臺(圖示會變為mysql>)
mysql \
#更新帳號密碼(mysql命令逗號不可省略)
#1. 檢視資料庫
show databases; \
#2. 使用mysql預設的資料庫
use mysql; \
#3. 更新root使用者的密碼
update user set password=password("root") where user="root";
#4. 重新整理
flush privilegas;
#5. 退出資料庫
quit;
#6. 使用使用者密碼重新連線資料庫
mysql -u root -p \
#密碼不會顯示,可以直接輸入密碼後回車
root
mysql常用管理命令
#檢視安裝的mysql版本號,登入之後會顯示當前使用資料庫版本號
mysql -u root -p
root
#啟動命令
systemctl start mysql
#關閉命令
systemctl stop mysql
#重啟命令
systemctl restart msyql
#將apache設定為開機自啟動
systemctl enable mysql