通過(guò)包管理器安裝 MySQL
ubuntu安裝 MySQL
1、配置APT源
ubuntu自己的APT源里面就有MySQL,以u(píng)buntu2004為例,可以直接用相關(guān)源就行了,也可以導(dǎo)入MySQL的官方源。
-
阿里云鏡像源地址:https://developer.aliyun.com/mirror/
-
官方源地址:https://dev.mysql.com/downloads/repo/apt/

使用apt policy查看即可看到源中可以安裝的版本信息,ubuntu2004默認(rèn)安裝的MySQL版本是 8.0.35 版本,ubuntu1804默認(rèn)安裝的是MySQL5.7.42版本。
apt policy mysql-server

2、安裝MySQL
# 相關(guān)客戶端工具會(huì)作為依賴被安裝
sudo apt install mysql-server

說(shuō)明: 安裝過(guò)程中會(huì)有彈框提示輸入本地使用socket登錄mysql的密碼信息。
centos安裝 MySQL
以為CentOS7為例,CentOS7的yum源中沒(méi)有MySQL。因?yàn)樵?MySQL 被甲骨文公司(Oracle)收購(gòu)后,社區(qū)對(duì) MySQL 的開源未來(lái)感到擔(dān)憂。
由于這種擔(dān)憂和對(duì) Oracle 商業(yè)政策的不確定性,Red Hat(CentOS 的主要支持者之一)決定在其發(fā)行版中用 MariaDB 替換 MySQL。
Red Hat 做出這一決策是為了確保其發(fā)行版中提供的數(shù)據(jù)庫(kù)解決方案能夠繼續(xù)保持開放和自由。所以要想讓Centos7在線安裝MySQL,需要配置官方的yum源才行。
1、配置yum源
下載地址:https://dev.mysql.com/downloads/repo/yum/

rpm -ivh mysql80-community-release-el7-11.noarch.rpm
yum clean all
yum makecache

2、安裝 MySQL
yum源配置好后,直接安裝就行了。這里有個(gè)問(wèn)題就是 使用 yum --showduplicates list mysql-server 沒(méi)法列出mysql的版本信息。
因?yàn)檎_的名稱是 mysql-community-server,但是使用yum install 的時(shí)候,這個(gè)軟件包有一個(gè)別名叫作mysql-server。
# 相關(guān)客戶端工具會(huì)作為依賴進(jìn)行安裝
yum install mysql-server
卸載 MySQL
ubuntu卸載 MySQL
1、刪除軟件包及相關(guān)文件
使用apt的puge選項(xiàng),不僅會(huì)刪除軟件包,還會(huì)刪除軟件包的配置文件和數(shù)據(jù)
sudo apt purge mysql-server

這個(gè)步驟只是把mysql-server給刪除了,但是APT 只會(huì)卸載 mysql-server 包本身及其配置文件。安裝mysql-server自動(dòng)安裝的一些依賴包,不會(huì)在mysql-server刪除的時(shí)候自動(dòng)移除。
2、刪除其它相關(guān)組件
現(xiàn)在主依賴包已被刪除。為了移除這些不再需要的包,需要執(zhí)行 sudo apt autoremove 命令。這個(gè)命令將自動(dòng)刪除所有不再被任何已安裝軟件包所需的軟件包。
sudo apt autoremove

通過(guò)以上步驟就可以把mysql給全部移除,這樣下載再安裝mysql就不會(huì)有沖突了。
centos卸載 MySQL
centos和ubuntu就有所不同了,YUM 沒(méi)有 purge 命令,所以需要使用 yum remove指令移除軟件包,同時(shí)未被其他包依賴的依賴通常會(huì)一同被移除。
使用 yum remove指令不會(huì)移除配置文件還有數(shù)據(jù)目錄,需要自己手動(dòng)刪除才行。
1、移除mysql
yum remove mysql-server

