溫馨提示×

溫馨提示×

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

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

三種方式安裝MySQL5.7(yum / 二進(jìn)制 / 源碼)

發(fā)布時(shí)間:2020-08-11 04:47:20 來源:網(wǎng)絡(luò) 閱讀:9862 作者:JasonMingHao 欄目:系統(tǒng)運(yùn)維

一、yum方式安裝

1.創(chuàng)建專門存放軟件安裝包的目錄

mkdir /server/tools -p
cd /server/tools/

2.使用wget下載官方y(tǒng)um源的rpm包

wget http://repo.mysql.com//mysql57-community-release-el7-8.noarch.rpm

3.安裝rpm包

yum -y install mysql57-community-release-el7-8.noarch.rpm

4.使用yum來安裝mysql-server

yum -y install mysql-community-server.x86_64

5.啟動(dòng)mysql并加入到開機(jī)自啟動(dòng)

systemctl start mysqld
systemctl enable mysqld
netstat -lntup |grep 3306

6.修改root本地登錄密碼
mysql安裝完成后,會(huì)在/var/log/mysqld.log文件中給root生成一個(gè)默認(rèn)的登錄密碼

[root@db01 /]# grep "temporary password" /var/log/mysqld.log
2019-01-14T02:04:55.465890Z 1 [Note] A temporary password is generated for root@localhost: al_gF&9eZUjW

#進(jìn)入mysql命令行,修改密碼為:MyNewPass4!
[root@db01 /]# mysql -uroot -p"al_gF&9eZUjW"
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');

注意:mysql5.7默認(rèn)安裝了密碼安全檢查插件(validate_password),默認(rèn)密碼檢查策略要求密碼必須包含:大小寫字母、數(shù)字和特殊符號,并且長度不能少于8位

7.修改mysql默認(rèn)的密碼策略

#1.查看系統(tǒng)密碼策略
[root@db01 /]# mysql -uroot -pMyNewPass4! -e "show variables like '%password%';" |grep "length"
validate_password_length    8

#2.在/etc/my.cnf配置文件中添加validate_password_policy配置,指定密碼策略
[mysqld]
#validate_password_policy=0 
#指定密碼策略 0(LOW),1(MEDIUM),2(STRONG)其中一種,選擇2需要提供密碼字典文件
validate_password = off  #禁用密碼策略

#重新啟動(dòng)mysql服務(wù)使配置生效:
systemctl restart mysqld

#再次修改mysql密碼
[root@db01 /]# mysqladmin -uroot -p password 123456
Enter password:      #輸入舊密碼MyNewPass4!完成更改

默認(rèn)配置文件路徑:

/etc/my.cnf #配置文件
/var/log/mysqld.log #日志文件
/var/run/mysqld/mysqld.pid #socket文件

如果忘記root密碼,則按如下操作恢復(fù)

#在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi。
mysql  -u root
update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
flush privileges

2、二進(jìn)制方式安裝
這里用二進(jìn)制的方式安裝MySQL數(shù)據(jù)庫5.7版本

此方法安裝會(huì)很快

1.yum安裝依賴包(直接yum即可)

yum install ncurses-devel libaio-devel -y

2.創(chuàng)建mysql用戶,登錄方式nologin,不創(chuàng)建家目錄

groupadd mysql -g 1002
useradd mysql -u 1002 -g 1002 -s /sbin/nologin -M

3.上傳mysql軟件,將其解壓軟件,將其移動(dòng)到/application目錄下,并且修改目錄名

mkdir /application 
mkdir /server/tools -p
cd /server/tools/
tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.20-linux-glibc2.12-x86_64 /application/mysql-5.7.20

4.創(chuàng)建data和tmp目錄,并為mysql主目錄創(chuàng)建軟連接和錯(cuò)誤日志文件

mkdir /application/mysql-5.7.20/data  #用于存放數(shù)據(jù)庫數(shù)據(jù)
mkdir /application/mysql-5.7.20/tmp    #用于存放socket文件
ln -s /application/mysql-5.7.20/ /application/mysql
touch  /application/mysql-5.7.20/mysql.log

