溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在linux中安裝配置Mysql?

發(fā)布時(shí)間:2020-05-25 11:45:32 來源:億速云 閱讀:253 作者:Leah 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章給大家分享的是如何在linux中安裝配置Mysql,相信大部分人都還沒學(xué)會(huì)這個(gè)技能,為了讓大家學(xué)會(huì),給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。

1 前言

linux下安裝MySQL的方式有很多種,包括以倉(cāng)庫(kù)的方式安裝(yum,apt,zypper),以包的方式安裝(rpm,deb),以docker方式安裝,從壓縮包解壓安裝,從源碼編譯安裝,這里使用的是最后一種,從源碼編譯安裝。
編譯安裝需要大量的耐心與時(shí)間,而且還會(huì)遇到非常多奇奇怪怪的問題,因此,需要極大的毅力,很有可能一萬次失敗也換不來一次的成功,請(qǐng)做好心理準(zhǔn)備。

2 準(zhǔn)備工作

下面是安裝要求,已安裝的可以跳過。

  • cmake
  • boost
  • gcc
  • ncurses
  • openssl
  • bison
  • doxygen

2.1 gcc

gcc的話一般linux都配備,最低要求版本為5.3,需要更新的話可以看筆者的另一篇博客。

2.2 boost

boost不需要手動(dòng)安裝,后面運(yùn)行cmake腳本的時(shí)候會(huì)自動(dòng)下載安裝,當(dāng)然也可以手動(dòng)安裝,官網(wǎng)的文檔說是需要特定版本,這里的MySQL Server 8.0.19需要的是1.70.0,目前最新的boost庫(kù)為1.72.0。
如何在linux中安裝配置Mysql?
如何在linux中安裝配置Mysql?

2.3 cmake

看筆者的另一篇博客。

2.4 其他

其他一般使用倉(cāng)庫(kù)安裝即可,當(dāng)然也可以每一個(gè)都去折騰從源碼安裝,你喜歡就好。

2.4.1 Red Hat系

7.x:

sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen

8.x:

sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen diffutils rpcgen make libtirpc-devel

2.4.2 ubuntu系

sudo apt-get update
sudo apt-get install -y bison git hostname libncurses-dev libssl-dev make openssl pkg-config doxygen

3 下載與解壓

3.1 下載

MySQL Server下載
這里不知道帶boost與不帶boost的有什么區(qū)別,后面使用cmake的時(shí)候都需要手動(dòng)下載boost,所以就隨便選一個(gè)吧。有知道的大神可以留言,小弟感激不盡。
如何在linux中安裝配置Mysql?

3.2 解壓

tar -zxvf mysql-boost-8.0.19.tar.gz
cd mysql-8.0.19

3.3 創(chuàng)建臨時(shí)bld文件夾

mkdir bld
cd bld

4 編譯與安裝

4.1 cmake

cmake .. \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=. \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_SSL=system \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/server \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_TCP_PORT=3306 \

安裝了boost的可以不需要:

-DDOWNLOAD_BOOST=1 
-DWITH_BOOST

安裝位置與數(shù)據(jù)位置根據(jù)需要自定義:

-DCMAKE_INSTALL_PREFIX=
-DMYSQL_DATADIR=

如何在linux中安裝配置Mysql?

4.2 編譯

make -j n

n為cpu核心數(shù),若失敗請(qǐng)直接使用

make

這里編譯需要比較長(zhǎng)的時(shí)間,有進(jìn)度提示。
如何在linux中安裝配置Mysql?

4.3 安裝

sudo make install

這里筆者遇到了libstdc++.so.6這個(gè)庫(kù)的問題,MySQL Server 8.0.19安裝需要GLIBCXX_3.4.25.
可以看看自己的libstdc++.so.6的路徑:

sudo find / -name lidstdc++.so.6

找到路徑之后:

strings /xxx/libstdc++.so.6 | grep GLIBCXX

如何在linux中安裝配置Mysql?
筆者這里只有GLIBCXX_3.4.22,由于之前手動(dòng)更新了gcc,在gcc的lib目錄中:
如何在linux中安裝配置Mysql?
因此只需要根據(jù)sudo make install的提示把這個(gè)libstdc++.so.6復(fù)制到/lib/:

sudo cp libstdc++.so.6 /lib/x86_64-linux-gnu/

另一種解決辦法是(針對(duì)Ubuntu系),添加ppa源,然后update:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