2、移除其它相關(guān)依賴
因?yàn)殡m然使用 yum remove命令時(shí),YUM 會(huì)自動(dòng)移除指定的軟件包以及由于依賴它而安裝的包。
這意味著,如果其他軟件包沒(méi)有依賴這些額外安裝的包,它們也會(huì)被移除。但是有些時(shí)候系統(tǒng)中安裝了其他 MySQL 相關(guān)的軟件包,例如mysql-common 等,這些包可能被看作獨(dú)立的包,不直接依賴于 mysql-server,所以就不會(huì)被移除。
yum remove mysql*
3、刪除相關(guān)文件
-
配置文件:一般是 /etc/mysql.cnf
-
數(shù)據(jù)文件:一般在/var/lib/mysql
二進(jìn)制安裝 MySQL
二進(jìn)制安裝可以理解為軟件的可執(zhí)行文件已經(jīng)被提前編譯好了,在二進(jìn)制安裝過(guò)程中,您不需要自己編譯軟件,只需進(jìn)行簡(jiǎn)單的配置和安裝步驟即可開始使用軟件。這種安裝方式省去了編譯過(guò)程中的時(shí)間和潛在的復(fù)雜性。
二進(jìn)制安裝 MySQL 5.6
1、下載二進(jìn)制包
官方網(wǎng)址:https://downloads.mysql.com/archives/community/

說(shuō)明:
Linux - Generic意味著該軟件包適用于所有基于 Linux 的發(fā)行版,包括但不限于 Red Hat, Ubuntu, Debian 等。
2、解壓到指定目錄
將上傳到服務(wù)器的軟件包解壓后,重命名移動(dòng)到/opt目錄下:
mv mysql-5.6.51-linux-glibc2.12-x86_64 mysql-5.6
sudo mv mysql-5.6 /opt/

/opt 和 /usr/local區(qū)別:
-
/opt 目錄:通常用于存放那些所有組件都在同一個(gè)目錄中的完整應(yīng)用程序。這些應(yīng)用程序是自包含的,不會(huì)與系統(tǒng)的其他部分混合。
-
/usr/local 目錄:用于存放按照 Unix 目錄結(jié)構(gòu)規(guī)則安裝的應(yīng)用程序組件。這些組件分布在不同的標(biāo)準(zhǔn)子目錄中,例如可執(zhí)行文件在 /usr/local/bin,庫(kù)文件在 /usr/local/lib 等。
2、相關(guān)環(huán)境準(zhǔn)備
(1)配置PATH變量
echo 'PATH=/opt/mysql_5.6/bin:$PATH' > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh

(2)創(chuàng)建mysql用戶
通過(guò)使用專門的用戶運(yùn)行服務(wù),可以確保該服務(wù)僅具有執(zhí)行其所需任務(wù)所必需的權(quán)限,從而降低了系統(tǒng)遭受惡意攻擊的風(fēng)險(xiǎn)。
sudo groupadd -r -g 306 mysql
sudo useradd -r -g 306 -u 306 mysql

(3)創(chuàng)建配置文件
官方提供了模板配置文件,所以可以直接基于這個(gè)模板文件進(jìn)行配置。在 support-files 子目錄下有一個(gè)叫作 my-default.cnf的模板配置文件。

將文件模板拷貝一份到/etc下并重命名為my.cnf
sudo cp -a my-default.cnf /etc/my.cnf
編輯配置文件,指定相關(guān)信息
# mysqld服務(wù)端進(jìn)程配置
[mysqld]
user = mysql
basedir = /opt/mysql_5.6
datadir = /mysql_data
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
server_id = 1
skip_name_resolve = ON
max_connections = 1024
# 需要指定為具體的文件名
log_error = /var/log/mysql/err.log
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# [mysql] # 僅影響 mysql 命令行客戶端的行為
# 影響所有基于 MySQL 客戶端庫(kù)的應(yīng)用程序,包括 mysql 命令行工具
[client]
socket=/var/run/mysqld/mysqld.sock
default-character-set=utf8mb4
需要提前創(chuàng)建好相關(guān)目錄和改變權(quán)限:
sudo chown -R mysql:mysql /opt/mysql_5.6
sudo mkdir /mysql_data; sudo chown -R mysql:mysql /mysql_data
sudo mkdir /var/log/mysql; sudo chown mysql:mysql /var/log
說(shuō)明:
basedir指定mysql應(yīng)用程序的存放位置;datadir指定mysql的數(shù)據(jù)目錄。因?yàn)楹竺嫖覀儠?huì)用mysql5.6自帶的一個(gè)管理腳本來(lái)管理mysql,如果不指定這些參數(shù),就會(huì)使用mysql.service腳本的默認(rèn)配置來(lái)生成相關(guān)文件。

