美文网首页
CentOS7.x 下 MySQL 安装

CentOS7.x 下 MySQL 安装

作者: cuihairu | 来源:发表于2016-10-29 17:13 被阅读0次

    MySQL 搭建

    MySQL 在被Orcal 收购之后,开源界担心mysql会被闭源,在CentOS 7.x已经将默认的 MySQL 切换为 Mariadb,Mariadb 是mysql的一个分支,是兼容mysql产品的。

    Mariadb

    1. 安装
    
    yum install -y mysql #但是这个默认安装的是Mariadb
    
    yum install -y mysql-devel
    
    yum install -y mariadb-server mariadb
    
    
    1. 系统相关
    
    systemctl start mariadb  #启动MariaDB
    
    systemctl stop mariadb  #停止MariaDB
    
    systemctl restart mariadb  #重启MariaDB
    
    systemctl enable mariadb  #设置开机启动
    
    
    1. 连接数据库
    
    mysql -u root -p
    
    

    MySQL

    MySQL官网

    RPM安装

    
    #下载 RPM 包
    
    wget http://repo.mysql.com//mysql57-community-release-el7-9.noarch.rpm
    
    # 安装RPM 包
    
    rpm -ivh mysql57-community-release-el7-9.noarch.rpm
    
    # 安装 会提示导入 orcal的密钥
    
    yum install -y mysql-community-server
    
    # 安装之后 默认替换 MariaDB包
    
    yum install -y mysql-devel
    
    

    问题收集

    1. 获取随机生成的密码

    从mysql 5.7开始 为了增强安全性 在第一次登录不在密码为空了 而是随机生成一段密码保存到了 err.log文件中

    RPM包 安装 默认 在 /var/log/mysqld.log

    mysql> select @@log_error;
    +---------------------+
    | @@log_error         |
    +---------------------+
    | /var/log/mysqld.log |
    +---------------------+
    1 row in set (0.00 sec)
    

    查找密码:

    grep "password" /var/log/mysqld.log
    
    #log:
    2016-10-10T14:54:47.017230Z 1 [Note] A temporary password is generated for root@localhost: NUTgOlNww1/q
    
    1. 设置密码
    
      # 停止 mysql 服务
    
      systemctl stop  mysqld.service
    
      #默认第一次进数据库的时候是没有密码的,但有时候进不去 就需要先禁用授权表再进。
    
      #禁用授权表
    
      #方法1:
      vim /etc/my.cnf
    
      #在[mysqld]下加入skip-grant-tables
    
      [mysqld]
      skip-grant-tables
    
      #方法2: 执行命令启动增加参数
    
      /usr/bin/mysqld_safe --skip-grant-tables &
    
      # 更新密码:
    
      # 选择 数据库
      use mysql
    
      # 更新密码
      update user set authentication_string=password('*0D3CED9BEC10A777AEG23Cml353A8C08X633045E') where User='root' and Host='localhost';
    
    
      #保存 并注释掉 skip-grant-tables
      flush privileges;
    
    
    
      # 更新密码还可会遇到如下错误
      # You must reset your password using ALTER USER statement before executing this statement.
    
       vim /etc/my.cnf
    
       #在 [mysqld]下加入 validate_password=OFF
    
       validate_password=OFF
    
       #重启 mysql服务
    
       systemctl restart mysqld
    
       #重新登录mysql
    
       mysql -u root -p mysql
    
       #进入mysql 后重新设置密码 这里设置的暂时的密码 *0D3CED9BEC10A777AEG23Cml353A8C08X633045E
    
       #老版本:
    
       set password = password('*0D3CED9BEC10A777AEG23Cml353A8C08X633045E');
    
       #新版:
       set password = '*0D3CED9BEC10A777AEG23Cml353A8C08X633045E';
       #最后 注释掉 validate_password=OFF 重启mysql
    
    

    错误

    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    
    vim  /etc/my.conf
    
    plugin-load=validate_password.so
    validate-password=FORCE_PLUS_PERMANENT
    
    #skip-grant-tables
    ##
    #validate_password=OFF

    相关文章

      网友评论

          本文标题:CentOS7.x 下 MySQL 安装

          本文链接:https://www.haomeiwen.com/subject/wmjyuttx.html