• 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    #可连接成功

           

     

  • 相关阅读:
    StringUtils
    改变windows锁屏时间
    data-toggle和data-target
    Bootstrap元素居中
    爬虫软件/程序
    nfs服务器搭建
    浏览器控制台console对象的使用
    F7
    Ubuntu18.04 安装Docker【转】
    mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法【转】
  • 原文地址:https://www.cnblogs.com/fanshehu/p/11838596.html
Copyright © 2020-2023  润新知