(4)基礎(chǔ)數(shù)據(jù)初始化
mysql5.6版本使用的是 mysql_install_db 這個(gè)腳本來(lái)實(shí)現(xiàn)基礎(chǔ)數(shù)據(jù)的初始化。一般需要指定數(shù)據(jù)存放位置、運(yùn)行 MySQL 服務(wù)器進(jìn)程的系統(tǒng)用戶名。
還有就是 MySQL 安裝的根目錄,指定安裝位置的原因是該目錄是MySQL 二進(jìn)制文件、庫(kù)、系統(tǒng)表和其他重要文件的所在位置。
# 初始化相關(guān)數(shù)據(jù)
sudo ./scripts/mysql_install_db --datadir=/mysql_data --user=mysql --basedir=/opt/mysql_5.6/
說(shuō)明: 如果初始化過(guò)程中提示這個(gè)錯(cuò)誤,需要安裝 libaio1 這個(gè)庫(kù)文件
nstalling MySQL system tables.../opt/mysql_5.6/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
(5)編寫service文件
在mysql5.6的二進(jìn)制安裝包中,提供了一個(gè)叫作mysql.server的文件。
如果當(dāng)前系統(tǒng)的初始進(jìn)程是 system V init進(jìn)程。將這個(gè)腳本移動(dòng)到/etc/init.d/目錄下,然后使用service命令即可對(duì)mysql進(jìn)行管理
cp -a mysql.service /etc/init.d/
chkconfig --add mysqld
service mysqld start
如果當(dāng)前系統(tǒng)的初始進(jìn)程是systemd 進(jìn)程,就需要要手動(dòng)編寫一個(gè)systemd的service文件,用于將mysql進(jìn)程交給systemd進(jìn)行托管
sudo vim /lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server 5.6.51
After=network.target
[Service]
Type=forking
User=mysql
Group=mysql
PIDFile=/var/run/mysqld/mysqld.pid
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop
ExecReload=/etc/init.d/mysqld reload
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

(6)啟動(dòng)測(cè)試
sudo systemctl daemon-reload
sudo systemctl start mysql.service

二進(jìn)制安裝 MySQL 5.7
1、下載程序包
下載地址:https://downloads.mysql.com/archives/community/

2、解壓到指定目錄
上傳到服務(wù)器解壓后,重命名并且移動(dòng)到/opt目錄下
sudotar -xzf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
sudomv mysql-5.7.44-linux-glibc2.12-x86_64 mysql-5.7
sudomv mysql-5.7 /opt/
sudo chown -R /opt/mysql-5.7

3、相關(guān)環(huán)境配置
(1)配置PATH變量
echo "PATH=/opt/mysql-5.7/bin:$PATH" > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh

(2)創(chuàng)建mysql用戶
sudo groupadd -r -g 306 mysql
sudo useradd -r -g 306 -u 306 mysql

