1. 程式人生 > 其它 >mysql5.7 rpm安裝mysql詳解

mysql5.7 rpm安裝mysql詳解

mysql5.7 rpm安裝mysql詳解

一 檢視linux作業系統版本和系統核心版本

[root@nfs_client ~]# cat /etc/redhat-release     檢視作業系統版本
CentOS Linux release 7.5.1804 (Core) 
[root@nfs_client ~]# uname -r               檢視系統核心版本
3.10.0-862.el7.x86_64

二 下載對應版本的MySQL安裝檔案

1、下載地址;https://dev.mysql.com/downloads/mysql/

2、選擇對應的Linux版本和x86/x64進行下載

可以選擇 RPM Bundle,下載完記得解壓 tar -xvf xxx.tar

[root@nfs_client ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar

三 解除安裝舊版本的MySql (沒有的話,則跳過此步驟)

​ 1、檢視舊版本MySql

 ```bash

rpm -qa | grep mysql
```

2、逐個刪除掉舊的元件

​ 使用命令rpm -e --nodeps {-file-name}進行移除操作,移除的時候可能會有依賴,要注意一定的順序。

rpm -e --nodeps mysql-community-libs-5.7.35-1.el7.x86_64.rpm

四 使用 rpm 命令安裝MySql元件

​ 使用命令rpm -ivh {-file-name}進行安裝操作。

按照依賴關係依次安裝rpm包 依賴關係依次為common→libs→client→server

rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm

注:ivh中, i-install安裝;v-verbose進度條;h-hash雜湊校驗

在安裝 mysql-community-libs-5.7.22-1.el7.x86_64.rpm 時有可能會報錯:mysql依賴錯誤

[root@nfs_client tools]# rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-libs-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
        mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-5.7.22-1.el7.x86_64
        mariadb-libs is obsoleted by mysql-community-libs-5.7.22-1.el7.x86_64

解決:清除yum裡所有mysql依賴包

[root@nfs_client tools]# rpm -qa|grep mysql
[root@nfs_client tools]# yum remove mysql-libs

注意:
有的系統可能不太一樣,沒有mysql-libs,而是mariadb-libs,此時要移除的則是mariadb-libs

[root@nfs_client tools]# rpm -qa|grep mariadb
[root@nfs_client tools]# yum remove mariadb-libs

清除完yum裡所有mysql的依賴包後,再次安裝mysql元件就不會報錯了:
注意細節:
1> 執行 yum remove mysql-libs 命令後,會自動刪除掉 /etc/ 下的 my.cnf 檔案
2> 對於安裝mysql元件,只有安裝了 mysql-community-server-5.7.22-1.el7.x86_64.rpm 元件,才會:
a). 在 /etc/下生成 my.cnf 檔案 和 my.cnf.d 資料夾

b). 在/var/lib/下生產以下三個資料夾

c). 在/var/log/ 下生成 mysqld.log 檔案

d). 在/var/run/ 下生成 mysqld 目錄

五 登入並建立MySql密碼

​ 1 啟動MySql
​ 安裝完後,使用命令 service mysqld start 或 systemctl start mysqld.service 啟動MySQL服務。(如果mysql服務無法啟動,就重啟一下系統)

systemctl start mysqld.service   # 啟動mysql
systemctl status mysqld.service  #檢視mysql狀態
systemctl stop mysqld.service   #關閉mysql

檢視mysql程序 ps -ef|grep mysql
檢視3306埠 netstat -anop|grep 3306

eg:

[root@nfs_client tools]# ps -ef|grep mysql
mysql      4102      1  0 14:29 ?        00:00:01 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root       4806   1464  0 14:43 pts/0    00:00:00 grep --color=auto mysql
[root@nfs_client tools]# ps -ef|grep mysqld
mysql      4102      1  0 14:29 ?        00:00:01 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root       4829   1464  0 14:43 pts/0    00:00:00 grep --color=auto mysqld
[root@nfs_client tools]# firewall-cmd --state
not running
[root@nfs_client tools]# netstat -anop|grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      4102/mysqld          off (0.00/0/0)
[root@nfs_client tools]#

2 登陸mysql修改root密碼
由於MySQL5.7.4之前的版本中預設是沒有密碼的,登入後直接回車就可以進入資料庫,進而進行設定密碼等操作。其後版本對密碼等安全相關操作進行了一些改變,在安裝過程中,會在安裝日誌中生成一個臨時密碼。

  怎麼找到這個臨時密碼呢?

  使用:

grep 'temporary password' /var/log/mysqld.log
即可查詢到類似於如下的一條日誌記錄:

[root@nfs_client tools]# grep 'temporary password' /var/log/mysqld.log    # 在/var/log/mysqld.log檔案中搜索欄位‘temporary password’
2018-07-18T06:02:23.579753Z 1 [Note] A temporary password is generated for root@localhost: n(jPp4l-C33#

n(jPp4l-C33#即為登入密碼。使用這個隨機密碼登入進去,然後修改密碼,使用命令:

[root@nfs_client tools]# mysql -uroot -p
執行下面的命令修改MySql root密碼

在5.6後,mysql內建密碼增強機制,低強度密碼會報錯:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

mysql> alter user root@localhost identified by 'sdbrk';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
             或
mysql> set password for root@localhost=password('sdbrk');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

解決方案如下:

可參見:ERROR 1819 (HY000):Your password does not satisfy the current policy requirments

step1: 更改策略,設定 validate_password_policy=0;

mysql> set global validate_password_policy=0;    # 此時,新密碼長度大於等於8位才有效,否則報錯
修改有效密碼長度:
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

不管設定 validate_password_length=1,還是2,3,4 ,‘有效密碼長度’這個引數的實際值都是4。超過4後設置是多少實際就是多少。

step2:重設密碼:

mysql> set password for root@localhost=password('9527');
Query OK, 0 rows affected, 1 warning (0.00 sec)

部落格內容來源:https://blog.csdn.net/wudinaniya/article/details/81094578