1. 程式人生 > >centos7原始碼編譯mysql

centos7原始碼編譯mysql

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