linux上安装MySQL

环境:centos7   mysql8.0.18

编译安装参见:https://www.cnblogs.com/fanshudada/p/9781794.html

下面使用rpm安装

一、下载mysql服务软件包

  地址:https://dev.mysql.com/downloads/mysql/

  rpm package:是某个特定的包,比如server,client,devle等    
  rpm bundle:是该版本所有包的集合                                         
  Compressed TAR Archive,是源码,必须用源码方式安装  

  Compatibility Libraries:兼容库  

  Shared Libraries:共享库  

  Development Libraries:开发库  

  Test Suite:测试套件

  Client Utilities:客户端工具

  下载时注意选则好对应的版本

 

二、安装

  相关依赖包:openssl  openssl-devel  libaio    libaio-devel

  (1)rpm -ivh  mysql-community-libs-8.0.18-1.el7.x86_64

  报错信息:

  error: Failed dependencies:

  mariadb-libs is obsoleted by mysql-community-libs-8.0.18-1.el7.x86_64

  原因:mariadb-libs和 mysql-community-libs冲突

  解决办法:卸载mariadb-libs

  a.查询mariadb-libs的包名

  [root@izm5e8nyz28va3a786y465z src]# rpm -qa |grep mariadb

  mariadb-libs-5.5.64-1.el7.x86_64

  b.卸载该包

   [root@izm5e8nyz28va3a786y465z src]# rpm -ev mariadb-libs-5.5.64-1.el7.x86_64 或   rpm -ev --nodeps  包名  (不卸载相关依赖)

    error: Failed dependencies:

    libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-7.el7.x86_64
    libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-7.el7.x86_64

    报错原因:postfix是mariadb 的依赖包,要先卸载它

    [root@izm5e8nyz28va3a786y465z src]# rpm -qa |grep postfix

    postfix-2.10.1-7.el7.x86_64
    [root@izm5e8nyz28va3a786y465z src]# rpm -ev postfix-2.10.1-7.el7.x86_64
    error: Failed dependencies:
    /usr/sbin/sendmail is needed by (installed) redhat-lsb-core-4.1-27.el7.centos.1.x86_64
    [root@izm5e8nyz28va3a786y465z src]# rpm -qa |grep redhat-lsb
    redhat-lsb-core-4.1-27.el7.centos.1.x86_64
    redhat-lsb-submod-security-4.1-27.el7.centos.1.x86_64
    [root@izm5e8nyz28va3a786y465z src]# rpm -ev redhat-lsb-core-4.1-27.el7.centos.1.x86_64
    Preparing packages...
    redhat-lsb-core-4.1-27.el7.centos.1.x86_64

    [root@izm5e8nyz28va3a786y465z src]# rpm -ev postfix-2.10.1-7.el7.x86_64

    Preparing packages...
    postfix-2:2.10.1-7.el7.x86_64

    上述步骤成功卸载掉mariadb-libs的依赖
    [root@izm5e8nyz28va3a786y465z src]# rpm -ev mariadb-libs-5.5.64-1.el7.x86_64
    Preparing packages...
    mariadb-libs-1:5.5.64-1.el7.x86_64

    继续安装:

    [root@izm5e8nyz28va3a786y465z src]# rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
    warning: mysql-community-libs-8.0.18-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
    Preparing... ################################# [100%]
    Updating / installing...
    1:mysql-community-libs-8.0.18-1.el7################################# [100%]

    mysql-community-libs-8.0.18-1.el7包安装成功

    (2) rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm

    (3) rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm

    (4) rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm 

      error: Failed dependencies:

      libaio.so.1()(64bit) is needed by mysql-community-server-8.0.18-1.el7.x86_64

      libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-8.0.18-1.el7.x86_64
      libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-8.0.18-1.el7.x86_64

      解决依赖关系:

      [root@izm5e8nyz28va3a786y465z src]# yum list |grep libaio

      libaio.i686 0.3.109-13.el7 base
      libaio.x86_64 0.3.109-13.el7 base
      libaio-devel.i686 0.3.109-13.el7 base
      libaio-devel.x86_64 0.3.109-13.el7 base

      查询到4个相关的依赖包,只需安装libaio.x86_64    libaio-devel.x86_64

      yum  -y install  libaio.x86_64    libaio-devel.x86_64

      [root@izm5e8nyz28va3a786y465z src]# rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm 

      warning: mysql-community-server-8.0.18-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
      Preparing... ################################# [100%]
      Updating / installing...
        1:mysql-community-server-8.0.18-1.e################################# [100%]

    (5)rpm -ivh mysql-community-devel-8.0.18-1.el7.x86_64.rpm 

      error: Failed dependencies:

      pkgconfig(openssl) is needed by mysql-community-devel-8.0.18-1.el7.x86_64

      解决依赖关系:

      yum  -y  install  openssl  openssl-devel

      [root@izm5e8nyz28va3a786y465z src]# rpm -ivh mysql-community-devel-8.0.18-1.el7.x86_64.rpm 

      warning: mysql-community-devel-8.0.18-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
      Preparing... ################################# [100%]
      Updating / installing...
      1:mysql-community-devel-8.0.18-1.el################################# [100%]

    至此Mysql安装成功

    小结:1. 卸载掉冲突组件  mariadb

        rpm -ev redhat-lsb-core-4.1-27.el7.centos.1.x86_64  postfix-2.10.1-7.el7.x86_64   mariadb-libs-5.5.64-1.el7.x86_64

       2.安装相关依赖:

        yum  -y  install  openssl  openssl-devel  libaio    libaio-devel

 

