0基礎(chǔ)學(xué)數(shù)據(jù)分析 MySQL多種安裝方式

# MySQL數(shù)據(jù)庫多種安裝方式

數(shù)據(jù)庫官網(wǎng)下載地址??https://downloads.mysql.com/archives/community/

## 一 linux系統(tǒng)

### 1.1 源碼安裝數(shù)據(jù)庫(自定義安裝目錄)

![](https://blog.sholdboyedu.com/wp-content/uploads/2021/07/1-1.png)

#### 1)下載代碼包

```bash

[root@db01 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.46.tar.gz

```

#### 2)安裝依賴

```bash

[root@db01 ~]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf openssl openssl-devel

```

#### 3)解壓

```bash

[root@db01 ~]# tar xf mysql-5.6.46.tar.gz

```

#### 4)創(chuàng)建目錄

```bash

[root@db01 ~]# mkdir /service

```

#### 5)生成cmake

```bash

[root@db01 ~]# cd mysql-5.6.46/

[root@db01 ~]# cmake . -DCMAKE_INSTALL_PREFIX=/service/mysql-5.6.46 \

-DMYSQL_DATADIR=/service/mysql-5.6.46/data \

-DMYSQL_UNIX_ADDR=/service/mysql-5.6.46/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITH_ZLIB=bundled \

-DWITH_SSL=system \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EMBEDDED_SERVER=1 \

-DENABLE_DOWNLOADS=1 \

-DWITH_DEBUG=0

#程序存放位置

cmake . -DCMAKE_INSTALL_PREFIX=/service/mysql-5.6.46 \

#數(shù)據(jù)存放位置

-DMYSQL_DATADIR=/service/mysql-5.6.46/data \

#socket文件存放位置

-DMYSQL_UNIX_ADDR=/service/mysql-5.6.46/tmp/mysql.sock \

#使用utf8字符集

-DDEFAULT_CHARSET=utf8 \

#校驗規(guī)則

-DDEFAULT_COLLATION=utf8_general_ci \

#使用其他額外的字符集

-DWITH_EXTRA_CHARSETS=all \

#支持的存儲引擎

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

#禁用的存儲引擎

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

#啟用zlib庫支持(zib期揪、gzib相關(guān))

-DWITH_ZLIB=bundled \

#啟用SSL庫支持(安全套接層)

-DWITH_SSL=bundled \

#啟用本地數(shù)據(jù)導(dǎo)入支持

-DENABLED_LOCAL_INFILE=1 \

#編譯嵌入式服務(wù)器支持

-DWITH_EMBEDDED_SERVER=1 \

# mysql5.6支持了google的c++mock框架了缤苫,允許下載谍婉,否則會安裝報錯唤蔗。

-DENABLE_DOWNLOADS=1 \

#禁用debug(默認(rèn)為禁用)

-DWITH_DEBUG=0

#編譯

```

#### 5)編譯 make

```bash

[root@db01 mysql-5.6.46]# make

```

#### 6)安裝 make install

```bash

[root@db01 mysql-5.6.46]# make install

```

#### 7)做軟連接

```bash

[root@db01 ~]# ln -s /service/mysql-5.6.46 /service/mysql

```

#### 8)創(chuàng)建數(shù)據(jù)庫用戶

```bash

[root@db01 ~]# useradd mysql -s /sbin/nologin -M

```

#### 9)拷貝配置文件和啟動文件

```bash

#1.進(jìn)入配置文件和腳本的目錄

[root@db01 ~]# cd /service/mysql/support-files/

#2.拷貝配置文件

[root@db01 support-files]# cp my-default.cnf /etc/my.cnf

```

#### 10)配置system管理MySQL服務(wù)

```bash

#1.配置system管理MySQL

[root@db01 ~]# vim /usr/lib/systemd/system/mysql.service

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/service/mysql/bin/mysqld --defaults-file=/etc/my.cnf

LimitNOFILE = 5000

#2.重新加載啟動文件列表

[root@db01 ~]# systemctl daemon-reload

```

#### 11)初始化數(shù)據(jù)庫

```bash

#1.進(jìn)入初始化目錄

[root@db01 support-files]# cd /service/mysql/scripts/

#2.執(zhí)行初始化命令

[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/service/mysql --datadir=/service/mysql/data

```

#### 12)創(chuàng)建socket文件目錄(二進(jìn)制安裝沒有)

```bash

#先創(chuàng)建tmp目錄

[root@db01 ~]# mkdir /service/mysql/tmp

```

#### 13)授權(quán)數(shù)據(jù)庫目錄

```bash

[root@db01 ~]# chown -R mysql.mysql /service/mysql

[root@db01 ~]# chown -R mysql.mysql /service/mysql-5.6.46

```

#### 14)system管理啟動MySQL

```bash

[root@db01 ~]# systemctl start mysql

[root@db01 ~]# ps -ef | grep [m]ysql

mysql?????23509??????1??3 22:36 ?????????00:00:01 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

[root@db01 ~]# netstat -lntp | grep 3306

tcp6???????0??????0 :::3306?????????????????:::*????????????????????LISTEN??????23509/mysqld

```

#### 15)配置環(huán)境變量直接使用mysql

```bash

[root@db01 ~]# vim /etc/profile.d/mysql.sh?

export PATH=/service/mysql/bin:$PATH

[root@db01 ~]# source /etc/profile

```

#### 16)修改root用戶密碼

~~~bash

[root@db01 ~]# mysql -u root -p????????????#默認(rèn)root用戶密碼為空,有多種方式重置root密碼

第一種:

MySQL > SET PASSWORD=PASSWORD('123456');

Query OK, 0 rows affected (0.00 sec)

第二種:

MySQL > grant all privileges on *.* to root@'%' identified by 'oldboy';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

注意:兩種重置密碼方式有區(qū)別努酸。

~~~

### 1.2 二進(jìn)制安裝(自定義安裝目錄)

![](https://blog.sholdboyedu.com/wp-content/uploads/2021/07/2.png)

#### 1)下載二進(jìn)制包

```bash

[root@db01 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz

```

#### 2)安裝依賴

```bash

[root@db01 ~]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf

```

#### 3)解壓安裝包

```bash

[root@db01 ~]# tar xf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz

```

#### 4)創(chuàng)建自定義目錄

```bash

[root@db01 ~]# mkdir /service

```

#### 5)移動目錄并改名

```bash

[root@db01 ~]# mv mysql-5.6.46-linux-glibc2.12-x86_64 /service/mysql-5.6.46

```

#### 6)做軟連接

```bash

[root@db01 ~]# ln -s /service/mysql-5.6.46 /service/mysql

```

#### 7)創(chuàng)建數(shù)據(jù)庫用戶

```bash

[root@db01 ~]# useradd mysql -s /sbin/nologin -M

```

#### 8)拷貝配置文件和啟動文件

```bash

#1.進(jìn)入配置文件和腳本的目錄

[root@db01 ~]# cd /service/mysql/support-files/

#2.拷貝配置文件

[root@db01 support-files]# cp my-default.cnf /etc/my.cnf

cp: overwrite ‘/etc/my.cnf’? y

#3.拷貝啟動腳本

[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld

```

#### 9)初始化數(shù)據(jù)庫

```bash

#1.進(jìn)入初始化目錄

[root@db01 support-files]# cd /service/mysql/scripts/

#2.執(zhí)行初始化命令

[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/service/mysql --datadir=/service/mysql/data

```

#### 10)啟動數(shù)據(jù)庫

```bash

[root@db01 scripts]# /etc/init.d/mysqld start

/etc/init.d/mysqld: line 244: my_print_defaults: command not found

/etc/init.d/mysqld: line 264: cd: /usr/local/mysql: No such file or directory

Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)

```

#### 11)如果是二進(jìn)制安裝到自定義目錄下需要修改腳本目錄

本例中就安裝到了/service目錄下笼踩,所以需要修改腳本中的默認(rèn)路徑

```bash

[root@db01 scripts]# sed -i 's#/usr/local#/service#g' /etc/init.d/mysqld /service/mysql/bin/mysqld_safe

```

#### 12)授權(quán)數(shù)據(jù)庫目錄

```bash

[root@db01 ~]# chown -R mysql.mysql /service/mysql

[root@db01 ~]# chown -R mysql.mysql /service/mysql-5.6.46

```

#### 13)再次啟動

```bash

[root@db01 scripts]# /etc/init.d/mysqld start

Starting MySQL.Logging to '/service/mysql/data/db04.err'.

?SUCCESS!?

[root@db01 scripts]#

```

#### 14)檢查進(jìn)程和端口

```bash

[root@db01 scripts]# ps -ef | grep [m]ysql

root??????23083??????1??0 20:36 pts/0????00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/db02.pid

mysql?????23191??23083??0 20:36 pts/0????00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=db02.err --pid-file=/usr/local/mysql/data/db02.pid

[root@db01 scripts]# netstat -lntp | grep 3306

tcp6???????0??????0 :::3306?????????????????:::*????????????????????LISTEN??????23191/mysqld????????

[root@db01 scripts]#?

```

#### 15)配置system管理MySQL服務(wù)

```bash

#1.配置system管理MySQL

[root@db01 ~]# vim /usr/lib/systemd/system/mysql.service

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/service/mysql/bin/mysqld --defaults-file=/etc/my.cnf

LimitNOFILE = 5000

#2.重新加載啟動文件列表

[root@db01 ~]# systemctl daemon-reload

```

#### 16)查看MySQL配置文件檢索順序

~~~bash

[root@db01 mysql]# /service/mysql/bin/mysql --help|grep 'my.cnf'

??????????????????????order of preference, my.cnf, $MYSQL_TCP_PORT,

/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf?

~~~

#### 17)配置my.cnf

```bash

#1.配置指定數(shù)據(jù)庫安裝目錄與數(shù)據(jù)目錄

[root@db01 scripts]# vim /etc/my.cnf

[mysqld]

basedir=/service/mysql

datadir=/service/mysql/data

#2.啟動

[root@db01 scripts]# systemctl start mysql

```

#### 19)配置環(huán)境變量直接使用mysql

```bash

[root@db01 ~]# vim /etc/profile.d/mysql.sh?

export PATH=/service/mysql/bin:$PATH

[root@db01 ~]# source /etc/profile

```

### 1.3 YUM安裝

#### 1)配置MySQL的yum源

~~~bash

[root@db01 ~]# cat /etc/yum.repos.d/mysql-community.repo

# Enable to use MySQL 5.6

[mysql56-community]

name=MySQL 5.6 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/

enabled=1

gpgcheck=0

~~~

#### 2)檢查存儲庫是否正確配置

~~~bash

[root@db01 ~]#??yum repolist enabled | grep mysql

~~~

#### 3)禁用默認(rèn)的MySQL模塊

~~~bash

[root@db01 ~]# sudo yum module disable mysql

~~~

#### 4)安裝MySQL

~~~bash

[root@db01 ~]# sudo yum install mysql-community-server

~~~

#### 5)啟動MySQL

~~~bash

[root@db01 ~]#??sudo service mysqld start

Starting mysqld (via systemctl):???????????????????????????[??OK??]

~~~

#### 6)檢查MySQL運行狀態(tài)

~~~bash

[root@db01 ~]# sudo service mysqld status

~~~

#### 7)保護(hù)運行MySQL

~~~bash

[root@db01 ~]# mysql_secure_installation

~~~

### 1.4 MySQL5.6與MySQL5.7安裝的區(qū)別

#### 1.4.1 cmake的時候加入了bostorg

***建議大家使用二進(jìn)制的包安裝,已經(jīng)過了cmake階段圃郊,已經(jīng)把bostorg裝好了***

```bash

[root@db02 mysql-5.7.20]# yum install -y gcc gcc-c++ automake autoconf

[root@db02 mysql-5.7.20]# yum install make cmake bison-devel ncurses-devel libaio-devel

[root@db02 mysql-5.7.20]#

wget httpss://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_59_0.tar.gz

#登錄boost.org下載也可以

[root@db02 mysql-5.7.20]# tar xf boost_1_59_0.tar.gz -C /usr/local/

[root@db02 mysql-5.7.20]#

cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.20 \

-DMYSQL_DATADIR=/application/mysql-5.7.20/data \

-DMYSQL_UNIX_ADDR=/application/mysql-5.7.20/tmp/mysql.sock \

#安裝bostorg

-DDOWNLOAD_BOOST=1 \

#安裝的目錄

-DWITH_BOOST=/usr/local/boost_1_59_0 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITH_ZLIB=bundled \

-DWITH_SSL=bundled \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EMBEDDED_SERVER=1 \

-DENABLE_DOWNLOADS=1 \

-DWITH_DEBUG=0?

```

#### 1.4.2 初始化時 使用的命令不一樣了

```bash

#5.6初始化命令

/service/mysql/scripts/mysql_install_db --user= --basedir= --datadir=

#5.7初始化命令

/usr/local/mysql/bin/mysqld --initialize --user= --basedir= --datadir=

#初始--initialize會生成一個臨時的隨機密碼簇宽,他會告訴你位置,你自己去找使用密碼登錄吧享,而且修改密碼也需要一個很復(fù)雜的密碼钞它,大小寫數(shù)字特殊符號

#想不讓他生成密碼的話,還可以用另外一個參數(shù)--initialize-insecure

```

#### 1.4.3 mysql5.7初始密碼

```

# yum安裝完畢mysql5.7殊鞭,首次初始啟動msyql會生成root的隨機密碼

# 可以通過下述命令查看

grep "temporary password" /var/log/mysqld.log

# 查看到隨機密碼后遭垛,登錄,注意密碼用單引號引起來操灿,因為隨機密碼中可能有特殊字符

mysql -uroot -p '隨機密碼'

# 設(shè)置密碼锯仪,密碼已經(jīng)不能再用弱密碼了,弱密碼會報錯

set password=password("Egon@123");

```

# 二 Windows系統(tǒng)

### 2.1 安裝

```

#1趾盐、下載:MySQL Community Server 5.7.16

http://dev.mysql.com/downloads/mysql/

#2庶喜、解壓

如果想要讓MySQL安裝在指定目錄,那么就將解壓后的文件夾移動到指定目錄谤碳,如:C:\mysql-5.7.16-winx64

#3溃卡、添加環(huán)境變量

【右鍵計算機】--》【屬性】--》【高級系統(tǒng)設(shè)置】--》【高級】--》【環(huán)境變量】--》【在第二個內(nèi)容框中找到 變量名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中蜒简,用 瘸羡; 分割】


#4、初始化

mysqld --initialize-insecure

#5搓茬、啟動MySQL服務(wù)

mysqld # 啟動MySQL服務(wù)

#6犹赖、啟動MySQL客戶端并連接MySQL服務(wù)

mysql -u root -p # 連接MySQL服務(wù)器

```

### 2.2 將MySQL服務(wù)制作成windows系統(tǒng)服務(wù)

```

上一步解決了一些問題,但不夠徹底卷仑,因為在執(zhí)行【mysqd】啟動MySQL服務(wù)器時峻村,當(dāng)前終端會被hang住,那么做一下設(shè)置即可解決此問題:

注意:--install前锡凝,必須用mysql啟動命令的絕對路徑

# 制作MySQL的Windows服務(wù)粘昨,在終端執(zhí)行此命令:

"c:\mysql-5.7.16-winx64\bin\mysqld" --install


# 移除MySQL的Windows服務(wù),在終端執(zhí)行此命令:

"c:\mysql-5.7.16-winx64\bin\mysqld" --remove

注冊成服務(wù)之后窜锯,以后再啟動和關(guān)閉MySQL服務(wù)時张肾,僅需執(zhí)行如下命令:

# 啟動MySQL服務(wù)

net start mysql


# 關(guān)閉MySQL服務(wù)

net stop mysql

```

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市锚扎,隨后出現(xiàn)的幾起案子吞瞪,更是在濱河造成了極大的恐慌,老刑警劉巖驾孔,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芍秆,死亡現(xiàn)場離奇詭異惯疙,居然都是意外死亡,警方通過查閱死者的電腦和手機妖啥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門霉颠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人荆虱,你說我怎么就攤上這事掉分。” “怎么了克伊?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長华坦。 經(jīng)常有香客問我愿吹,道長,這世上最難降的妖魔是什么惜姐? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任犁跪,我火速辦了婚禮,結(jié)果婚禮上歹袁,老公的妹妹穿的比我還像新娘坷衍。我一直安慰自己,他們只是感情好条舔,可當(dāng)我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布枫耳。 她就那樣靜靜地躺著,像睡著了一般孟抗。 火紅的嫁衣襯著肌膚如雪迁杨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天凄硼,我揣著相機與錄音铅协,去河邊找鬼。 笑死摊沉,一個胖子當(dāng)著我的面吹牛狐史,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播说墨,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼骏全,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了婉刀?” 一聲冷哼從身側(cè)響起吟温,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎突颊,沒想到半個月后鲁豪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體潘悼,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年爬橡,在試婚紗的時候發(fā)現(xiàn)自己被綠了治唤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡糙申,死狀恐怖宾添,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情柜裸,我是刑警寧澤缕陕,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站疙挺,受9級特大地震影響扛邑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜铐然,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一蔬崩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搀暑,春花似錦沥阳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至樟氢,卻和暖如春冈绊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背埠啃。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工死宣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碴开。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓毅该,卻偏偏與公主長得像,于是被迫代替她去往敵國和親潦牛。 傳聞我的和親對象是個殘疾皇子眶掌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容