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
