經過yum在centos安裝mysql並配置遠程登陸

前言

前天按照Oracle上的文檔裝了一遍mysql,選了最新8.0的版本,後來出現一些問題,網上搜答案,出來的基本仍是5.x版本的解決方案,並不適用8.0版本。而後我就去看了一下公司的正式環境買的阿里雲rds版本,5.7。既然如此,從新裝一下5.7保持和正式環境一致是必須的了。但,我忽然就有點好奇,爲何當時沒有裝6.0 或者7.0版本,畢竟跨了2個大版本。更奇怪的是,看了一下mysql的官方文檔的版本列表,發現也沒有6.0 or 7.0的文檔。html

版本

這下就好玩了,爲何沒有6.x,7.x。mysql

網上搜了一下。linux

版本歷史

大意就是,6由於一些性能問題一會兒沒起來。而後Oracle收購了Sun,中止的6的開發,而後7相關的功能統一合併到了8裏面去。因此,8就成了最新的重要版本。sql

言歸正傳

文檔地址,注意是5.7版本。數據庫


安裝部分

能夠分爲如下幾步:centos

  • 卸載以前的
  • 安裝新的
  • 啓動服務
  1. 卸載以前的版本。yum erase mysql安全

    圖片

  2. 選y,完成服務器

    finish

  3. 完成以後檢查一下 /etc/my.cnf/etc/mysql若是仍是存在,須要手動刪除。發現多了一個my.cnf.rpmsave,rpm幫忙保存的,咱們這裏也不須要,能夠直接刪除。tcp

  4. libaio是mysql的一個依賴項,能夠先裝一下(不過上次安裝8.0的時候沒有裝,應該會自動裝的)。 libnuma是mysql中NUMA功能的一個依賴項,也一塊兒先手動裝一下算了。性能

    yum install libaio
    yum install libnuma
  5. 經過地址根據本身的系統,選擇本身須要的版本,我係統是centos7.5,因此選el7。 經過wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm下載到服務器上,保存地址隨意。雖然名字是mysql80,這個只是表示默認啓用的是8.0版本,裏面其實包含好幾個版本,後面能夠配置啓用的具體版本。

  6. sudo yum localinstall mysql80-community-release-el7-1.noarch.rpm先安裝rpm配置。

  7. yum repolist enabled | grep "mysql.*-community.*"看下是否已經添加成功。

    圖片

  8. 出來的仍是8.0的版本,下面配置一下禁用8.0,啓用5.7。

    sudo yum install yum-utils # 安裝下面的yum-config-manager 
    sudo yum-config-manager --disable mysql80-community
    sudo yum-config-manager --enable mysql57-community
  9. 再看一下yum啓用的版本狀況. yum repolist enabled | grep "mysql.*-community.*"

    圖片

  10. 而後就能夠安裝了。 sudo yum install mysql-community-server,報了一個錯。須要5.7版本的common,安裝的確是8.0版本的common。

    圖片

  11. 上面的問題應該有兩種選擇

    1. 刪除安裝的8.0的common
    2. 使用提示的--skip-broken參數配置來解決
  12. 先試一下第一種。yum erase mysql-community-common刪除完成。從新嘗試安裝。sudo yum install mysql-community-server。沒有報錯,按y繼續安裝。done。

  13. 啓動服務。centos7推薦使用systemctl start mysqld.service。哈哈,失敗了~~

    圖片

  14. 若是是全新安裝應該是不會有問題的,根據提示看下錯誤狀況。

    圖片

  15. 根據提示去搜一下緣由。搜了一下,是因爲原先裝過8.0,而後建立了數據致使的,這裏直接刪掉就能夠了。而後啓動服務,沒有報錯。

    圖片

  16. 看一下服務狀態sudo systemctl status mysqld.service,running。

    圖片


設置部分

分爲如下幾個部分:

  • 設置root用戶密碼
  • 建立用戶,設置密碼,分配權限。
  • 配置遠程鏈接。
  1. mysql 服務第一次啓動,會自動作如下幾件事情.

    1. 啓動服務。
    2. 在數據目錄(/var/lib/mysql)生成ssl證書和祕鑰文件
    3. 安裝並啓用validate_password插件。這個插件默認啓用,他要求密碼至少8位,而且要求有一個大寫,一個小寫,一個數字,以及一個特殊字符。
    4. 建立了'root'@'localhost'這個用戶,密碼存到/var/log/mysqld.log中。
  2. 查看一下密碼。sudo grep 'temporary password' /var/log/mysqld.log

    圖片

  3. 經過臨時密碼登陸,而後修改臨時密碼。mysql -u root -p

    圖片

    圖片

  4. 修改爲功。用新密碼登陸而後試試語句是否能夠執行。沒有問題。

    圖片

  5. 登陸mysql而後建立一個用戶用於遠程登陸。CREATE USER 'root1'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxxxxxx'; 。%表示任意地址能夠鏈接。xxx是具體的密碼,要符合上面的密碼規則。密碼的驗證方式是mysql_native_password。

    圖片

  6. 下面分配權限.grant all privileges on *.* to 'root1'@'%'把全部權限分配給root1用戶。第一個星號表示數據庫名。因此通常來講能夠先用root建立一個數據庫,而後把這個庫的全部權限分配給用戶root1.分配了以後要刷新一下權限配置。FLUSH PRIVILEGES

    圖片

    圖片

  7. 建立好以後,mysql默認用的3306端口,因此要開啓一下服務器的3306端口防火牆。firewall-cmd --zone=public --add-port=3306/tcp --permanent,若是提示FirewallD is not running表示防火牆服務器沒有啓動,能夠按須要啓用與否。而後須要從新加載一下防火牆配置。firewall-cmd --reload

  8. 本地端口啓用以後,須要設置阿里雲的安全組規則。

    地址

  9. 而後試試是否是能夠遠程連上,這裏用dbeaver,跨平臺,安利一下~

    圖片

  10. 鏈接上試試查詢,建表之類的操做,成功。

    圖片

大功告成。

相關文章
相關標籤/搜索