(3)創(chuàng)建配置文件
mysql5.7的二進(jìn)制包里面好像沒(méi)提供配置文件的模板,我們就自己在/etc下創(chuàng)建一個(gè)名為my.cnf的配制文件
sudo vim /etc/my.cnf
[mysqld]
# 運(yùn)行mysql服務(wù)的用戶
user = mysql
# 相關(guān)目錄指定
datadir = /data
basedir = /opt/mysql-5.7
tmpdir = /tmp
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
bind-address = 0.0.0.0
skip_name_resolve = ON
log_error = /var/log/mysql/err.log
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 客戶端配置
[client]
socket=/var/run/mysqld/mysqld.sock
default-character-set=utf8mb4
說(shuō)明:
數(shù)據(jù)目錄和存放日志文件的目錄要提前創(chuàng)建好,并更改權(quán)限
sudo mkdir /data; sudo chown mysql:mysql /data;
sudo mkdir /var/log/mysql; sudo chown mysql:mysql /var/log/mysq;

(4)初始化基本數(shù)據(jù)
初始化過(guò)程可能需要對(duì)數(shù)據(jù)目錄進(jìn)行寫入操作,而這通常需要較高的權(quán)限,所以一般需要以root用戶身份來(lái)執(zhí)行這個(gè)操作。
如果不指定user和datadir參數(shù),MySQL 會(huì)嘗試使用配置文件中的相應(yīng)配置選項(xiàng)。
root@ubuntu:~# mysqld --initialize-insecure --user=mysql --datadir=/data/
說(shuō)明:
如果配置文件已經(jīng)指定了這些參數(shù),再進(jìn)行初始化的時(shí)候可以忽略。從mysql5.7.6開始就是使用 mysqld --initialize或 --initialize-insecure 來(lái)初始化mysql的基本數(shù)據(jù)。
(5)創(chuàng)建service文件
在mysql的二進(jìn)制安裝包中,位于support-files目錄下有一個(gè)名為 mysql.server 的腳本文件,這個(gè)腳本文件是SysV init 系統(tǒng)中用來(lái)管理MySQL的腳本。

如果當(dāng)前系統(tǒng)的初始進(jìn)程是 system V init進(jìn)程。將這個(gè)腳本移動(dòng)到/etc/init.d/目錄下,然后使用service命令即可對(duì)mysql進(jìn)行管理
cp -a mysql.service /etc/init.d/
chkconfig --add mysqld
service mysqld start
如果當(dāng)前系統(tǒng)的初始進(jìn)程是systemd進(jìn)程,就需要手動(dòng)編寫mysql的service文件:
方案一:
按照上面給MySQL5.6編寫service腳本一樣,service腳本中調(diào)用提供的腳本文件來(lái)實(shí)現(xiàn)對(duì)mysql服務(wù)的管理。這里略過(guò),操作方法和上面一樣的。
方案二:
自己手動(dòng)寫一個(gè)管理mysql的service,其實(shí)就是運(yùn)行mysqld進(jìn)程,然后加上一些必要的參數(shù)就行了。
sudo vim /lib/systemd/system/mysql.service
[Unit]
Description=MySQL Community Server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=forking
User=mysql
Group=mysql
PIDFile=/var/run/mysqld/mysqld.pid
PermissionsStartOnly=true
ExecStart=/opt/mysql-5.7/bin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
TimeoutSec=infinity
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755
LimitNOFILE=5000

(6)啟動(dòng)測(cè)試

二進(jìn)制安裝 MySQL 8.0
1、下載二進(jìn)制包
下載地址:https://dev.mysql.com/downloads/mysql

2、解壓到指定目錄
tar -xf mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.35-linux-glibc2.12-x86_64 mysql-8.0
sudo mv mysql-8.0 /opt/
3、完善相關(guān)配置
(1)配置PATH變量
echo "PATH=/opt/mysql-8.0/bin:$PATH" > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh

(2)創(chuàng)建mysql用戶
sudo groupadd -r -g 306 mysql
sudo useradd -r -g 306 -u 306 mysql

