• Centos7安装mysql


    Centos7安装mysql

    一、卸载mariadb

    1. 查看mariadb的相关包

    rpm -qa | grep mariadb
    

    2. 卸载mariadb

    rpm -e --nodeps
    

    二、完全卸载mysql

    1. 查看mysql安装情况

    rpm -qa |grep -i mysql
    

    image-20201209084505483

    2. 若有则先卸载

    yum remove mysql80-community-release-el7-1.noarch
    

    image-20201209085439655

    3. 查看是否卸载完全

    image-20201209090142119

    4. 查看mysql相关目录

    whereis mysql
    

    image-20201209101044032

    find / -name mysql
    

    image-20201209101509255

    5. 删除相关目录

    rm -rf 
    

    6. 删除/etc/my.cnf

    rm -rf /etc/my.cnf
    

    7. 删除/var/log/mysqld.log(如果不删除这个文件,会导致新安装的mysql无法生存新密码,导致无法登陆)

    rm -rf /var/log/mysqld.log
    

    三、安装mysql

    1. 下载安装文件

    官网下载地址:https://downloads.mysql.com/archives/community/

    ​ 下载文件:mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz

    image-20201209103016710

    2. 文件解压缩

    若是云服务器,把文件通过Xftp软件上传到服务器上,放于/usr/local/mysql文件夹中

    image-20201209103333801

    第一步,使用xz -d 命令将xxx.tar.xz压缩包解压成xxx.tar,如下:

    xz -d mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
    

    image-20201209103452199

    第二步,使用tar -vxf命令将xxx.tar压缩包解压,如下:

    tar -xvf mysql-8.0.16-linux-glibc2.12-x86_64.tar
    

    image-20201209103530551

    3. 给包重命名为mysql

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

    4. 检查mysql组和用户是否存在,如无创建

    创建mysql用户组:

    groupadd mysql
    
    useradd -g mysql mysql
    

    5. 进入mysql目录并创建data目录;

    cd /usr/local/mysql
    
    mkdir data
    

    6. 赋权限给相关目录

    chmod -R 777 /usr/local/mysql/mysql
    
    chmod -R 777 /usr/local/mysql/data
    

    image-20201209104356162

    7. 将mysql目录的权限授给mysql用户和mysql组;

    chown -R mysql:mysql /usr/local/mysql/mysql
    

    image-20201209104603358

    8. 新建mysql配置文件 my.cnf

    vi /etc/my.cnf
    

    image-20201209104629711

    ​ 配置内容如下:

    [mysqld]
    bind-address=0.0.0.0
    port=3306
    user=mysql
    basedir=/usr/local/mysql/mysql  # mysql安装目录
    datadir=/usr/local/mysql/data  # 数据存放目录
    socket=/tmp/mysql.sock
    log-error=/usr/local/mysql/data/mysql.err
    pid-file=/usr/local/mysql/data/mysql.pid
    #character config
    character_set_server=utf8mb4
    symbolic-links=0
    explicit_defaults_for_timestamp=true
    

    ​ 配置好文件,附文件权限:

    • 特别注意,这个是所有用户都可读写,由于mysql的安全机制,这种权限可能会被忽视掉,导致配置文件my.cnf不生效
    chmod -R 777 /etc/my.cnf
    
    • 建议用这个,用户可读写,其他用户不可写.
    chmod 644 /etc/my.cnf
    

    image-20201209105236917

    9. 安装mysql

    • 进入mysql 安装目录下的bin目录:
    cd /usr/local/mysql/mysql/bin/
    

    image-20201209105404816

    • 安装MySQL,并记住随机生成的密码,每次生成都不一样:
    ./mysqld --initialize --console
    

    image-20201209105648013

    10. 启动mysql

    • 进入/usr/local/mysql/mysql/support-files/目录
    cd /usr/local/mysql/mysql/support-files/
    

    image-20201209110107046

    • 启动mysql

      ./mysql.server start
      

    可能会出现一下报错:

    报错:Starting MySQL.Logging to '/usr/local/mysql/data/VM-0-16-centos.err'.
    ..... ERROR! The server quit without updating PID file (/usr/local/mysql/data/VM-0-16-centos.pid).

    image-20201209110125950

    解决方法:

    ① 先查看报错文件

    image-20201209110942151

    发现问题出现在/tmp/mysql.sock文件

    ② 检查文件mysql.sock是否在/tmp/目录下

    image-20201209111314209

    检查该路径发现tmp路径属于root

    ③ 将该路径分配给mysql用户重启mysql,问题解决

    chown -R mysql.mysql /tmp/
    

    image-20201209112110424

    image-20201209111444340

    ④ 其他情况:

    若报错文件有如下报错,可能是因为没给文件赋权限

    image-20201209111710774

    执行

    chmod -R 777 /usr/local/mysql/data/
    
    • 重新启动

      image-20201209112140382

    11. 配置

    • 配置环境变量
    cp mysql.server  /etc/init.d/mysqld
    

    image-20201209112707676

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

    image-20201209113017823

    12.登录mysql

    • 登录mysql,密码用上面安装mysql时的默认密码

      mysql -uroot -p
      

      image-20201209113354905

    • 修改默认密码

      ALTER USER 'root'@'localhost' IDENTIFIED BY 'lcd123456';
      

      image-20201209113436381

    • 修改成远程登录用户

      update user set host='%' where user = 'root';
      

      image-20201209113518569

    • 授权

      grant all privileges on *.* to 'root'@'%';
      

      image-20201209113846367

    • 刷新权限

      flush privileges
      

      image-20201209114016122

    • 使用native校验登录(可以使用Navicat for mysql等工具登录)

      ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'lcd123456';
      

      image-20201209114100094

    13.防火墙设置

    • 查看防火墙状态

      firewall-cmd --state
      

    ​ 若没有,则开启

    systemctl start firewalld.service
    
    • 查看监听的端口

      firewall-cmd --list-port
      
    • 添加3306端口监听

      firewall-cmd --zone=public --add-port=3306/tcp --permanent
      
    • 刷新防火墙设置

      firewall-cmd --reload
      

    image-20201209114458024

    至此,完成安装。

    14. 加入开机启动

    chkconfig --add mysqld
    
    chkconfig mysqld on
    

    四、执行 sql 文件

    命令行下执行 sql 文件有两种方法

    1. 第一种方法(未连接数据库)

    不推荐这样使用 因为在密码带有特殊字符时会报错

    mysql -h localhost -u username -ppassword < filepath #filepath 为绝对路径
    

    2.第二种方法(已连接数据库)

    这里的 yourDatabase 为你的数据库名 filepath 为 sql 文件的绝对路径

    • 创建数据库

      CREATE DATABASE IF NOT EXISTS yourDatabaseName DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
      
    • 执行sql文件

      use yourDatabase;
      source filepath;
      

    3. 第三种方法-连接Navicat

    image-20201209115443556

    至此,结束!

    参考文章:

  • 相关阅读:
    几个可以用到的正则表达式
    apache fileupload 文件上传,及文件进度设置获取
    Log4j日志根据配置输出到多个自定义文件
    spring3.2.2 remoting HTTP invoker 实现方式
    希望自己坚持住!
    tomcat线程一直处于RUNNABLE,不接受请求
    OM—>AR相关会计科目
    css画图
    Jquery 实现原理之 Ajax
    HTML、XHTML和HTML5区别与联系
  • 原文地址:https://www.cnblogs.com/arlenlin/p/14107783.html
Copyright © 2020-2023  润新知