小白centos7安裝mysql8步驟說明

先看一下我的安裝環境
在這裏插入圖片描述
MySQL版本
鏈接 https://dev.mysql.com/downloads/repo/yum/
點擊跳轉下方圖片地址鏈接
在這裏插入圖片描述
這個rpm可以使用wget下載

wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm 

也可以點擊DownLoad下載後在導入centos7中

下載完成後使用yum命令本地安裝yum源

yum localinstall mysql80-community-release-el7-1.noarch.rpm

執行完畢後使用下面的命令檢查是否安裝成功

yum repolist enabled | grep "mysql.*-community.*"

看到類似下圖說明安裝成功

[root@localhost 桌面]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64        MySQL Connectors Community         0
mysql-tools-community/x86_64             MySQL Tools Community              0
mysql80-community/x86_64                 MySQL 8.0 Community Server         0

使用下面命令進行安裝

yum install -y mysql-community-server

安裝過程

[root@localhost 桌面]# yum install -y mysql-community-server
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.cqu.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.cqu.edu.cn
base                                                     | 3.6 kB     00:00     
extras                                                   | 3.4 kB     00:00     
mysql-connectors-community                               | 2.5 kB     00:00     
mysql-tools-community                                    | 2.5 kB     00:00     
mysql80-community                                        | 2.5 kB     00:00     
updates                                                  | 3.4 kB     00:00     
(1/7): extras/7/x86_64/primary_db                          | 205 kB   00:02     
(2/7): base/7/x86_64/group_gz                              | 166 kB   00:02     
(3/7): mysql-connectors-community/x86_64/primary_db        |  29 kB   00:02     
(4/7): mysql-tools-community/x86_64/primary_db             |  48 kB   00:02     
(5/7): mysql80-community/x86_64/primary_db                 |  35 kB   00:00     
(6/7): base/7/x86_64/primary_db                            | 5.9 MB   00:03     
(7/7): updates/7/x86_64/primary_db                         | 6.0 MB   00:01     
正在解決依賴關係
--> 正在檢查事務
---> 軟件包 mysql-community-server.x86_64.0.8.0.13-1.el7 將被 安裝
--> 正在處理依賴關係 mysql-community-common(x86-64) = 8.0.13-1.el7,它被軟件包 mysql-community-server-8.0.13-1.el7.x86_64 需要
--> 正在處理依賴關係 mysql-community-client(x86-64) >= 8.0.0,它被軟件包 mysql-community-server-8.0.13-1.el7.x86_64 需要
--> 正在檢查事務
---> 軟件包 mysql-community-client.x86_64.0.8.0.13-1.el7 將被 安裝
--> 正在處理依賴關係 mysql-community-libs(x86-64) >= 8.0.0,它被軟件包 mysql-community-client-8.0.13-1.el7.x86_64 需要
---> 軟件包 mysql-community-common.x86_64.0.8.0.13-1.el7 將被 安裝
--> 正在檢查事務
---> 軟件包 mariadb-libs.x86_64.1.5.5.56-2.el7 將被 取代
--> 正在處理依賴關係 libmysqlclient.so.18()(64bit),它被軟件包 2:postfix-2.10.1-6.el7.x86_64 需要
--> 正在處理依賴關係 libmysqlclient.so.18(libmysqlclient_18)(64bit),它被軟件包 2:postfix-2.10.1-6.el7.x86_64 需要
---> 軟件包 mysql-community-libs.x86_64.0.8.0.13-1.el7 將被 捨棄
--> 正在檢查事務
---> 軟件包 mysql-community-libs-compat.x86_64.0.8.0.13-1.el7 將被 捨棄
--> 解決依賴關係完成

依賴關係解決

================================================================================
 Package                      架構    版本             源                  大小
