1. 程式人生 > >在CentOS中安裝mysql5.7

在CentOS中安裝mysql5.7

安裝環境:Centos 7.4,mysql 5.7

1.解除安裝原有的mysql資料庫
解除安裝已安裝的mysql,請參考另一篇博文《CentOS中解除安裝MySQL》

這裡寫圖片描述

通過如下wget命令下載rpm安裝包

[root@mair-001 ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

3.根據上面下載的rpm包,本地安裝yum源

[root@mair-001 ~]# yum localinstall mysql57-community-release-el7-8.noarch.rpm

4.檢查mysql源是否安裝成功

[root@mair-001 ~]# yum repolist enabled | grep "mysql.*-community.*";
mysql-connectors-community/x86_64 MySQL Connectors Community                  51
mysql-tools-community/x86_64      MySQL Tools Community                       63
mysql57-community/x86_64          MySQL 5.7 Community
Server 267

如上結果,表明mysql源已經安裝成功

5.修改mysql源預設安裝版本
可以修改vim /etc/yum.repos.d/mysql-community.repo源,改變預設安裝的mysql版本。比如要安裝5.7版本,將5.7源的enabled設定為1。然後再將5.6源的enabled設定為0即可,因本次下載的是5.7版本,因為這裡不需要修改,預設就是安裝5.7版本

# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http:
//repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

6.安裝mysql

[root@mair-001 ~]# yum install mysql-community-server

7.啟動mysql並加入開機啟動

[root@mair-001 ~]# systemctl start mysqld  
[root@mair-001 ~]# systemctl enable mysqld   
[root@mair-001 ~]# systemctl daemon-reload  

mysql安裝完成之後,在/var/log/mysqld.log檔案中為root使用者生成了一個隨機的預設密碼。可以通過以下方式檢視,之後可登陸MySQL進行修改

[root@mair-001 ~]# cat /var/log/mysqld.log | grep 'temporary password'
2018-05-07T15:10:19.468143Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: J(BaCuTq8hx3

使用如上臨時密碼登入mysql,並檢視所有資料庫

[[email protected]001 ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.11

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases
    -> ;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

show databases時會報如下錯誤資訊,提示需要修改臨時密碼:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement

因此修改root密碼,如下

mysql> alter user 'root'@'localhost'identified by '[email protected]!';
Query OK, 0 rows affected (0.02 sec)

再執行show databases時就成功了

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

8.建立資料庫,並指定編碼格式為utf8
使用create database建立資料庫,並使用該資料庫

mysql> create database mairuan default charset utf8;
Query OK, 1 row affected, 1 warning (0.09 sec)
mysql> use mairuan;
Database changed

9.建立使用者,併為該使用者分配資料許可權
建立使用者

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

說明:
username:你將建立的使用者名稱
host:指定該使用者在哪個主機上可以登陸,如果是本地使用者可用localhost,如果想讓該使用者可以從任意遠端主機登陸,可以使用萬用字元%
password:該使用者的登陸密碼,密碼可以為空,如果為空則該使用者可以不需要密碼登陸伺服器

授權

GRANT privileges ON databasename.tablename TO 'username'@'host'

說明:
privileges:使用者的操作許可權,如SELECT,INSERT,UPDATE等,如果要授予所的許可權則使用ALL
databasename:資料庫名
tablename:表名,如果要授予該使用者對所有資料庫和表的相應操作許可權則可用表示,如.*

例子:

GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';

注意:
用以上命令授權的使用者不能給其它使用者授權,如果想讓該使用者可以授權,用以下命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

10.客戶端登入驗證
到目前為止,mysql已經安裝完成,資料庫,使用者都已經建立好,現使用mysql客戶端heidiSQL連線資料庫,發現報如下錯誤資訊(如果是安裝的MySQL8,客戶端連線時會出現如下錯誤資訊,這裡安裝的5.7不會出現此問題):
Authentication plugin ‘caching_sha2_password’ cannot be loaded
這裡寫圖片描述
經查閱資料發現,mysql8.0改變了 身份驗證外掛,原來驗證外掛為:mysql_native_password,因此要麼修改資料驗證規則為mysql_native_password,要麼修改使用者登入驗證規則,這裡我們修改使用者登入驗證規則

ALTER USER 'mairuan'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;     #修改加密規則  
ALTER USER 'mairuan'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';  #更新密碼(mysql_native_password模式)  
update user set host='%' where user = 'mairuan';  #設定賬號在任意ip可以使用(支援遠端連線)  
FLUSH PRIVILEGES;   #重新整理許可權   

重新通過客戶端連線mysql資料庫,已經可以成功連線上
這裡寫圖片描述