5.使用bin/mysqld命令初始化mysql數(shù)據(jù)庫文件(按照實(shí)際路徑為準(zhǔn))

#初始化數(shù)據(jù)庫命令
/application/mysql-5.7.20/bin/mysqld --initialize --initialize  --user=mysql --basedir=/application/mysql-5.7.20 --datadir=/application/mysql-5.7.20/data

#這里會(huì)生成MySQL第一次登錄使用的臨時(shí)密碼,需要保存下來
2019-01-13T16:11:48.234884Z 1 [Note] A temporary password is generated for root@localhost: ,rK+/7/AvOF:

參數(shù)解釋:
--initialize #初始化mysql
--user=mysql #指定mysql用戶
--basedir  #指定mysql基礎(chǔ)目錄
--datadir #指定mysql數(shù)據(jù)存放目錄

6.授權(quán)mysql用戶管理mysql目錄

chown -R mysql.mysql /application/mysql-5.7.20

7.配置my.cnf和啟動(dòng)腳本

#1.修改啟動(dòng)腳本內(nèi)容中的路徑
cd /application/mysql/support-files/
sed -i 's#/usr/local#/application/mysql#g' mysql.server
cp mysql.server /etc/init.d/mysqld

#2.配置my.cnf
[root@db01 /]# vim /etc/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/application/mysql/data
socket=/application/mysql/tmp/mysql.sock
character-set-server=utf8
port=3306
server_id=10
log-error=/application/mysql/mysql.log
log-bin=/application/mysql/data/mysql-bin
binlog_format=row
skip_name_resolve

[mysql]
socket=/application/mysql/tmp/mysql.sock

[mysqladmin]
socket=/application/mysql/tmp/mysql.sock

#3.啟動(dòng)mysql
/etc/init.d/mysqld start
netstat -lntup |grep 3306

8.配置環(huán)境變量,使其能直接在命令行使用mysql命令

echo 'export "PATH=/application/mysql/bin:$PATH"' >>/etc/profile
source  /etc/profile

9.使用初始化密碼登錄到mysql數(shù)據(jù)庫

mysql -uroot -p,rK+/7/AvOF:

10.修改初始化密碼

[root@db01 /]# mysqladmin -uroot -p password 123456
Enter password:  #輸入舊密碼

3、源碼方式安裝
源碼編譯 安裝MySQL5.7
這里用編譯的方式安裝MySQL數(shù)據(jù)庫5.7版本

1.安裝依賴包(直接yum即可)
安裝MySQL之前,最好先安裝MySQL的依賴包,不然后面會(huì)出現(xiàn)很多報(bào)錯(cuò)信息。

yum install ncurses-devel libaio-devel -y

2.安裝編譯MySQL需要的軟件cmake(直接yum即可)

yum install cmake -y

使用cmake來編譯MySQL

3.創(chuàng)建MySQL用戶

groupadd mysql -g 1002
useradd mysql -u 1002 -g 1002 -s /sbin/nologin -M

MySQL數(shù)據(jù)必須使用mysql用戶和用戶組來進(jìn)行數(shù)據(jù)的管理

4.MySQL軟件包安裝

下載地址:https://downloads.mysql.com/archives/community/
社區(qū)版-->MySQL Community Server

三種方式安裝MySQL5.7(yum / 二進(jìn)制 / 源碼)

5.創(chuàng)建軟件下載存放目錄和軟件安裝路徑

mkdir /server/tools -p
mkdir /application -p

6.將下載好的mysql源碼包并上傳到/server/tools

cd /server/tools/
ls mysql-5.7.20.tar.gz

7.解壓MySQL并編譯安裝