================================================================================
正在安裝:
 mysql-community-libs         x86_64  8.0.13-1.el7     mysql80-community  2.3 M
      替換  mariadb-libs.x86_64 1:5.5.56-2.el7
 mysql-community-libs-compat  x86_64  8.0.13-1.el7     mysql80-community  2.1 M
      替換  mariadb-libs.x86_64 1:5.5.56-2.el7
 mysql-community-server       x86_64  8.0.13-1.el7     mysql80-community  381 M
爲依賴而安裝:
 mysql-community-client       x86_64  8.0.13-1.el7     mysql80-community   26 M
 mysql-community-common       x86_64  8.0.13-1.el7     mysql80-community  554 k

事務概要
================================================================================
安裝  3 軟件包 (+2 依賴軟件包)

總下載量:412 M
Downloading packages:
警告:/var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-common-8.0.13-1.el7.x86_64.rpm: 頭V3 DSA/SHA1 Signature, 密鑰 ID 5072e1f5: NOKEY
mysql-community-common-8.0.13-1.el7.x86_64.rpm 的公鑰尚未安裝
(1/5): mysql-community-common-8.0.13-1.el7.x86_64.rpm      | 554 kB   00:00     
(2/5): mysql-community-libs-8.0.13-1.el7.x86_64.rpm        | 2.3 MB   00:00     
(3/5): mysql-community-libs-compat-8.0.13-1.el7.x86_64.rpm | 2.1 MB   00:00     
(4/5): mysql-community-client-8.0.13-1.el7.x86_64.rpm      |  26 MB   00:06     
(5/5): mysql-community-server-8.0.13-1.el7.x86_64.rpm      | 381 MB   00:39     
--------------------------------------------------------------------------------
總計                                                10 MB/s | 412 MB  00:41     
從 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 檢索密鑰
導入 GPG key 0x5072E1F5:
 用戶ID     : "MySQL Release Engineering <[email protected]>"
 指紋       : a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5
 軟件包     : mysql80-community-release-el7-1.noarch (installed)
 來自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安裝    : mysql-community-common-8.0.13-1.el7.x86_64                  1/6 
  正在安裝    : mysql-community-libs-8.0.13-1.el7.x86_64                    2/6 
  正在安裝    : mysql-community-client-8.0.13-1.el7.x86_64                  3/6 
  正在安裝    : mysql-community-server-8.0.13-1.el7.x86_64                  4/6 
  正在安裝    : mysql-community-libs-compat-8.0.13-1.el7.x86_64             5/6 
  正在刪除    : 1:mariadb-libs-5.5.56-2.el7.x86_64                          6/6 
  驗證中      : mysql-community-libs-compat-8.0.13-1.el7.x86_64             1/6 
  驗證中      : mysql-community-libs-8.0.13-1.el7.x86_64                    2/6 
  驗證中      : mysql-community-client-8.0.13-1.el7.x86_64                  3/6 
  驗證中      : mysql-community-server-8.0.13-1.el7.x86_64                  4/6 
  驗證中      : mysql-community-common-8.0.13-1.el7.x86_64                  5/6 
  驗證中      : 1:mariadb-libs-5.5.56-2.el7.x86_64                          6/6 

已安裝:
  mysql-community-libs.x86_64 0:8.0.13-1.el7                                    
  mysql-community-libs-compat.x86_64 0:8.0.13-1.el7                             
  mysql-community-server.x86_64 0:8.0.13-1.el7                                  

作爲依賴被安裝:
  mysql-community-client.x86_64 0:8.0.13-1.el7                                  
  mysql-community-common.x86_64 0:8.0.13-1.el7                                  

替代:
  mariadb-libs.x86_64 1:5.5.56-2.el7                                            

完畢!

使用systemctl start mysqld命令啓動
使用systemctl status mysqld查看服務啓動狀態
服務啓動過程

[root@localhost 桌面]# systemctl start mysqld
[root@localhost 桌面]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 四 2018-11-22 19:38:59 CST; 1min 39s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 55058 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 55140 (mysqld)
   Status: "SERVER_OPERATING"
    Tasks: 37
   CGroup: /system.slice/mysqld.service
           └─55140 /usr/sbin/mysqld

