zoukankan      html  css  js  c++  java
  • CentOS7下MySQL8的二进制基本安装配置

    前言

      基于本地Centos7.6虚拟机Mysql8的配置(亲测有效)

    一.安装前的准备

      1.到官网下载mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
      2.通过Xshell或者Xftp、PSPC、PSFTP等工具把安装包上传到CentOS服务器。
       PSftp示范
        (1)先在虚拟机上命令(ip addr)查看虚拟机的ip,没有ip自己网上找配置方法

        (2)打开psftp,连接虚拟机
        open ip

        (3)账号密码登录(注意:要回复y or n时,要照提示输入,不能直接回车)

        (4)登陆成功后,当前目录为root,切换到你要上传的位置(这里以local目录为例)
        cd /usr/local/

        (5)再切到本地存放mysql8压缩包的目录下(这里以F:\test为例)
        lcd F:\test

        (6)切到test目录后,开始上传(注意:后缀名也要打上去)
        put mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
        当提出pftp>提示时,说明上传成功
        

       3.在安装前需要确定现在这个系统有没有 mysql,如果有那么必须卸载。
         (1)查看mysql数据库
          rpm -qa | grep -i mysql

         (2)卸载mysql数据库
          rpm -e --nodeps mysql 文件名

         (3)查找mysql文件
          find / -name mysql

         (4)删除mysql有所文件和配置文件my.cnf(自己上传的别错删了)
          rm -rf 指定路径下的文件名
        

      4.解压缩mysql文件
        (1)xz –d /usr/local/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz

        (2)tar –xvf /usr/local/mysql-8.0.16-linux-glibc2.12-x86_64.tar

        (3)mv /usr/local/mysql-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql

      5.查看解压后的文件
        ls -al /usr/local/mysql
      

    二.添加mysql组和用户及权限分配

      1.检查mysql组和用户是否存在,如无创建
        cat /etc/group | grep mysql
        cat /etc/passwd | grep mysql

      2.创建mysql用户组,指定mysql用户属于mysql组
        groupadd mysql
        useradd -g mysql mysql

      

       3.修改用户mysql的密码为A2019a(自己设定),回车后输入密码

        passwd mysql

      4给予安装目录mysql权限
      chown -R mysql:mysql /usr/local/mysql

      

    三.创建和设置配置文件my.cnf

      1.在/etc/下创建创建my.cnf
        touch /etc/my.cnf
        vi /etc/my.cnf
      在配置文件my.cnf添加如下配置(注意注意:别打错单词了,我就试过差点怀疑人生)
       [mysql]

    # 设置mysql客户端默认字符集

    default-character-set=utf8

    [mysqld]

    skip-name-resolve

    #设置3306端口

    port = 3306

    # 设置mysql的安装目录

    basedir=/usr/local/mysql

    # 设置mysql数据库的数据的存放目录

    datadir=/usr/local/mysql/data

    # 允许最大连接数

    max_connections=200

    # 服务端使用的字符集默认为8比特编码的latin1字符集

    character-set-server=utf8

    # 创建新表时将使用的默认存储引擎

    default-storage-engine=INNODB

    lower_case_table_names=1

    max_allowed_packet=16M

     

      2.赋my.cnf文件mysql权限
       chown mysql:mysql /etc/my.cnf

      


    四.mysql初始化配置

      1.切换到mysql用户权限
        su mysql

        2.初始化生成data目录(切记不要手动创建data目录)(补充:mysql用户下初始化不成功(没有生成密码),用root用户来操作,最后记得把生成data目录赋予mysql用户)
        /usr/local/mysql/bin/mysqld --initialize
        如果当前所在目录为bin录下,命令形式为./mysqld --initialize
        ./不能省略,否则出错,因为省略后系统会当成mysqld程序执行,而不是bin目录下的mysqld可执行文件

      3.如果提示没有libaio程序就先安装yum install libaio-devel.x86_64然后不断回y就行
       但得先切回root用户(命令su回车输密码即可),否则报错权限不够
       不用安装也要先切回root,否则下面步骤也会报错

       4.初始化完成后,仔细看提示,会自动生成mysql数据库登陆密码,记好
      

      5.此时在mysql目录下会生成data目录,但权限只有750,要追加到755

      

      chmod 755 /usr/local/mysql/data
      (或者 chmod o+r+x /usr/local/mysql/data)

      


    五.软连接与开机启动项设置

      1.创建软连接(实现可直接命令行执行mysql)
        ln -s /usr/local/mysql/bin/mysql /usr/bin

       2.mysqld配置,拷贝启动文件到/etc/init.d/目录下并重命令为mysqld
        cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

        3.检查自启动项列表中有没有mysqld
        chkconfig --list mysqld

      4.如果没有就添加mysqld
        chkconfig --add mysqld

      5.设置开机启动
        chkconfig mysqld on

        6.启动测试
        service mysqld start

      



    六.pid问题解决

      

      1.如果无法启动,且提示pid错误;首先一定要确认配置文件有没有打错字母,改正后,删除data目录
        rm -rf /usr/local/mysql/data

       2.重新初始化一遍
        /usr/local/mysql/bin/mysqld --initialize

      3.记下密码后,追加755权限给data目录
        chmod 755 /usr/local/mysql/data

      4.再重新启动mysql服务
        service mysqld start
      仍不行重试第六个标题步骤
      按照前面来的操作,一般是不会有问题;配置文件中如果自定义mysql日志路径,在创建文件夹存放日志文件时,该文件夹手动创建后要赋Mysql用户权限

    七.登录mysql修改密码

      1.登录mysql,前面最新的密码就派上用场了
        mysql -uroot -p密码

       2.修改密码
        set password='123456';

      在yum或rpm在线安装完成后,首次登录强制修改密码
      alter user 'root'@'localhost' identified by '123456';
      有的人可能试过上面这句直接修改密码不行,此时可以先减低密码的防御策略,之后再视情况修改
      set global validate_password.policy=0;
      set global validate_password.length=1;
      再执行上面的修改密码的语句

      基本配置到此完成

      mysql安全配置推荐参考https://www.freebuf.com/articles/database/36777.html

    大佬的世界,我想去看看
  • 相关阅读:
    Deployment descriptor
    实体、list 、xml之间的转化
    关于C# 汉字转拼音问题
    NPoco学习笔记(1)
    SQL(二)
    SQL(一)
    sobel算子及cvSobel
    图像的平滑处理
    erase的用法
    int main(int argc, char* argv[ ])
  • 原文地址:https://www.cnblogs.com/gychomie/p/11013246.html
Copyright © 2011-2022 走看看