MySQL是一款開源的資料庫管理系統,廣泛應用於Web應用程式。在Linux系統中,MySQL的安裝方式有很多種,其中使用原始碼編譯的方式是最靈活、可自訂性最高的。以下將介紹使用原始碼編譯安裝MySQL的詳細步驟。
首先,需要在MySQL官網路上下載原始碼包,位址為:https://dev.mysql.com/downloads/mysql/ 。根據系統類型和版本選擇對應的源碼包,下載後解壓縮到指定的目錄。
在編譯MySQL之前,需要先安裝一些必要的依賴套件。在Ubuntu和Debian系統中,可以使用下列指令安裝:
sudo apt-get update sudo apt-get install build-essential libncurses5-dev libssl-dev libaio-dev
在CentOS和RedHat系統中,可以使用下列指令安裝:
sudo yum update sudo yum groupinstall "Development Tools" sudo yum install ncurses-devel openssl-devel libaio-devel
在進行MySQL原始碼編譯之前,需要先設定編譯參數。可使用以下命令進行設定:
./configure --prefix=/usr/local/mysql --with-charset=utf8mb4 --enable-thread-safe-client --with-ssl --with-plugins=innodb --with-innodb-storage-engine --with-embedded-server --with-extra-charsets=all --enable-local-infile --enable-assembler --with-unix-socket-path=/var/run/mysql/mysql.sock
其中,選項的意義如下:
配置完編譯參數後,可以使用下列指令進行編譯:
make
編譯過程可能會持續較長時間,取決於系統效能和來源碼包大小。編譯完成後,可以使用下列指令進行安裝:
sudo make install
安裝完成後,將會在/usr/local/mysql目錄下產生對應的檔案和目錄。
安裝完成後,需要將MySQL加入環境變數。可以編輯/etc/profile文件,在文件末端新增以下語句:
export PATH=$PATH:/usr/local/mysql/bin
儲存檔案後,執行下列指令使設定生效:
source /etc/profile
為了能夠將MySQL作為服務啟動和停止,需要建立一個服務文件。可以使用以下命令進行建立:
sudo vi /etc/systemd/system/mysql.service
將以下內容貼到檔案中:
[Unit] Description=MySQL Community Server After=network.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/var/lib/mysql --socket=/var/run/mysql/mysql.sock ExecStop=/usr/local/mysql/bin/mysqladmin -u root -p shutdown Restart=always PrivateTmp=false
該檔案中有三個部分:
在完成MySQL的編譯和安裝後,需要初始化資料庫。可以使用以下命令進行初始化:
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql
執行後將產生一個隨機密碼,需要記下來以便後續登入使用。初始化完成後,可以使用下列指令啟動MySQL服務:
sudo systemctl start mysql.service
此時,MySQL服務已經啟動成功。可以使用以下命令登入MySQL:
mysql -u root -p
輸入在初始化過程中產生的密碼即可登入MySQL中。
結論
透過原始碼編譯安裝MySQL,可以靈活地配置各種編譯參數,滿足不同的需求。同時也可以將MySQL安裝為系統服務,方便啟動和停止。雖然相對於其他安裝方式更加複雜,但在一些特殊的場景下,原始碼編譯安裝MySQL可以提供更好的客製化性和擴充性。
以上是mysql原始碼安裝 linux的詳細內容。更多資訊請關注PHP中文網其他相關文章!