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