三、mysql服务设置

   1.启动mysql服务:systemctl start mysqld.service

    查看MySQL服务是否启动:netstat -tunpl |grep mysqld

    

   2.登录MySQL修改密码

    (1)登录mysql

    2种方法:跳过密码验证登录   或    查看初始密码登录

     a.查看初始密码登录

    cat  /var/log/mysqld.log

    ...   2019-11-11T14:28:57.523108Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ,2sg6>HrQdF!    

    标红加粗部分为初始密码    mysql -uroot  -p    键入密码可以登录MySQL

    b.跳过密码验证登录

    修改my.cnf文件,在[mysqld]区域下加入skip-grant-tables  重启MySQL

    [root@izm5e8nyz28va3a786y465z ~]# find / -name my.cnf
    /etc/my.cnf

    [root@izm5e8nyz28va3a786y465z ~]# vim /etc/my.cnf 

    

    [root@izm5e8nyz28va3a786y465z run]# systemctl restart mysqld.service

    [root@izm5e8nyz28va3a786y465z run]# mysql   #可直接登录MySQL

    注意:修改密码后,将my.cnf文件内容还原

    (2)修改密码,2sg6>HrQdF!sf

    mysql> alter user 'root'@'localhost' identified by 'root123'; 

    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    原因:密码设置的太过简单,初始密码方针:必须包含数字、大写字母、小写字母、特殊符号、长度8位以上。

    mysql> flush privileges;

  3.设置字符编码(从MySQL8.0开始,默认字符集就是utf8mb4 了) 

    # 当前session 

    set session character_set_server='utf8';

    set session collation_server='utf8_bin';

    set names 'utf8'; 

    # 全局

    set global character_set_server='utf8'; 

    set global collation_server='utf8_bin';

    #配置文件(/etc/my.cnf)

    [client]

    default-character-set = utf8mb4  #客户端字符编码

    [mysqld]

    character-set-server = utf8mb4  #服务端字符编码

    查看默认字符集:

    show global variables like '%character_set%';

    查看支持的字符集:

    show character  set;

  4.设置远程登录用户和密码

     1.设置已有用户远程登录

      update  user  set  Host='%'  where  User='root';

      flush  privileges;

     2.新建远程登录用户

      mysql> create user 'xiaobai' identified by 'Abc1234!';

      mysql> grant all privileges on *.* to 'xiaobai'@'%' with grant option;

      mysql>flush  privileges;

      连接失败,提示  验证插件'caching_sha2_password'不能loade

      原因:新版本的MySQL使用的是caching_sha2_password验证方式,但此时的navicat还没有支持这种验证方式

      解决办法:更改加密方式

        查看用户加密方式:

        mysql> select user,plugin from user where user='root';
        +------+-----------------------+
        | user | plugin |
        +------+-----------------------+
        | root | caching_sha2_password |
        +------+-----------------------+

        更改加密方式:

        mysql> alter user 'root'@'%' identified by ',2sg6>HrQdF!sf' password expire never;    #设置密码永不过期(此步非必须)

        mysql>  ALTER USER 'root'@'%' identified with mysql_native_password BY ',2sg6>HrQdF!sf';  #设置为老的加密方式

        mysql> select user,plugin from user where user='root';    #加密方式已修改成功
        +------+-----------------------+
        | user | plugin |
        +------+-----------------------+
        | root | mysql_native_password |
        +------+-----------------------+

         刷新权限:flush  privileges    #可连接成功

       

 

 

 

 

 

 

 

 

 

 

posted on 2019-11-11 21:25  反射弧  阅读(1820)  评论(0编辑  收藏  举报

导航