11月 22 19:38:36 localhost.localdomain systemd[1]: Starting MySQL Server...
11月 22 19:38:59 localhost.localdomain systemd[1]: Started MySQL Server.

設置開機啓動

systemctl enable mysqld
systemctl daemon-reload

修改root的默認密碼
在修改密碼之前要先做一件事,就是找到mysql的配置文件(vim /etc/my.cnf)↓
把密碼的加密方式改成之前版本的,8.0版本更換了密碼的加密方式,我們就先用舊的
找到Mysql的配置文件並編輯

vim /etc/my.cnf

找到 default-authentication-plugin=mysql_native_password
打開註釋,保存退出編輯。

查詢密碼命令

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

查詢過程

[root@localhost 桌面]# grep 'temporary password' /var/log/mysqld.log
2018-11-22T11:38:51.559334Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 5(Y2Ly+Cs:Q*

5(Y2Ly+Cs:Q*就是我的初始化登錄密碼

登錄mysql

[root@localhost 桌面]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.13

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> 

登錄後不允許進行任何操作,我們需要先修改密碼,否則一直會報下面這個錯誤

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

密碼修改命令,如果報錯可能是密碼設置的簡單了

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼';

如果不想輸入太複雜的密碼,可以通過下面的方式降低密碼複雜度,這樣密碼就可以隨便設置了

查看密碼設置策略

SHOW VARIABLES LIKE 'validate_password%';

得到下面結果

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 4     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.06 sec)

參數解釋
validate_password.check_user_name
用戶名檢測
validate_password_dictionary_file
插件用於驗證密碼強度的字典文件路徑。
validate_password_length
密碼最小長度
validate_password_mixed_case_count
密碼至少要包含的小寫字母個數和大寫字母個數。
validate_password_number_count
密碼至少要包含的數字個數。
validate_password_policy
密碼強度檢查等級,0/LOW、1/MEDIUM、2/STRONG。有以下取值:
Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
默認是1,即MEDIUM,所以剛開始設置的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符。
validate_password_special_char_count
密碼至少要包含的特殊字符數。

我們用下面兩條命令修改密碼強度限制
設置密碼強度級別,三個數字分別對應低,中,高三個級別.我們設置成"低"也就是0

set global validate_password.policy=0;

這個是設置密碼長度的,不能低於4位,根據需要自己設置長度.

set global validate_password.length=4;

這個是修改密碼的命令,給root用戶本地登錄設置密碼

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '我的密碼';

增加遠程連接用戶

創建用戶(user:用戶名;%:任意ip,也可以指定)

CREATE USER 'testname'@'%' IDENTIFIED BY 'testpwd';

授權,默認創建的用戶權限是usage,就是無權限,只能登錄而已
(all:所有權限,這裏有select,update等等權限,可以去搜一下;後面的
.*:指定數據庫.指定表,這裏是所有;to後面就是你剛纔創建的用戶)
*

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

注意:用以上命令授權的用戶不能給其它用戶授權,如果想讓該用戶可以授權,用以下命令:
username與host 根據情況進行修改

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

最後刷新一下

FLUSH PRIVILEGES;

使用Navicat 遠程登錄
更改加密方式:

ALTER USER 'testname'@'%' IDENTIFIED BY 'testpwd' PASSWORD EXPIRE NEVER;

更改密碼:testpwd

ALTER USER 'testname'@'%' IDENTIFIED WITH mysql_native_password BY 'testpwd';

最後刷新一下

FLUSH PRIVILEGES;

防火牆設置,讓 3306 端口對外可訪問

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
# 查看規則是否生效
iptables -L -n # 或者: service iptables status
 
# 此時生產環境是不安全的,遠程管理之後應該關閉端口,刪除之前添加的規則
iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
注意:上面iptables添加/刪除規則都是臨時的,如果需要重啓後也生效,需要保存修改:
service iptables save # 或者: /etc/init.d/iptables save

或者

vi /etc/sysconfig/iptables # 加上下面這行規則也是可以的
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章