一、yum方式安裝
1.創建專門存放軟件安裝包的目錄
mkdir /server/tools -p
cd /server/tools/
2.使用wget下載官方yum源的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.啓動mysql並加入到開機自啓動
systemctl start mysqld
systemctl enable mysqld
netstat -lntup |grep 3306
6.修改root本地登錄密碼
mysql安裝完成後,會在/var/log/mysqld.log文件中給root生成一個默認的登錄密碼
[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
#進入mysql命令行,修改密碼爲:MyNewPass4!
[root@db01 /]# mysql -uroot -p"al_gF&9eZUjW"
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
注意:mysql5.7默認安裝了密碼安全檢查插件(validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位
7.修改mysql默認的密碼策略
#1.查看系統密碼策略
[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 #禁用密碼策略
#重新啓動mysql服務使配置生效:
systemctl restart mysqld
#再次修改mysql密碼
[root@db01 /]# mysqladmin -uroot -p password 123456
Enter password: #輸入舊密碼MyNewPass4!完成更改
默認配置文件路徑:
/etc/my.cnf #配置文件
/var/log/mysqld.log #日誌文件
/var/run/mysqld/mysqld.pid #socket文件
如果忘記root密碼,則按如下操作恢復
#在[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、二進制方式安裝
這裏用二進制的方式安裝MySQL數據庫5.7版本
此方法安裝會很快
1.yum安裝依賴包(直接yum即可)
yum install ncurses-devel libaio-devel -y
2.創建mysql用戶,登錄方式nologin,不創建家目錄
groupadd mysql -g 1002
useradd mysql -u 1002 -g 1002 -s /sbin/nologin -M
3.上傳mysql軟件,將其解壓軟件,將其移動到/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.創建data和tmp目錄,併爲mysql主目錄創建軟連接和錯誤日誌文件
mkdir /application/mysql-5.7.20/data #用於存放數據庫數據
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/mysql命令初始化mysql數據庫文件(按照實際路徑爲準)
#初始化數據庫命令
/application/mysql-5.7.20/scripts/mysql_install_db --initialize --user=mysql --basedir=/application/mysql-5.7.20 --datadir=/application/mysql-5.7.20/data
#這裏會生成MySQL第一次登錄使用的臨時密碼,需要保存下來
2019-01-13T16:11:48.234884Z 1 [Note] A temporary password is generated for root@localhost: ,rK+/7/AvOF:
參數解釋:
--initialize #初始化mysql
--user=mysql #指定mysql用戶
--basedir #指定mysql基礎目錄
--datadir #指定mysql數據存放目錄
6.授權mysql用戶管理mysql目錄
chown -R mysql.mysql /application/mysql-5.7.20
7.配置my.cnf和啓動腳本
#1.修改啓動腳本內容中的路徑
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.啓動mysql
/etc/init.d/mysqld start
netstat -lntup |grep 3306
8.配置環境變量,使其能直接在命令行使用mysql命令
echo 'export "PATH=/application/mysql/bin:$PATH"' >>/etc/profile
source /etc/profile
9.使用初始化密碼登錄到mysql數據庫
mysql -uroot -p,rK+/7/AvOF:
10.修改初始化密碼
[root@db01 /]# mysqladmin -uroot -p password 123456
Enter password: #輸入舊密碼
3、源碼方式安裝
源碼編譯 安裝MySQL5.7
這裏用編譯的方式安裝MySQL數據庫5.7版本
1.安裝依賴包(直接yum即可)
安裝MySQL之前,最好先安裝MySQL的依賴包,不然後面會出現很多報錯信息。
yum install ncurses-devel libaio-devel -y
2.安裝編譯MySQL需要的軟件cmake(直接yum即可)
yum install cmake -y
使用cmake來編譯MySQL
3.創建MySQL用戶
groupadd mysql -g 1002
useradd mysql -u 1002 -g 1002 -s /sbin/nologin -M
MySQL數據必須使用mysql用戶和用戶組來進行數據的管理
4.MySQL軟件包安裝
下載地址:https://downloads.mysql.com/archives/community/社區版
-->MySQL Community
Server
5.創建軟件下載存放目錄和軟件安裝路徑
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
編譯參數解釋:
-DCMAKE_INSTALL_PREFIX #MySQL安裝的路徑
-DMYSQL_DATADIR #存放MySQL數據的路徑
-DMYSQL_UNIX_ADDR #MyQSL啓動後的sock存放路徑
-DDEFAULT_CHARSET #MySQL數據庫中的字符集
-DWITH_BOOST #mysql源碼中用到了C++的Boost庫
-DENABLE_DOWNLOADS #例如boost路徑填/usr/local/boost,它會在這個目錄找,找不到就會自己下載到該目錄下
MySQL編譯安裝時間會很久
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.配置並啓動MySQL
#1.創建軟連接
[root@db01 /]# ln -s /application/mysql-5.7.20/ /application/mysql
#2.配置/etc/my.cnf(5.7版本默認不自帶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.創建/application/mysql/tmp目錄用於存放mysql sock文件,並設置mysql目錄權限
[root@db01 ~]# mkdir /application/mysql/tmp -p
[root@db01 ~]# chown -R mysql.mysql /application/mysql/
#4.創建錯誤日誌文件
[root@db01 ~]# touch /application/mysql-5.7.20/mysql.log
#5.初始化數據庫(所有的初始化信息都保存在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.複製mysql啓動腳本至/etc/init.d/mysqld,該腳本用於mysql啓動,重啓以及關閉
[root@db01 ~]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
#7.啓動mysql數據庫,mysql默認端口爲3306
[root@db01 ~]# /etc/init.d/mysqld start
[root@db01 ~]# netstat -lntup |grep 3306
#8.增加mysql環境變量,爲了可以直接在命令行執行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: #輸入舊密碼進行更改
[root@db01 /]# mysql -uroot -p123456 #輸入新密碼進入數據庫