Linux下安裝MySQL 5.7

strivechao發表於2020-05-18

本次將在Linux下透過yum安裝MySQL,安裝的版本為MySQL 5.7,官網中是最新版本8.0,在網上查了下,發現最新版本的yum源也包含了舊版本,而我們,只需要在安裝時啟用 5.7 的安裝即可。

本人環境:CentOS 7.3 64位

  • 1.檢查CentOS是否有系統自帶的mysql

yum list installed | grep mysql

如果存在系統自帶的mysql及依賴,則透過  yum remove 將其解除安裝

  • 2.在官網中獲取yum源

官網下載介面

獲取下載連結

這裡獲取到的是最新版本的下載地址: https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

  • 3.CentOS中下載rpm包,並安裝本地mysql源

下載rpm包: wget  https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm --no-check-certificate
安裝mysql源: yum localinstall mysql80-community-release-el7-3.noarch.rpm

透過  yum localinstall 安裝mysql源,可以幫助我們解決本地rpm包的依賴問題。

最後,驗證是否安裝成功: yum repolist all | grep mysql

驗證是否安裝成功

  • 4.修改預設安裝版本為5.7

從上面的圖片,我們可以看到,預設是MySQL 8.0可用,我們若想安裝MySQL 5.7,則需啟用5.7。接下來透過直接修改配置檔案來設定啟用。

vim /etc/yum.repos.d/mysql-community.repo

輸入上面的命令,在編輯介面,先輸入  i 進入編輯模式,將8.0的  enabled 設定為0,將5.7的  enabled 設定為1,如下:

image.png

接著按  Esc 退出編輯模式,最後輸入  :wq 儲存並退出。

再次輸入命令: yum repolist all | grep mysql ,可以看到8.0已被禁用,而5.7是啟用的。

驗證結果

  • 5.安裝MySQL

yum install mysql-community-server

輸入上面命令,進行安裝即可。

點我複製[root@wintest mysql]# yum install mysql-community-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies--> Running transaction check---> Package mysql-community-server.x86_64 0:5.7.27-1.el7 will be installed--> Processing Dependency: mysql-community-common(x86-64) = 5.7.27-1.el7 for package: mysql-community-server-5.7.27-1.el7.x86_64--> Processing Dependency: mysql-community-client(x86-64) >= 5.7.9 for package: mysql-community-server-5.7.27-1.el7.x86_64--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: mysql-community-server-5.7.27-1.el7.x86_64--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: mysql-community-server-5.7.27-1.el7.x86_64--> Processing Dependency: libaio.so.1()(64bit) for package: mysql-community-server-5.7.27-1.el7.x86_64--> Running transaction check---> Package libaio.x86_64 0:0.3.109-13.el7 will be installed---> Package mysql-community-client.x86_64 0:5.7.27-1.el7 will be installed--> Processing Dependency: mysql-community-libs(x86-64) >= 5.7.9 for package: mysql-community-client-5.7.27-1.el7.x86_64---> Package mysql-community-common.x86_64 0:5.7.27-1.el7 will be installed--> Running transaction check---> Package mariadb-libs.x86_64 1:5.5.52-1.el7 will be obsoleted--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64---> Package mysql-community-libs.x86_64 0:5.7.27-1.el7 will be obsoleting--> Running transaction check---> Package mysql-community-libs-compat.x86_64 0:5.7.27-1.el7 will be obsoleting---> Package postfix.x86_64 2:2.10.1-6.el7 will be updated---> Package postfix.x86_64 2:2.10.1-7.el7 will be an update--> Finished Dependency ResolutionDependencies Resolved
==================================================================================== Package                       Arch     Version           Repository           Size
====================================================================================
Installing:
 mysql-community-libs          x86_64   5.7.27-1.el7      mysql57-community   2.2 M
     replacing  mariadb-libs.x86_64 1:5.5.52-1.el7
 mysql-community-libs-compat   x86_64   5.7.27-1.el7      mysql57-community   2.0 M
     replacing  mariadb-libs.x86_64 1:5.5.52-1.el7
 mysql-community-server        x86_64   5.7.27-1.el7      mysql57-community   165 M
Installing for dependencies:
 libaio                        x86_64   0.3.109-13.el7    base                 24 k
 mysql-community-client        x86_64   5.7.27-1.el7      mysql57-community    24 M
 mysql-community-common        x86_64   5.7.27-1.el7      mysql57-community   275 k
Updating for dependencies:
 postfix                       x86_64   2:2.10.1-7.el7    base                2.4 M
Transaction Summary
====================================================================================
Install  3 Packages (+3 Dependent packages)
Upgrade             ( 1 Dependent package)
Total download size: 197 MIs this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/7): libaio-0.3.109-13.el7.x86_64.rpm                      |  24 kB  00:00:00     warning: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-common-5.7.27-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Public key for mysql-community-common-5.7.27-1.el7.x86_64.rpm is not installed
(2/7): mysql-community-common-5.7.27-1.el7.x86_64.rpm        | 275 kB  00:00:01     (3/7): mysql-community-libs-5.7.27-1.el7.x86_64.rpm          | 2.2 MB  00:00:01     (4/7): mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm   | 2.0 MB  00:00:01     (5/7): postfix-2.10.1-7.el7.x86_64.rpm                       | 2.4 MB  00:00:00     (6/7): mysql-community-client-5.7.27-1.el7.x86_64.rpm        |  24 MB  00:00:34     (7/7): mysql-community-server-5.7.27-1.el7.x86_64.rpm        | 165 MB  00:00:52     ------------------------------------------------------------------------------------Total                                                  3.5 MB/s | 197 MB  00:56     Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Importing GPG key 0x5072E1F5:
 Userid     : "MySQL Release Engineering <mysql-build@oss.oracle.com>"
 Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5 Package    : mysql80-community-release-el7-3.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysqlIs this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mysql-community-common-5.7.27-1.el7.x86_64                       1/9 
  Installing : mysql-community-libs-5.7.27-1.el7.x86_64                         2/9 
  Installing : mysql-community-libs-compat-5.7.27-1.el7.x86_64                  3/9 
  Installing : mysql-community-client-5.7.27-1.el7.x86_64                       4/9 
  Installing : libaio-0.3.109-13.el7.x86_64                                     5/9 
  Installing : mysql-community-server-5.7.27-1.el7.x86_64                       6/9 
  Updating   : 2:postfix-2.10.1-7.el7.x86_64                                    7/9 
  Cleanup    : 2:postfix-2.10.1-6.el7.x86_64                                    8/9 
  Erasing    : 1:mariadb-libs-5.5.52-1.el7.x86_64                               9/9 
  Verifying  : mysql-community-libs-compat-5.7.27-1.el7.x86_64                  1/9 
  Verifying  : mysql-community-common-5.7.27-1.el7.x86_64                       2/9 
  Verifying  : mysql-community-libs-5.7.27-1.el7.x86_64                         3/9 
  Verifying  : 2:postfix-2.10.1-7.el7.x86_64                                    4/9 
  Verifying  : mysql-community-server-5.7.27-1.el7.x86_64                       5/9 
  Verifying  : mysql-community-client-5.7.27-1.el7.x86_64                       6/9 
  Verifying  : libaio-0.3.109-13.el7.x86_64                                     7/9 
  Verifying  : 1:mariadb-libs-5.5.52-1.el7.x86_64                               8/9 
  Verifying  : 2:postfix-2.10.1-6.el7.x86_64                                    9/9 Installed:
  mysql-community-libs.x86_64 0:5.7.27-1.el7                                        
  mysql-community-libs-compat.x86_64 0:5.7.27-1.el7                                 
  mysql-community-server.x86_64 0:5.7.27-1.el7                                      
Dependency Installed:
  libaio.x86_64 0:0.3.109-13.el7                                                    
  mysql-community-client.x86_64 0:5.7.27-1.el7                                      
  mysql-community-common.x86_64 0:5.7.27-1.el7                                      
Dependency Updated:
  postfix.x86_64 2:2.10.1-7.el7                                                     
Replaced:
  mariadb-libs.x86_64 1:5.5.52-1.el7                                                
Complete!
  • 6.啟用MySQL

在CentOS 6中,我們一般透過  service mysqld start 來啟動mysql,在CentOS 7中,如果直接輸入  service mysqld start ,則會出現以下資訊:

啟用mysql

這是因為 CentOS 7 下重啟服務不再透過  service 操作,而是透過  systemctl 操作,因此我們可以輸入命令:

啟動mysql: systemctl start mysqld.service
檢視mysql狀態: systemctl status mysqld.service

檢視mysql服務狀態

  • 7.登入mysql

mysql -u root -p

登入mysql

在要求輸入密碼時,因為mysql 5.7的初始密碼不是空,直接按Enter鍵不能成功登入,因此需先找到初始密碼,才能登入。

grep 'temporary password' /var/log/mysqld.log

獲取初始密碼

如上,最後的內容就是初始密碼。

再次登入,輸入初始密碼,即可成功登入。

再次登入

第一次登入成功後,發現不能執行操作,同時提示讓修改密碼。

  • 8.修改登入密碼

alter user root@localhost identified by '新密碼'

修改密碼失敗

這裡,我想設定新密碼為 123456,但出現了報錯,這裡的報錯是mysql的密碼策略問題,輸入命令: show variables like 'validate_password%',檢視 mysql 初始的密碼策略,發現密碼的最小長度為8,密碼的驗證強度等級為MEDIUM,可以修改一下密碼策略:

設定密碼的驗證強度等級: set global validate_password_policy=LOW
設定密碼的最小長度: set global validate_password_length=6

修改密碼策略

好了,這時我們再次執行修改密碼的sql,便不會報錯了。

最後透過  flush privileges 重新整理許可權,使當前操作立即生效,就大功告成了。

修改密碼成功

注意:最後這裡,也可以不修改密碼策略,只要自己設定的密碼滿足MySQL的原密碼策略即可。



mysql 新增遠端訪問

第一種:mysql 5.0(兩種方式)

一、

在命令視窗輸入,mysql -u root -p  回車,並輸入密碼

執行 use mysql 

執行下面句子,檢視許可權,root預設許可權為localhost

select user,host from user;

更改root許可權為%

update user set host = '%' where user = 'root';

重新整理

flush privileges;

二、

在命令視窗輸入,mysql -u root -p  回車,並輸入密碼

執行 use mysql 

設定test為賬戶,密碼為:ceshipwd,許可權為%,所有人

grant all on *.*  to 'test'@'%' identified by 'ceshipwd';

如果許可權不設定為所有人,可設定固定訪問IP如下:

grant all on *.*  to 'test'@'111.111.111.111' identified by 'ceshipwd';

最後,重新整理

flush privileges;

 

第一種:mysql 8.0以上(兩種方式)

一、

在命令視窗輸入,mysql -u root -p  回車,並輸入密碼

執行 use mysql 

執行下面句子,檢視許可權,root預設許可權為localhost

select user,host from user;

更改root許可權為%

update user set host = '%' where user = 'root';

重新整理

flush privileges;

二、

在命令視窗輸入,mysql -u root -p  回車,並輸入密碼

執行 use mysql 

設定test為賬戶,密碼為:ceshipwd,許可權為%,所有人

先建立賬號:

create user 'test'@'%' identified with mysql_native_password by 'ceshipwd';

再新增賬號許可權

grant all on *.*  to 'test'@'%';

如果許可權不設定為所有人,可設定固定訪問IP如下:

grant all on *.*  to 'test'@'111.111.111.111';

最後,重新整理

flush privileges;

三、

各版本修改密碼的格式:

mysql5.0格式如下:

本地可以訪問

alter user 'ceshi'@'localhost' identified   by 'ceshipw';

所有都可以訪問

alter user 'ceshi'@'%' identified   by 'ceshipw';

mysql8.0以上格式如下:

本地可以訪問

alter user 'ceshi'@'localhost' identified with mysql_native_password  by 'ceshipw';

所有都可以訪問

alter user 'ceshi'@'%' identified  with mysql_native_password by 'ceshipw';

 

*使用navicat連線mysql8.0資料庫時,提示1251-client does not support authentication protocol requested by server;consider upgrading mysql client 解決辦法:

進入資料庫,更新一下認證格式
user mysql;

#下面方式是修改密碼的格式,即可正常訪問 alter user 'ceshi'@'%' identified  with mysql_native_password by 'ceshipw'; flush privileges;


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25469263/viewspace-2692715/,如需轉載,請註明出處,否則將追究法律責任。

相關文章