• CentOS RPM 安装 MySQL5.7


    环境

    CentOS 7 64位
    MySQL 5.7 64位

    1.卸载系统自带的 mariadb

    [root@localhost /]# rpm -qa|grep mariadb
    mariadb-libs-5.5.56-2.el7.x86_64
    [root@localhost /]# rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
    

    2.下载RPM包

    MySQL官网下载rpm集合包到本地再上传至服务器或通过下面的方法直接在服务器下载

    wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar
    

    3.解压tar包

    
    [root@localhost softwares]# ls
    mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
    [root@localhost softwares]# tar -xvf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar 
    mysql-community-server-5.7.18-1.el7.x86_64.rpm
    mysql-community-embedded-devel-5.7.18-1.el7.x86_64.rpm
    mysql-community-devel-5.7.18-1.el7.x86_64.rpm
    mysql-community-client-5.7.18-1.el7.x86_64.rpm
    mysql-community-common-5.7.18-1.el7.x86_64.rpm
    mysql-community-embedded-5.7.18-1.el7.x86_64.rpm
    mysql-community-embedded-compat-5.7.18-1.el7.x86_64.rpm
    mysql-community-libs-5.7.18-1.el7.x86_64.rpm
    mysql-community-server-minimal-5.7.18-1.el7.x86_64.rpm
    mysql-community-test-5.7.18-1.el7.x86_64.rpm
    mysql-community-minimal-debuginfo-5.7.18-1.el7.x86_64.rpm
    mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm
    

    4.安装

    依次执行(几个包有依赖关系,所以执行有先后)下面命令安装

    rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
    

    5.数据库初始化

    mysqld --initialize --user=mysql
    

    --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期(密码在/var/log/mysqld.log中),登陆后你需要设置一个新的密码,而使用 --initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码。

    [root@localhost softwares]# more /var/log/mysqld.log
    2018-02-24T08:27:17.789803Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2018-02-24T08:27:18.923811Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2018-02-24T08:27:18.981104Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2018-02-24T08:27:19.116973Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 87296646-193c-11e8-adaf-000c29ee8fae.
    2018-02-24T08:27:19.332937Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2018-02-24T08:27:19.333647Z 1 [Note] A temporary password is generated for root@localhost: m)6_=8yl6(pA
    

    最后一行给出了MySQL登录密码。
    启动MySQL服务,登录MySQL

    [root@localhost softwares]# systemctl start mysqld
    [root@localhost softwares]# mysql -u root -p 
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 3
    Server version: 5.7.18
    
    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> 
    

    6.重置root用户密码

    提示密码过期,需要重置

    mysql> show databases;
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    

    重置密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    或
    mysql> set password for 'root'@'localhost'=password('new_password'); 
    

    7.远程授权登录

    root 用户名
    % 所有人都可以访问
    password 密码

    # 给特定IP授权
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY 'password' WITH GRANT OPTION;
    
    # 给任意IP授权
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
    

    刷新权限

    flush privileges;  
    

    打开3306端口

    firewall-cmd --add-port=3306/tcp --permanent
    

    重启防火墙

    systemctl restart firewalld
    

    8.配置utf8编码

    修改/etc/my.cnf,在后面加上下面内容

    [mysqld]
    character_set_server=utf8
    init_connect='SET NAMES utf8'
    

    重启MySQL

    systemctl restart mysqld
    

    显示编码

    show variables like '%character%';
    

    常见错误

    [root@VM_107_38_centos tools]# rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm 
    warning: mysql-community-server-5.7.18-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
    error: Failed dependencies:
            libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.18-1.el7.x86_64
            libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-5.7.18-1.el7.x86_64
            libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-5.7.18-1.el7.x86_64
    
    解决办法:
            yum install libnuma*
    
    错误:依赖检测失败:
            perl(Getopt::Long) 被 mysql-community-server-5.7.18-1.el7.x86_64 需要
            perl(strict) 被 mysql-community-server-5.7.18-1.el7.x86_64 需要
    
    解决办法:
           yum install perl
    

    参考链接:
    1.https://my.oschina.net/Laily/blog/713022
    2.http://www.cnblogs.com/maobuji/p/8336702.html

  • 相关阅读:
    mysql小记
    mysql多实例安装
    源码编译安装mysql
    url监控
    ping命令的用法大全!
    JSON结构
    <a href="onclick="javascript:goSearch(this)" class="click" name="Java">Java</a>为什么a标签的父节点获取不到
    处理jquery版本之间冲突
    C# 语言如何获取json格式的数据,不用javascript用c#实现。。。
    在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求【转载】
  • 原文地址:https://www.cnblogs.com/flythinking/p/8466921.html
Copyright © 2020-2023  润新知