(3)編寫配置文件
sudo vim /etc/my.cnf
[mysqld]
user = mysql
port = 3306
bind-address = 0.0.0.0
socket = /var/run/mysqld/mysqld.sock
pid-file = /var/run/mysqld/mysqld.pid
basedir = /opt/mysql-8.0
datadir = /data
tmpdir = /tmp
log_error = /var/log/mysql/error.log
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_connections = 1024
[client]
socket=/var/run/mysqld/mysqld.sock
default-character-set=utf8mb4
需要?jiǎng)?chuàng)建好相關(guān)目錄:
sudo chown -R mysql:mysql /opt/mysql-8.0
sudo mkdir /data; sudo chworn mysql:mysql /data
sudo mkdir /var/log/mysql; sudo chown -R mysql:mysql /var/log/mysql
(4)初始化基礎(chǔ)數(shù)據(jù)
初始化過(guò)程可能需要對(duì)數(shù)據(jù)目錄進(jìn)行寫入操作,而這通常需要較高的權(quán)限,所以一般需要以root用戶身份來(lái)執(zhí)行這個(gè)操作。
如果不指定user和datadir參數(shù),MySQL 會(huì)嘗試使用配置文件中的相應(yīng)配置選項(xiàng)。
root@ubuntu:~# mysqld --initialize-insecure --user=mysql --datadir=/data/

(5)編寫service文件
和其它mysql的二進(jìn)制安裝包一樣,support-files目錄下提供了一個(gè)mysql.server腳本,如果是使用init作為初始化進(jìn)程的系統(tǒng),直接移動(dòng)到/etc/init.d/下即可。
cp -a mysql.service /etc/init.d/
chkconfig --add mysqld
service mysqld start
如果是使用systemd作為初始化進(jìn)程,就需要我們自己手動(dòng)編寫一個(gè)service文件了。
這個(gè)配置文件是我拷貝的使用包管理工具安裝的mysql的service配置文件。如果需要自己寫一個(gè)配置文件,通過(guò)調(diào)用mysql.service腳本實(shí)現(xiàn)mysql服務(wù)的管理。參考上面的操作。
[Unit]
Description=MySQL Community Server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=notify
User=mysql
Group=mysql
PIDFile=/var/run/mysqld/mysqld.pid
PermissionsStartOnly=true
ExecStart=/opt/mysql-8.0/bin/mysqld
TimeoutSec=infinity
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755
LimitNOFILE=10000
# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1

(6)啟動(dòng)測(cè)試
sudo systemctl daemon-reload
sudo systemctl start mysql.service

編譯安裝MySQL
編譯安裝 MySQL5.6
1、下載源碼包
下載地址:https://downloads.mysql.com/archives/community/
將tar包上傳到服務(wù)器后解壓,可以看到里面有幾個(gè)文件:
-
LICENSE:包含了MySQL的許可證信息
-
INSTALL:包含了編譯安裝指南
-
README:提供了關(guān)于源碼包的概覽信息,源碼使用指南
-
VERSION:當(dāng)前MySQL的版本信息
說(shuō)明:
OS Version: All Operating Systems (Generic) (Architecture Independent):表示這個(gè)源碼是通用的,適用于任何操作系統(tǒng)和硬件架構(gòu)。
2、安裝編譯工具
根據(jù)官網(wǎng)文檔所說(shuō),“MySQL使用CMake作為所有平臺(tái)上的構(gòu)建框架”。所以安裝編譯工具的時(shí)候除了make和gcc,還需要安裝cmake
sudo apt install cmake make gcc -y
3、生成 Makefile
默認(rèn)情況下編譯后的所有文件會(huì)放在 /usr/local/mysql 這個(gè)目錄中,如果沒(méi)有其它要求,直接用它默認(rèn)的選項(xiàng)就行了。
mkdir mysql-5.6.51/build
# 會(huì)檢查當(dāng)前的環(huán)境是否滿足,生成Makefile文件
sudo cmake ..
如果相關(guān)依賴沒(méi)有安裝的話,不會(huì)正常生成MakeFile文件,常見的錯(cuò)誤有這些。
(1)缺少OpenSSL依賴
sudo apt install libssl-dev

(2)缺少Curses庫(kù)
# ubuntu
sudo apt-get install libncurses5-dev
# redhat系列
sudo yum install ncurses-devel。

如果檢查環(huán)境沒(méi)問(wèn)題,就會(huì)生成Makefile文件和其它一些相關(guān)文件

如果想要自定義一些編譯參數(shù),可以查看MySQL提供的官方文檔,里面提供了源碼安裝的注意點(diǎn)以及方法:
地址:https://dev.mysql.com/doc/


MySQL說(shuō)明手冊(cè)上說(shuō)了:
1、可以從github上下載開發(fā)版本源碼或者使用官網(wǎng)提供的標(biāo)準(zhǔn)發(fā)行版構(gòu)建版本
2、MySQL在任何平臺(tái)上都是使用Cmake作為構(gòu)建工具
3、編譯過(guò)程中,需要SSL庫(kù)和curses 庫(kù),以及其他要求。

4、源碼編譯后,默認(rèn)安裝在/usr/local/mysql目錄,并且組件位置和二進(jìn)制包里面的組件位置是一樣的

5、如果不想使用默認(rèn)的值,可以在執(zhí)行cmake生成makefile文件的時(shí)候指定一些參數(shù)來(lái)指定對(duì)應(yīng)的設(shè)置
-
CMAKE_INSTALL_PREFIX=/path:指定應(yīng)用程序安裝位置,默認(rèn)是/usr/local/mysql
-
-DSYSCONFDIR=/path:配置文件位置,可以在mysqld進(jìn)程啟動(dòng)的時(shí)候使用 --defaults-file 選項(xiàng)指定特定的位置
-
-DWITH_SYSTEMD=1:使用systemd管理mysql服務(wù)
- 其它一些配置其實(shí)不指定都行,因?yàn)樵趍ysql服務(wù)(mysqld進(jìn)程)啟動(dòng)的時(shí)候,可以通過(guò)手動(dòng)指定選項(xiàng)或者在配置文件里面指定對(duì)應(yīng)的選項(xiàng)來(lái)完成配置,這些配置會(huì)默認(rèn)覆蓋編譯過(guò)程中指定的相同配置。

4、編譯
使用root用戶身份進(jìn)行編譯鏈接,會(huì)生成對(duì)應(yīng)的二進(jìn)制文件。使用make 的 -j 參數(shù)可以指定使用多少個(gè)CPU進(jìn)行編譯。
sudo make -j 4

5、安裝
因?yàn)槿渴褂玫氖荕ySQL默認(rèn)的選項(xiàng),所以會(huì)將相關(guān)文件放到/usr/local/mysql目錄下,使用 make install 即可完成對(duì)應(yīng)的二進(jìn)制文件移動(dòng)到指定位置。
sudo make install

6、環(huán)境準(zhǔn)備
(1)修改PATH變量
echo "PATH=/usr/locl/mysql/bin:$PATH" > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
(2)創(chuàng)建mysql用戶
sudo groupadd -r -g 306 mysql
sudo useradd -r -g 306 -u 306 mysql
(3)編寫配置文件
[mysqld]
user = mysql
port = 3306
bind-address = 0.0.0.0
socket = /var/run/mysqld/mysqld.sock
pid-file = /var/run/mysqld/mysqld.pid
basedir = /usr/local/mysql
datadir = /data
tmpdir = /tmp
log_error = /var/log/mysql/error.log
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_connections = 1024
[client]
socket=/var/run/mysqld/mysqld.sock
default-character-set=utf8mb4
說(shuō)明:
因?yàn)槭蔷幾g安裝,所以相關(guān)目錄需要自己手動(dòng)創(chuàng)建
sudo mkdir /data; sudo chown mysql:mysql /data
sudo mkdir /var/log/mysql; sudo chown mysql:mysql /var/log/mysql;
sudo mkdir /var/run/mysql; sudo chown mysql:mysql /var/run/mysql;