其他的也類似,更新gcc,手動(dòng)指定lib的位置。
如何在linux中安裝配置Mysql?
安裝成功。

4.4 測(cè)試

make test

如何在linux中安裝配置Mysql?
測(cè)試通過。

5 配置MySQL

安裝完成后還需要進(jìn)行MySQL的配置。

5.1 新建用戶組與用戶

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

5.2 修改數(shù)據(jù)目錄所有者與權(quán)限

數(shù)據(jù)目錄根據(jù)需要修改。

sudo chown mysql:mysql /usr/local/mysql/data
sudo chmod 777 /usr/local/mysql/data

這里官網(wǎng)的文檔寫的是750權(quán)限,但是后面會(huì)出現(xiàn)不可寫錯(cuò)誤,755也不行,所以直接改成了777。
如何在linux中安裝配置Mysql?

5.3 my.cnf

my.cnf在/etc或/etc/mysql下,筆者這里安裝后默認(rèn)有一個(gè)my.cnf在/etc/mysql下:
如何在linux中安裝配置Mysql?
/etc/mysql/my.cnf是全局配置,~/.my.cnf是用戶特定的配置,這里直接修改/etc/mysql/my.cnf:

[mysqld]
port=3306
basedir=/usr/local/mysql/server
datadir=/usr/local/mysql/data
character-set-server=utf8mb4
[mysql]
default-character-set=utf8
[client]
port=3306
default-character-set=utf8

參數(shù)根據(jù)需要可以后期添加,這里如果使用utf8:

[mysqld]
character-set-server=utf8

會(huì)有警告,因?yàn)镸ySQL5.5.3之后增加了utf8mb4,mb4是most bytes 4的意思,專門用來兼容四字節(jié)的unicode,utf8指的是utf8mb3,支持的utf8編碼最大字符長(zhǎng)度為3字節(jié),警告提示改成utf8mb4:

[mysqld]
character-set-server=utf8mb4

(額外閱讀:utf8與utf8mb4)

5.4 初始化

進(jìn)入到MySQL Server的安裝目錄下的bin:

mysqld --initialize-insecure --user=mysql

如何在linux中安裝配置Mysql?
這里使用-insecure是因?yàn)楹竺娌挥幂斎腚S機(jī)密碼。當(dāng)然也可以去掉insecure,這樣就會(huì)有一個(gè)隨機(jī)密碼,要記住。

mysqld --initialize --user=mysql

如何在linux中安裝配置Mysql?

5.5 支持ssl與rsa(可選)

mysql_ssl_rsa_setup

這個(gè)一般服務(wù)器需要。

5.6 開啟服務(wù)

mysqld_safe --user=mysql &

5.7 修改root密碼

先用root登錄

mysql -u root --skip-password

如果是使用initialize初始化的,輸入

mysql -u root -p

輸入剛才的臨時(shí)密碼。
進(jìn)去之后,使用alter修改root密碼:

alter 'root'@'localhost' identified by 'xxxxx'

5.8 測(cè)試

使用自帶的mysqlshow與mysqladmin:

mysqladmin -u root -p version
mysqlshow -u root -p

如何在linux中安裝配置Mysql?
完成,至此MySQL Server8.0.19安裝完畢。

6 后續(xù)處理

6.1 刪除文件

可以先把安裝文件給刪去:

sudo rm -rf mysql-8.0.19*

另外,根據(jù)剛才cmake的時(shí)候的boost目錄可以把boost庫(kù)給刪去:

sudo rm -rf boost_1_70_0*

因?yàn)槲臋n說只是需要boost去build,不需要使用。
如何在linux中安裝配置Mysql?

6.2 別名

加個(gè)別名只是為了方便使用,這里筆者的做法其實(shí)很偷懶,默認(rèn)root登錄,修改~/.bash_aliases:

alias mysqld="/usr/local/mysql/bin/mysqld_safe --user=mysql &"
alias mysql="/usr/local/mysql/bin/mysql -u root -p"

使用MySQL之前使用mysqld啟動(dòng)服務(wù)掛后臺(tái),然后使用mysql登錄,默認(rèn)root用戶。
當(dāng)然更偷懶的做法是

alias mysql="/usr/local/mysql/bin/mysql -u root --password=xxxx"

這樣密碼都不用輸了。

以上就是在linux中安裝配置Mysql的方法了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI