解決centos安裝mysql8.0遇到的錯誤

記錄一次坑爹的操做。好久好久前,安裝mysql很順利,因而乎,順着經驗,在mysql8.0上撞了大坑,只能怪,經驗太舊太舊了,至此更新以下:node

  linux安裝mysql,最新版8.0:mysql

  一、首先,檢測是否已安裝:linux

    

  rpm -qa | grep mysql

 

    刪除已安裝的mysql:sql

  rpm -e --nodeps mysql或rm -rf xxx

 

  二、安裝,登錄mysql官網下載對應版本的YUM資源包shell

    

  wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm   rpm -ivh mysql-community-release-el7-5.noarch.rpm   yum update   yum install mysql-server
  初始化,    
   mysqld --initialize
  啓動,
   systemctl start mysqld

  中止,
ide

   systemctl stop mysqld

  重啓,
工具

   systemctl restart mysqld

  三、填坑加密

  1)、啓動後會提示:
    Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
  遇到這種錯誤,第一反應,根據提示,執行
spa

    systemctl status mysqld.service或journalctl -xe命令,插件

  查看信息,結果獲得的與想要的,相差甚遠:

  給的提示,最終指向Error: 13 (Permission denied)。。。Failed to start MySQL Server.
  沒什麼卵用,因而乎,查看mysql錯誤日誌:
    執行c
    查看日誌後得知,mysqld.pid沒有寫入權限,採起如下方式解決:
      

      chown -R mysql:mysql /var/run/mysqld

 

  再次啓動,成功!


  2)、給root用戶設置密碼

  按照之前的經驗,一頓操做猛如虎,定睛看,root密碼還是處!(過期經驗,再也不贅述)
  悔當初,沒仔細看官網文檔,因而乎,翻閱官方,獲得以下方式:
  執行如下命令:
  

  shell> sudo grep 'temporary password' /var/log/mysqld.log

  獲得mysql安裝啓動時,提供得臨時密碼xxx
  經過臨時密碼,執行shell> mysql -uroot -p,輸入臨時密碼,登錄mysql成功
  執行如下命令:
    

  mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxx';

  設置新密碼成功!
  注:新密碼遵循mysql的密碼策略。密碼策略validate_password要求密碼包含至少一個大寫字母,一個小寫字母,一個數字和一個特殊字符,而且總密碼長度至少爲8個字符

 

  3)、開啓遠程訪問

  修改mysql.user表中root對應的host,默認爲localhost,改成%,匹配全部主機:   

    update user set `host` = '%' where `user` = 'root' LIMIT 1;

 

 

  給root分配全部訪問權限:   

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

 

  開啓3306端口

  使用navicat或navicat premium12鏈接mysql,報錯:

    2059-Authentication plugin 'caching_sha2_password' cannot be loaded:

  緣由,mysql8.0使用的身份驗證插件爲:caching_sha2_password,客戶端工具使用的身份驗證插件還是mysql_native_password,解決:

    修改mysql.user中的加密方式,     

      alter user 'root'@'%' identified with mysql_native_password by 'root密碼';

 

  

至此,mysql8.0填坑初步完成

相關文章
相關標籤/搜索