centos7安裝mysql8


 

1.安裝前清理

  1.1. 清理原有數據庫
    1.1.1. 清理軟件包
      使用 “rpm -pa | grep mysql” 查看原有的軟件包和依賴包,將結果使用 “yum remove 包名”逐一刪除。
    1.1.2. 清理配置
      使用“find / -name mysql”查看所有mysql配置,將結果使用“rm -rf 文件名”逐一刪除。
  1.2. 刪除 mariadb 文件
    由於MySQL在CentOS7中收費了,所以已經不支持MySQL了,取而代之在CentOS7內部集成了mariadb,而安裝MySQL的話會和MariaDB的文件沖突,所以需要先卸載掉MariaDB.
    查看:rpm -qa | grep mariadb
    可能結果:mariadb-libs-5.5.56-2.el7.x86_64
    刪除:rpm -e mariadb-libs-5.5.56-2.el7.x86_64
    如果出錯,則使用強制刪除:rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
2. 下載安裝包
  centos的yum 源中默認是沒有mysql的,所以我們需要先去官網下載mysql的repo源並安裝;
  2.1. 訪問官網,查看最新安裝包
    https://dev.mysql.com/downloads/repo/yum/
  2.2. 選擇版本,點擊“download”

    

  2.3. 登錄
    如果是未登錄狀態,會要求登錄。此時會跳轉到 oracle 單點登錄頁面,登錄自己的 oracle 賬號即可(沒有賬號就注冊一個,現在下載 oracle 的產品都需要登錄,比如 jdk)
  2.4. 登錄后回到上述頁面,右鍵選擇的版本對應的download按鈕,點擊“復制鏈接地址菜單項”
  2.5. 登錄Linux服務器,進入到某個目錄(如 /usr/local/src),使用 wget 下載源安裝包
    wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

3. 安裝mysql源
  3.1. 安裝 yum repo 文件
    rpm -ivh mysql80-community-release-el7-3.noarch.rpm
    執行結果會在/etc/yum.repos.d/目錄下生成兩個repo文件mysql-community.repo mysql-community-source.repo

      

  3.2. 更新yum緩存
    yum clean all

      

    yum makecache

      

4. 安裝mysql服務器
  4.1. 選擇版本
    當我們在使用yum安裝mysql時,yum默認會從yum倉庫中安裝mysql最新的GA版本;如何選擇自己的版本;
    4.1.1. 查看mysql yum倉庫中mysql版本,使用如下命令
      yum repolist all | grep mysql

        

      可以看到mysql8是可用的,其它是禁用的,我正好是需要安裝mysql8,所以不用管了。如果想要安裝其它版本可以修改

    4.1.2. 修改禁用啟用規則
      yum-config-manager --enable mysql57-community
      如果命令無效,可以直接編輯 mysql repo

        

  4.2. 安裝mysql服務
    yum install mysql-community-server

    中間有需要確認的步驟就一直 “y” 就行了。

    

    

5. 啟動服務,測試連接
  啟動:systemctl start mysqld.service
  停止:systemctl stop mysqld.service
  重啟:systemctl restart mysqld.service
  查看服務狀態:systemctl status mysqld.service
6. 修改初始密碼
  6.1. 查看初始密碼
    mysql在安裝后會創建一個root@locahost賬戶,並且把初始的密碼放到了/var/log/mysqld.log文件中;
    查看:cat /var/log/mysqld.log

    

    初始登錄密碼只能用於登錄mysql,不能進行其它操作。會強制要求用戶修改密碼。

  6.2. 修改初始密碼

    使用初始密碼登錄:mysql -uroot -p

    如果不修改,則任何操作時會提示如下錯誤:

      You must reset your password using ALTER USER statement before executing this statement.

    修改方式是登錄后使用以下語句

      ALTER USER USER() IDENTIFIED BY '新密碼'

    值得注意的是,新密碼必須符合安全策略(就是足夠復雜,mysql8的默認安全策略級別是 中等,像123456這些肯定是過不了的),否則會提示如下錯誤:

      ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    修改成功之后我們可以看一下mysql服務器的密碼安全策略等級:SHOW VARIABLES LIKE 'validate_password%',結果如下:

      

7. 允許遠程登錄

  mysql8安裝完成之后,root用戶只允許本地登錄遠程登錄會報錯:

    ERROR 1130 (HY000): Host 'xxx(ip)' is not allowed to connect to this MySQL server

  放開遠程權限的方法是登錄之后,執行

    use mysql;

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

    flush privileges;

8. 修改密碼加密方式

  經過 7. 之后,發現遠程還是不能登錄,但是報錯有所不同了:

    Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

  這是因為mysql7之后,默認的密碼加密方式更改了,但是你使用的客戶端沒有升級,不支持此種加密方式,解決方法是更改服務器加密方式為傳統加密方式或者升級客戶端。如果是新項目建議使用第二種,畢竟新的肯定更好。如果是存量項目的數據庫遷移或者升級,考慮到兼容問題和穩定性,建議使用第一種。

  修改加密方式為本地登錄之后執行:

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密碼';

  至此,mysql服務已經可以使用了。

9. 修改默認服務端口

  mysql默認端口號是 3306。一般線上數據庫,出於安全考慮,都會修改默認端口號。

  9.1. 編輯“/etc/my.cnf”文件

    vi /etc/my.cnf

  9.2. 添加行

    port=新端口;

  9.3. 重啟mysql服務

    systemctl restart mysqld.service

 

完!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM