• centos7服务器安装mysql8


    前言

    CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了。
    本文记录了在线安装mysql及离线安装mysql的方法和常见问题。
    如果需要继续使用MySQL,可参考本文操作。

    在线安装

    获取yum源

    1. 在MySQL官网中下载YUM源rpm安装包,复制下载链接使用wget下载。
    wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
    
    1. 安装yum源
    yum localinstall mysql80-community-release-el7-1.noarch.rpm
    
    1. 检查yum源
    yum repolist enabled | grep "mysql.*-community.*"
    

    可能遇到的问题:

    • 安装了较旧的yum源,先删除旧版本

      1. 查询yum源

        rpm -qa |grep -i repo-name

      2. 删除该yum源

        rpm -e repo-name

      参考博客地址

    安装mysql

    1. 可以修改/etc/yum.repos.d/mysql-community.repo源,改变默认安装的mysql版本,enabled=0禁用,enabled=1启用。

    2. 安装默认版本

      ※ 此处会耗费很长时间,可以先忙别的。

    yum install -y mysql-community-server
    

    执行完毕即安装完成。受服务器网速影响(预估耗时30h+),在线安装到此截止。改用离线安装。↓

    离线安装

    1. 官网下载RPM Bundle

    2. 上传Bundle包至服务器,rz -be上传、或xftp上传。

    3. 解压Bundle包至/usr/local/mysql目录下。

    4. 依次安装common、libs、client、server

    [root@VM-0-4-centos mysql]# tar -xvf mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar 
    mysql-community-common-8.0.21-1.el7.x86_64.rpm
    mysql-community-embedded-compat-8.0.21-1.el7.x86_64.rpm
    mysql-community-libs-8.0.21-1.el7.x86_64.rpm
    mysql-community-devel-8.0.21-1.el7.x86_64.rpm
    mysql-community-server-8.0.21-1.el7.x86_64.rpm
    mysql-community-client-8.0.21-1.el7.x86_64.rpm
    mysql-community-libs-compat-8.0.21-1.el7.x86_64.rpm
    mysql-community-test-8.0.21-1.el7.x86_64.rpm
    [root@VM-0-4-centos mysql]# rpm -qa | grep mariadb
    [root@VM-0-4-centos mysql]# rpm -ivh mysql-community-common-8.0.21-1.el7.x86_64.rpm 
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:mysql-community-common-8.0.21-1.e################################# [100%]
    [root@VM-0-4-centos mysql]# rpm -ivh mysql-community-libs-8.0.21-1.el7.x86_64.rpm 
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:mysql-community-libs-8.0.21-1.el7################################# [100%]
    [root@VM-0-4-centos mysql]# rpm -ivh mysql-community-client-8.0.21-1.el7.x86_64.rpm 
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:mysql-community-client-8.0.21-1.e################################# [100%]
    [root@VM-0-4-centos mysql]# rpm -ivh mysql-community-server-8.0.21-1.el7.x86_64.rpm 
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:mysql-community-server-8.0.21-1.e################################# [100%]
    

    至此,mysql已安装完毕。

    服务启停

    1. 查看服务状态

      systemctl status mysqld.service

    2. 启动服务

      service mysqld start

    3. 停止服务

      service mysqld stop

    # 启动服务
    [root@VM-0-4-centos etc]# service mysqld start
    Redirecting to /bin/systemctl start mysqld.service
    # 查看服务
    [root@VM-0-4-centos etc]# systemctl status mysqld.service 
    ● mysqld.service - MySQL Server
       Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
       Active: active (running) since Tue 2020-09-01 00:08:51 CST; 37s ago
         Docs: man:mysqld(8)
               http://dev.mysql.com/doc/refman/en/using-systemd.html
      Process: 21087 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
     Main PID: 21110 (mysqld)
       Status: "Server is operational"
       CGroup: /system.slice/mysqld.service
               └─21110 /usr/sbin/mysqld
    
    # 关闭服务
    [root@VM-0-4-centos etc]# service mysqld stop
    Redirecting to /bin/systemctl stop mysqld.service
    [root@VM-0-4-centos etc]# systemctl status mysqld.service 
    ● mysqld.service - MySQL Server
       Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
       Active: inactive (dead) since Tue 2020-09-01 00:09:49 CST; 11s ago
         Docs: man:mysqld(8)
               http://dev.mysql.com/doc/refman/en/using-systemd.html
      Process: 21110 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
      Process: 21087 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
     Main PID: 21110 (code=exited, status=0/SUCCESS)
       Status: "Server shutdown complete"
    
    1. 遇到问题

      [ERROR] [MY-012271] [InnoDB] The innodb_system data file 'ibdata1' must be writable

      查看日志发现是ibdata1无写权限,修改/var/lib/mysql权限为777

      chmod -R 777 mysql

    数据库设置

    1. 数据库初始化

      使用指令1对数据库进行初始化mysqld --initialize;,并得到临时密码。

    [root@VM-0-4-centos etc]# mysqld --initialize;
    2020-08-31T16:13:01.986611Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.21) initializing of server in progress as process 21288
    2020-08-31T16:13:01.995195Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
    2020-08-31T16:13:04.085829Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
    2020-08-31T16:13:07.225825Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: fu-k1yjtnllY	《==============临时密码
    

    ​ 或查看日志获取临时密码(我安装了两次所以两种方式显示密码不一致,请忽略)

    [root@VM-0-4-centos mysql]# cat /var/log/mysqld.log |grep pass
    2020-08-31T17:45:15.371100Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: gX:Uey-fg2JV	《==============临时密码
    
    1. 登录mysql

      使用临时密码登录mysql

    [root@VM-0-4-centos mysql]# mysql -uroot -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 9
    Server version: 8.0.21
    
    Copyright (c) 2000, 2020, 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> 
    
    1. 修改root密码

      使用 alter USER 'root'@'localhost' IDENTIFIED BY 'root';修改root密码。

    mysql> alter USER 'root'@'localhost' IDENTIFIED BY 'root';
    Query OK, 0 rows affected (0.05 sec)
    mysql> quit
    Bye
    [root@VM-0-4-centos mysql]# mysql -uroot -p
    Enter password: <===========================输入新密码root
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 11
    Server version: 8.0.21 MySQL Community Server - GPL
    
    Copyright (c) 2000, 2020, 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>
    
    1. 授权远程连接
    # 切换数据库
    mysql> use mysql;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    # 修改root host为%
    mysql> update user set host = "%" where user='root';
    Query OK, 1 row affected (0.02 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    # 修改远程登录密码为root
    mysql> alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    
    1. 使用Navicat测试连接,可在/etc/my.cnf中配置端口号,默认为3306。

    END

    mysql的安装出现了挺多error,不过还好大部分都能在网上找到答案,总结起来大概包含以下内容

    • rpm安装需要先移除旧版本。

      rpm -qa|grep XXX

      rpm -e XXX

    • 移除旧版本时报错缺少依赖。

      rpm -ev XXX --force --nodeps

    • mysql安装完成后初始化失败。

      清空/var/lib/mysql目录。有些版本是data目录。

    • mysql服务启动失败。

      查看/var/log/mysqld.log错误日志定位问题,缺路径就建文件夹,少权限就授权。

    • 登录mysql失败,需要密码。

      初始化后查看日志获取临时密码cat /var/log/mysqld.log |grep pass

    另外说句题外话:

    ​ 服务器上安装任何软件都尽量修改其访问端口,使用默认端口很危险,在学习redis、mysql、filebeat等软件时,都曾因使用默认端口被残忍挖矿,血泪教训。o(╥﹏╥)o

  • 相关阅读:
    Balanced Binary Tree
    Swap Nodes in Pairs
    Reverse Nodes in k-Group
    Reverse Linked List II
    Remove Nth Node From End of List
    Remove Duplicates from Sorted List II
    Remove Duplicates from Sorted List
    Partition List
    Merge Two Sorted Lists
    【Yii2.0】1.2 Apache检查配置文件语法
  • 原文地址:https://www.cnblogs.com/bcomll/p/13593994.html
Copyright © 2020-2023  润新知