Ubuntu18.04源碼安裝MySQL8.0

前置說明

使用源碼編譯安裝的好處是靈活,可以安裝多個版本。此次安裝是將所有mysql相關信息都放在/home/mysql8目錄下的!因此理論上是可以一臺機器安裝多個版本的。
另由於環境差異和個人的水平不同,有些細節性的東西不再贅述。

參考資源地址

源碼包下載地址:https://dev.mysql.com/downloads/mysql/
官方說明文檔:https://dev.mysql.com/doc/refman/8.0/en/source-installation.html

步驟

1. 編譯安裝

1.1 預先下載一些需要的庫和工具

apt-get install cmake gcc libncurses5-dev

1.2 爲了不污染源碼包,在源碼包下建一個build目錄,在build目錄中編譯

mkdir /home/data/mysql-8.0.17/build
cd /home/data/mysql-8.0.17/build

1.3 解壓包後,進入包內進行cmake

cmake .. \
-DCMAKE_INSTALL_PREFIX=/home/mysql8 \
-DMYSQL_UNIX_ADDR=/home/mysql8/run/mysql.sock \
-DSYSCONFDIR=/home/mysql8/etc \
-DSYSTEMD_PID_DIR=/home/mysql8/run \
-DMYSQL_DATADIR=/home/mysql8/data \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/home/mysql8/boost \
-DWITH_SYSTEMD=1 

選項說明:
說明詳細地址:https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html
CMAKE_INSTALL_PREFIX 安裝基本目錄,等價於啓動時的–basedir選項
MYSQL_UNIX_ADDR 連接文件位置
SYSCONFDIR 配置文件位置
SYSTEMD_PID_DIR PID文件目錄
MYSQL_DATADIR 數據文件目錄
DOWNLOAD_BOOST 是否安裝時下載boost庫
WITH_BOOST boost文件路徑
WITH_SYSTEMD 是否安裝systemd support files.開啓後,安裝後會多一個support-files文件夾,並且mysqld_safe不會被安裝
FORCE_INSOURCE_BUILD 是否強制在源碼路徑進行build,默認off
DEFAULT_CHARSET 默認編碼,8.0默認utf8mb4
DEFAULT_COLLATION 默認排序規則,8.0默認utf8mb4_0900_ai_ci

期間可能會提示缺少依賴,相應進行安裝即可。

1.4 cmake成功後進行

make && make install

這裏需要花費較長時間,等兩個小時吧,去幹點有意義的事吧~

2. 配置

2.1 添加mysql用戶組和配置文件權屬。

groupadd mysql
useradd mysql -g mysql -s /usr/sbin/nologin -M
chown -R mysql:mysql /home/mysql8

2.2 初始化配置,會生成root密碼,記得記下來哦!

/home/mysql8/bin/mysqld --defaults-file=/home/mysql8/etc/my.cnf --initialize --user=mysql --basedir=/home/mysql8 --datadir=/home/mysql8/data 

2.3 修改啓停服務腳本路徑,以後就靠這裏的mysqld來啓動

cp /home/mysql8/support-files/mysql.server /home/mysql8/mysqld

3. 使用

3.1 啓動服務

/home/mysql8/mysqld start

如果報目錄權限問題,記得修改/home/mysql8目錄的owner爲mysql
/home/etc/my.cnf配置文件自己記得添加,另外記得系統中不要存在/etc/mysql目錄,默認會先去/etc/mysql下尋找配置

啓動成功後,可以通過ps -ef|grep mysql/home/mysql8/mysqld status查看。

3.2 配置環境變量,添加mysql下的bin目錄到環境變量中
Vim /etc/profile,在最後一行添加

export PATH=$PATH:/home/mysql8/bin

然後使其生效

source /etc/profile

3.3 現在就可以直接使用mysql登錄啦

mysql -h 127.0.0.1 -P 3360 -u root -p

這裏連接的具體參數要根據/home/mysql8/etc/my.cnf中配置而定,然後輸入root密碼

如果連接報類似錯:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/home/mysql8/run/mysql.sock’ (2)
我已經生成了啓動是已經生成了sock文件的,默認在/home/mysql/run目錄下。這裏是因爲找不到sock文件。有兩種方法:
1.臨時解決,加上參數-h 127.0.0.1,默認是localhost,這兩種走的協議是不一樣的,使用127.0.0.1
2.根本上解決,在配置文件中指定好就行了。在我的配置文件中,[mysqld]、[mysql]和[client]下都配置👇:
socket = /home/mysql8/run/mysqld.sock

3.4 連接後執行任一命令都會要求修改root密碼:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

直接修改就好啦

alter user 'root'@'localhost' identified by '123456';

如果因爲密碼策略限制,可以網上搜索相關教程修改

到這裏就安裝配置完成了,done。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章