Linux中/run和/var/run區(qū)別:
-
相同點(diǎn):都是用于存放自系統(tǒng)啟動(dòng)以來(lái)所需要的運(yùn)行時(shí)數(shù)據(jù),它通常包括運(yùn)行中的服務(wù)的PID文件和套接字文件,該目錄中的內(nèi)容在系統(tǒng)重啟時(shí)會(huì)被清除
-
不同點(diǎn):/run是一個(gè)較新的目錄,而/var/run在早期的Linux系統(tǒng)中就有了,在現(xiàn)代系統(tǒng)中,/var/run 實(shí)際上是一個(gè)到 /run 的符號(hào)鏈接
(4)初始化基礎(chǔ)數(shù)據(jù)
sudo ./scripts/mysql_install_db --datadir=/data --user=mysql --basedir=/usr/local/mysql/
(5)編寫service文件
如果是init進(jìn)程作為系統(tǒng)的初始化進(jìn)程,可以手動(dòng)編寫service文件來(lái)管理mysql服務(wù)。
cp -a support-files/mysql.server /etc/init.d/mysqld
編寫systemd的配置文件:
[Unit]
Description=MySQL Server 5.6.51
After=network.target
[Service]
Type=forking
User=mysql
Group=mysql
Nice=0
PIDFile=/var/run/mysqld/mysqld.pid
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop
ExecReload=/etc/init.d/mysqld reload
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

說(shuō)明:
User=mysql 和 Group=mysql 這兩個(gè)參數(shù)在systemd服務(wù)文件中是針對(duì) ExecStart 指定的主進(jìn)程。(僅影響由 ExecStart 指定的主服務(wù)進(jìn)程。)
(6)啟動(dòng)測(cè)試
sudo systemctl restart mysql.service
編譯安裝 MySQL5.7
配置步驟和二進(jìn)制安裝一樣,就是多了編譯這個(gè)步驟
說(shuō)明:
(1)boost庫(kù)支持
從MySQL 5.7 版本開始,MySQL 引入了對(duì) Boost 庫(kù)的依賴,Boost是一個(gè)C++庫(kù)集合。這是因?yàn)?MySQL 從 5.7 版本開始引入了一些新特性,如新的 JSON 數(shù)據(jù)類型和地理空間數(shù)據(jù)處理,這些特性需要 Boost 庫(kù)中的某些組件來(lái)支持。

手冊(cè)鏈接:https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
所以編譯安裝的時(shí)候需要使用 WITH_BOOST 參數(shù)來(lái)指定boost的位置,下載源碼的時(shí)候可以直接下載帶boost庫(kù)的源碼,如果沒(méi)下載帶boost的源碼,使用cmake進(jìn)行編譯的時(shí)候,會(huì)有報(bào)錯(cuò)提示的,根據(jù)要求下載就行了。

如果下載的是不帶boost庫(kù)的頭文件,使用cmake的時(shí)候會(huì)提示這個(gè)錯(cuò)誤,按照這個(gè)要求下載,然后指定就可以了。

(2)systemd環(huán)境
從mysql5.7版本開始,如果Linux操作系統(tǒng)的初始化進(jìn)程是systemd,提供了一個(gè)參數(shù) WITH_SYSTEMD,默認(rèn)這個(gè)參數(shù)的值是OFF,啟用這個(gè)參數(shù)后,會(huì)生成systemd對(duì)應(yīng)的service文件。

cmake .. -DWITH_SYSTEMD=1 -DWITH_BOOST=./boost_1_77_0
編譯完成后,對(duì)應(yīng)的systemd相關(guān)文件是位于mysql/lib/systemd/system這個(gè)位置。這樣就不用自己手動(dòng)去編寫service文件了,方便了很多。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-747564.html

編譯安裝 MySQL8.0
配置步驟和二進(jìn)制安裝一樣,就是多了編譯這個(gè)步驟,編譯和mysql5.7編譯差不多。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-747564.html
到了這里,關(guān)于Linux 安裝MySQL 步驟的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!