解决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填坑初步完成

相关文章
相关标签/搜索