[root@db01 tools]# tar xf mysql-5.7.20.tar.gz
[root@db01 tools]# cd mysql-5.7.20/
[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 \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DMYSQL_TCP_PORT=3306 \
 -DMYSQL_USER=mysql  \
 -DWITH_MYISAM_STORAGE_ENGINE=1  \
 -DWITH_INNOBASE_STORAGE_ENGINE=1  \
 -DWITH_ARCHIVE_STORAGE_ENGINE=1  \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 -DWITH_MEMORY_STORAGE_ENGINE=1  \
 -DENABLE_DOWNLOADS=1   \
 -DDOWNLOAD_BOOST=1  \
 -DWITH_BOOST=/usr/local/boost 

[root@db01 mysql-5.6.36]# make && make install

編譯參數(shù)解釋:
-DCMAKE_INSTALL_PREFIX   #MySQL安裝的路徑
-DMYSQL_DATADIR #存放MySQL數(shù)據(jù)的路徑
-DMYSQL_UNIX_ADDR   #MyQSL啟動(dòng)后的sock存放路徑
-DDEFAULT_CHARSET #MySQL數(shù)據(jù)庫中的字符集
-DWITH_BOOST  #mysql源碼中用到了C++的Boost庫 
-DENABLE_DOWNLOADS #例如boost路徑填/usr/local/boost,它會(huì)在這個(gè)目錄找,找不到就會(huì)自己下載到該目錄下

MySQL編譯安裝時(shí)間會(huì)很久

8.MySQL目錄介紹

[root@db01 mysql-5.7.20]# tree -L 1 /application/mysql-5.7.20/
/application/mysql-5.7.20/
├── bin   #存放mysql命令
├── COPYING
├── COPYING-test
├── docs    #自帶幫助文件
├── include
├── lib     #lib庫
├── man
├── mysql-test
├── README
├── README-test
├── share
└── support-files

9.配置并啟動(dòng)MySQL

#1.創(chuàng)建軟連接
[root@db01 /]# ln -s /application/mysql-5.7.20/ /application/mysql

#2.配置/etc/my.cnf(5.7版本默認(rèn)不自帶my.cnf模板文件)
[root@db01 /]#vim /etc/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/application/mysql/data
socket=/application/mysql/tmp/mysql.sock
character-set-server=utf8
port=3306
server_id=10
log-error=/application/mysql/mysql.log
log-bin=/application/mysql/data/mysql-bin
binlog_format=row
skip_name_resolve

[client]
socket=/application/mysql/tmp/mysql.sock

#3.創(chuàng)建/application/mysql/tmp目錄用于存放mysql sock文件,并設(shè)置mysql目錄權(quán)限
[root@db01 ~]# mkdir /application/mysql/tmp -p
[root@db01 ~]# chown -R mysql.mysql /application/mysql/

#4.創(chuàng)建錯(cuò)誤日志文件
[root@db01 ~]# touch  /application/mysql-5.7.20/mysql.log

#5.初始化數(shù)據(jù)庫(所有的初始化信息都保存在mysql日志文件中,包括初始化的root密碼)
[root@db01 ~]# mkdir /application/mysql-5.7.20/data
[root@db01 ~]# /application/mysql-5.7.20/bin/mysqld --initialize --user=mysql --basedir=/application/mysql-5.7.20 --datadir=/application/mysql-5.7.20/data

#6.復(fù)制mysql啟動(dòng)腳本至/etc/init.d/mysqld,該腳本用于mysql啟動(dòng),重啟以及關(guān)閉
[root@db01 ~]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld

#7.啟動(dòng)mysql數(shù)據(jù)庫,mysql默認(rèn)端口為3306
[root@db01 ~]# /etc/init.d/mysqld start
[root@db01 ~]# netstat -lntup |grep 3306

#8.增加mysql環(huán)境變量,為了可以直接在命令行執(zhí)行mysql命令
[root@db01 ~]# echo 'export "PATH=/application/mysql/bin:$PATH"' >>/etc/profile
[root@db01 ~]# tail -1 /etc/profile
[root@db01 ~]# source /etc/profile
[root@db01 ~]# echo $PATH

10、獲取root初始化密碼,并修改密碼為:123456

[root@db01 /]# grep "temporary password" /application/mysql/mysql.log
2019-01-14T03:22:24.841670Z 1 [Note] A temporary password is generated for root@localhost: H#hbzsuPl1/-

[root@db01 /]# mysqladmin -uroot -p password "123456"
Enter password:  #輸入舊密碼進(jìn)行更改

[root@db01 /]# mysql -uroot -p123456 #輸入新密碼進(jìn)入數(shù)據(jù)庫
向AI問一下細(xì)節(jié)

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

AI