zoukankan      html  css  js  c++  java
  • centos7使用MySQL的Yum存储库安装mysql5.7.27

    下载yum源

    官网地址:http://dev.mysql.com/downloads/repo/yum/

    centos7系统:

    http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

    http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

    # wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

    [root@localhost ~]# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    --2019-08-10 21:38:37--  https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    Resolving dev.mysql.com (dev.mysql.com)... 137.254.60.11
    Connecting to dev.mysql.com (dev.mysql.com)|137.254.60.11|:443... connected.
    HTTP request sent, awaiting response... 302 Found
    Location: https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm [following]
    --2019-08-10 21:38:59--  https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
    Resolving repo.mysql.com (repo.mysql.com)... 104.74.21.42
    Connecting to repo.mysql.com (repo.mysql.com)|104.74.21.42|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 25680 (25K) [application/x-redhat-package-manager]
    Saving to: ‘mysql57-community-release-el7-11.noarch.rpm’
    
    100%[===================================================================================================================>] 25,680      --.-K/s   in 0.1s    
    
    2019-08-10 21:39:00 (253 KB/s) - ‘mysql57-community-release-el7-11.noarch.rpm’ saved [25680/25680]
    
    [root@localhost ~]# ls
    anaconda-ks.cfg  mysql57-community-release-el7-11.noarch.rpm

    检测系统是否自带安装mysql

    # yum list installed | grep mysql

    删除系统自带的mysql

    # yum -y remove mysql-libs.x86_64

    这个mysql的yum源服务器在国外,所以下载速度会比较慢,mysql5.6只有79M大,而mysql5.7就有182M。

    安装mysql57-community-release-el7-11.noarch.rpm包

    # yum -y install mysql57-community-release-el7-11.noarch.rpm

    [root@localhost ~]# yum -y install mysql57-community-release-el7-11.noarch.rpm
    Loaded plugins: fastestmirror
    Examining mysql57-community-release-el7-11.noarch.rpm: mysql57-community-release-el7-11.noarch
    Marking mysql57-community-release-el7-11.noarch.rpm to be installed
    Resolving Dependencies
    --> Running transaction check
    ---> Package mysql57-community-release.noarch 0:el7-11 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    =============================================================================================================================================================
     Package                                    Arch                    Version                  Repository                                                 Size
    =============================================================================================================================================================
    Installing:
     mysql57-community-release                  noarch                  el7-11                   /mysql57-community-release-el7-11.noarch                   31 k
    
    Transaction Summary
    =============================================================================================================================================================
    Install  1 Package
    
    Total size: 31 k
    Installed size: 31 k
    Downloading packages:
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : mysql57-community-release-el7-11.noarch                                                                                                   1/1 
      Verifying  : mysql57-community-release-el7-11.noarch                                                                                                   1/1 
    
    Installed:
      mysql57-community-release.noarch 0:el7-11                                                                                                                  
    
    Complete!

    安装完这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo

    [root@localhost ~]# ls /etc/yum.repos.d/
    centos.repo  mysql-community.repo  mysql-community-source.repo

    # cat /etc/yum.repos.d/mysql-community.repo

    [root@localhost ~]# cat /etc/yum.repos.d/mysql-community.repo 
    [mysql-connectors-community]
    name=MySQL Connectors Community
    baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql-tools-community]
    name=MySQL Tools Community
    baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    # Enable to use MySQL 5.5
    [mysql55-community]
    name=MySQL 5.5 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    # Enable to use MySQL 5.6
    [mysql56-community]
    name=MySQL 5.6 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql57-community]
    name=MySQL 5.7 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql80-community]
    name=MySQL 8.0 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql-tools-preview]
    name=MySQL Tools Preview
    baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/$basearch/
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql-cluster-7.5-community]
    name=MySQL Cluster 7.5 Community
    baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/7/$basearch/
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql-cluster-7.6-community]
    name=MySQL Cluster 7.6 Community
    baseurl=http://repo.mysql.com/yum/mysql-cluster-7.6-community/el/7/$basearch/
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

    # cat /etc/yum.repos.d/mysql-community-source.repo

    [root@localhost ~]# cat /etc/yum.repos.d/mysql-community-source.repo
    [mysql-connectors-community-source]
    name=MySQL Connectors Community - Source
    baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/SRPMS
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql-tools-community-source]
    name=MySQL Tools Community - Source
    baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/SRPMS
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql55-community-source]
    name=MySQL 5.5 Community Server - Source
    baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/SRPMS
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql56-community-source]
    name=MySQL 5.6 Community Server - Source
    baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/SRPMS
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql57-community-source]
    name=MySQL 5.7 Community Server - Source
    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/SRPMS
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql80-community-source]
    name=MySQL 8.0 Community Server - Source
    baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/SRPMS
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql-tools-preview-source]
    name=MySQL Tools Preview - Source
    baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/SRPMS
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql-cluster-7.5-community-source]
    name=MySQL Cluster 7.5 Community - Source
    baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/7/SRPMS
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql-cluster-7.6-community-source]
    name=MySQL Cluster 7.6 Community - Source
    baseurl=http://repo.mysql.com/yum/mysql-cluster-7.6-community/el/7/SRPMS
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

    用yum repolist mysql这个命令查看一下是否已经有mysql可安装文件

    # yum repolist all | grep mysql

    [root@localhost ~]# yum repolist all | grep mysql
    mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community   disabled
    mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - disabled
    mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community   disabled
    mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - disabled
    mysql-connectors-community/x86_64  MySQL Connectors Community    enabled:    118
    mysql-connectors-community-source  MySQL Connectors Community -  disabled
    mysql-tools-community/x86_64       MySQL Tools Community         enabled:     95
    mysql-tools-community-source       MySQL Tools Community - Sourc disabled
    mysql-tools-preview/x86_64         MySQL Tools Preview           disabled
    mysql-tools-preview-source         MySQL Tools Preview - Source  disabled
    mysql55-community/x86_64           MySQL 5.5 Community Server    disabled
    mysql55-community-source           MySQL 5.5 Community Server -  disabled
    mysql56-community/x86_64           MySQL 5.6 Community Server    disabled
    mysql56-community-source           MySQL 5.6 Community Server -  disabled
    mysql57-community/x86_64           MySQL 5.7 Community Server    enabled:    364
    mysql57-community-source           MySQL 5.7 Community Server -  disabled
    mysql80-community/x86_64           MySQL 8.0 Community Server    disabled
    mysql80-community-source           MySQL 8.0 Community Server -  disabled

    安装mysql

    # yum install mysql-server -y

    比较慢,耐心等待

    Installed:
      mysql-community-libs.x86_64 0:5.7.27-1.el7       mysql-community-libs-compat.x86_64 0:5.7.27-1.el7       mysql-community-server.x86_64 0:5.7.27-1.el7      
    
    Dependency Installed:
      mysql-community-client.x86_64 0:5.7.27-1.el7        mysql-community-common.x86_64 0:5.7.27-1.el7        net-tools.x86_64 0:2.0-0.24.20131004git.el7       
    
    Dependency Updated:
      openssl.x86_64 1:1.0.2k-16.el7_6.1                  openssl-libs.x86_64 1:1.0.2k-16.el7_6.1                  postfix.x86_64 2:2.10.1-7.el7                 
    
    Replaced:
      mariadb-libs.x86_64 1:5.5.44-2.el7.centos                                                                                                                  
    
    Complete!

    安装mysql指定版本,例如安装mysql5.7.22版

    # yum install mysql-community-server-5.7.22 -y

    下载rpm安装包到/opt/pages

    # yum install --downloadonly --downloaddir=/opt/pages mysql-community-server-5.7.22

    加入开机自启动

    # systemctl enable mysqld

    启动mysql服务进程

    # systemctl start mysqld

    查看mysql服务进程

    # systemctl status mysqld

    [root@localhost ~]# systemctl start mysqld
    [root@localhost ~]# 
    [root@localhost ~]# systemctl status mysqld
    ● mysqld.service - MySQL Server
       Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
       Active: active (running) since Sat 2019-08-10 22:15:24 CST; 7s ago
         Docs: man:mysqld(8)
               http://dev.mysql.com/doc/refman/en/using-systemd.html
      Process: 11810 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
      Process: 11736 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
     Main PID: 11813 (mysqld)
       CGroup: /system.slice/mysqld.service
               └─11813 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
    
    Aug 10 22:15:17 localhost.localdomain systemd[1]: Starting MySQL Server...
    Aug 10 22:15:24 localhost.localdomain systemd[1]: Started MySQL Server.

    进入mysql

    # mysql

    [root@localhost ~]# mysql
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

    MySQL服务器初始化(从MySQL 5.7开始):在服务器初始启动时,如果服务器的数据目录为空,则会发生以下情况:

    (1)、服务器已初始化

    (2)、在数据目录中生成SSL证书和密钥文件

    (3)、该validate_password插件安装并启用

    (4)、将'root'@'localhost' 创建一个超级用户帐户。设置超级用户的密码并将其存储在日志文件中。要显示它,请使用以下命令:

    # grep "password" /var/log/mysqld.log

    [root@localhost ~]# grep "password" /var/log/mysqld.log
    2019-08-10T14:15:20.529782Z 1 [Note] A temporary password is generated for root@localhost: #&kdOvHin6gP
    2019-08-10T14:16:10.145451Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)

    使用用户名密码进入mysql

    [root@localhost ~]# mysql -uroot -p
    Enter password:        #输入初始密码
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 4
    Server version: 5.7.27
    
    Copyright (c) 2000, 2019, 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>

    输入初始密码进入mysql数据库,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库

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

    修改mysql密码

    注意:
    MySQL的 validate_password 插件默认安装。这将要求密码包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为8个字符。

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

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    mysql> SET PASSWORD = PASSWORD('Admin123!');

    mysql> SET PASSWORD = PASSWORD('Admin123!');
    Query OK, 0 rows affected, 1 warning (0.00 sec)

    MySQL完整的初始密码规则可以通过如下命令查看:

    mysql> SHOW VARIABLES LIKE 'validate_password%';

    mysql> SHOW VARIABLES LIKE 'validate_password%';
    +--------------------------------------+--------+
    | Variable_name                        | Value  |
    +--------------------------------------+--------+
    | validate_password_check_user_name    | OFF    |
    | validate_password_dictionary_file    |        |
    | validate_password_length             | 8      |
    | validate_password_mixed_case_count   | 1      |
    | validate_password_number_count       | 1      |
    | validate_password_policy             | MEDIUM |
    | validate_password_special_char_count | 1      |
    +--------------------------------------+--------+
    7 rows in set (0.01 sec)

    密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:

    validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

    如果只想设置简单密码需要修改两个全局参数:

    mysql> set global validate_password_policy=0;

    mysql> set global validate_password_length=1;

    mysql> set global validate_password_policy=0;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> set global validate_password_length=1;
    Query OK, 0 rows affected (0.00 sec)

    再次查看mysql密码规则

    mysql> SHOW VARIABLES LIKE 'validate_password%';

    mysql> SHOW VARIABLES LIKE 'validate_password%';
    +--------------------------------------+-------+
    | Variable_name                        | Value |
    +--------------------------------------+-------+
    | validate_password_check_user_name    | OFF   |
    | validate_password_dictionary_file    |       |
    | validate_password_length             | 4     |
    | validate_password_mixed_case_count   | 1     |
    | validate_password_number_count       | 1     |
    | validate_password_policy             | LOW   |
    | validate_password_special_char_count | 1     |
    +--------------------------------------+-------+
    7 rows in set (0.00 sec)

    此时密码就可以设置的很简单,例如1234之类的

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

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
    Query OK, 0 rows affected (0.00 sec)

    设置远程可以登录

    授权远程登录

    grant all privileges on *.* to root@'%' identified by 'password' with grant option;

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

    第一个是你的用户名root,第二个password是远程的密码

    mysql> grant all privileges on *.* to root@'%' identified by '123456' with grant option

    flush命令使配置立即生效

    mysql> flush privileges;

    mysql> select user,host from mysql.user;
    +---------------+-----------+
    | user          | host      |
    +---------------+-----------+
    | mysql.session | localhost |
    | mysql.sys     | localhost |
    | root          | localhost |
    +---------------+-----------+
    3 rows in set (0.00 sec)
    
    mysql> grant all privileges on *.* to root@'%' identified by '123456' with grant option;
    Query OK, 0 rows affected, 1 warning (0.01 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select user,host from mysql.user;
    +---------------+-----------+
    | user          | host      |
    +---------------+-----------+
    | root          | %         |
    | mysql.session | localhost |
    | mysql.sys     | localhost |
    | root          | localhost |
    +---------------+-----------+
    4 rows in set (0.00 sec)

    或者使用一下语句修改授权远程客户端登录

    use mysql;

    show tables;

    select Host,User from user G

    update user set host = '%' where Host = "localhost" and user = "root";

    修改一些简单的配置:

    默认的字符集是拉丁字符集,每次创建数据库的时候要设置字符集;默认还不支持group by语句,默认的时区也不是我们现在的北京时间(东八区),会导致我们的时间差了13个点。

    打开配置文件,yum安装的默认在/etc文件夹下:/etc/my.cnf

    # vi /etc/my.cnf

    默认配置如下:

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    
    [mysqld]
    #
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    #
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    #
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid

    在[mysqld]下面添加,不需要分号

    字符集:注意是utf8而不是utf-8!

    character-set-server=utf8

    查看mysql字符集

    mysql> show variables like 'char%';

    默认字符集如下

    mysql> show variables like 'char%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | latin1                     |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | latin1                     |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.00 sec)

    设置时区为东八区

    default-time_zone = '+8:00'

    sql支持group by语句

    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    附yum安装源:

    centos7_mysql5.7.repo

    [mysql-connectors-community]
    name=MySQL Connectors Community
    baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/x86_64/
    enabled=1
    gpgcheck=0
    
    [mysql-tools-community]
    name=MySQL Tools Community
    baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/x86_64/
    enabled=1
    gpgcheck=0
    
    [mysql57-community]
    name=MySQL 5.7 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/
    enabled=1
    gpgcheck=0

    参考博客:

    CentOS7 yum方式安装MySQL5.7

    centos7.4安装MySQL5.7

    https://blog.csdn.net/pzl_pzl/article/details/82015144

    centos7下使用yum源安装mysql5.7记录

    https://www.jianshu.com/p/531cc35b15e7

    CentOS7安装MySQL

  • 相关阅读:
    《京东峰值系统设计》读后感
    《王者荣耀游戏服务器架构演进(完整版)》读后感
    《秒杀系统架构分析与实战》读后感
    《阿里如何实现秒级百万TPS?搜索离线大数据平台架构解读》读后感
    《阿里游戏高可用架构设计实践》读后感
    Spark SQL 编程初级实践
    系统质量属性之——性能
    《信息技术手册查重错误比对分析》开发记录7
    《信息技术手册查重错误比对分析》开发记录6
    【Codeforces Round #589 (Div. 2) D】Complete Tripartite
  • 原文地址:https://www.cnblogs.com/djlsunshine/p/11331517.html
Copyright © 2011-2022 走看看