离线linux服务器安装mysql8

本文的服务器环境:openEuler毛坯版的,很多常用的指令都没有预装,比如rpm、tar等等,没有网络坏境,需要自己手动配置本地yum仓库,安装相关指令

 1、检查服务器是否已经安装了MySQL

        1.1、查询mysql以安装的相关依赖:
rpm -qa | grep mysql

        如图所示:

        将查询出的安装程序使用rpm命令依次卸载:

rpm -e mysql-xxxxxxx --nodeps
1.2、查找含有MySQL的目录
find / -name mysql

        如图所示:

        使用 rm -rf 命令, 删除上方的mysql相关目录依(根据自己查找出来的目录进行依次删除):

 2、下载mysql8的tar版本,即解压版

        点击下载版本包:mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

3、上传服务器(/home)并解压

  •   解压:
  • tar -xvf  mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
  •   转移及重命名:
  • mv mysql-8.0.30-linux-glibc2.12-x86_64  /usr/local/mysql8
  •   授权:chown -R  [所有者]:[组]  [目录或文件路径]
  • chown  -R  mysql:mysql  /usr/local/mysql8
     
    •   4、配置mysql所需的my.cnf文件

      •            4.1、在/etc/目录下添加my.cnf文件:
        • vi /etc/my.cnf

              配置文件内容:配置文件中的目录根据自己的实际情况可以做修改

          • # 优先读取/etc/my.cnf.d目录下配置文件,一般用不着
            #!includedir /etc/my.cnf.d# 客服端设置
            [client]# 服务套接字位置
            socket=/mnt/data/mysql/mysql.sock[mysqld]# 数据目录,路径的位置根据实际情况配置,给目录指定权限,否真会报权限问题
            datadir=/mnt/data/mysql/mysql-data# mysql端口号
            port = 3306# 日志文件输出,需要给目录配置权限,否则会报目录权限问题
            log-error=/mnt/data/mysql/mysql-logs/mysql.log# 不区分大小写
            # MySQL在Windows上会将所有的表名和数据库名转换为小写,并且在查询时不区分大小写。这有助于在不同操作系统之间移植数据库
            lower_case_table_names=1# 服务套接字位置,需要给目录配置权限
            socket=/mnt/data/mysql/mysql.sock# 是否与旧版本的客户端兼容,可能需要将此参数设置为mysql_native_password
            # default_authentication_plugin=mysql_native_password# 最大传输如果数据包超过这个大小,MySQL会报错
            # max_allowed_packet=64M# 最大连接并发数据量
            # max_connections=1000
            
                    4.2、给my.cnf配置文件中指定的目录配置权限:(否则会在初始化时或是启动时出现问题,如果出现问题,应该实时查看初始化时与启动时的mysql.log日志)
          • chown -R mysql:mysql /mnt/data/mysql/mysql-data
            chown -R 755  /mnt/data/mysql/mysql-datachown -R mysql:mysql /mnt/data/mysql/mysql-logs
            chmod -R 755 /mnt/data/mysql/mysql-logschown -R mysql:mysql /mnt/data/mysql
            chown -R 755  /mnt/data/mysql
            

            5、配置命令

            • 设置命令,方便命令操作,软链接执行mysql8下对应命令文件,执行下面所有的指令

              • ln -snf /usr/local/mysql8/bin/mysql /usr/bin/mysqlln -snf /usr/local/mysql8/bin/mysqld /usr/sbin/mysqld ln -snf /usr/local/mysql8/bin/mysqladmin /usr/bin/mysqladminln -snf /usr/local/mysql8/bin/mysqlbinlog /usr/bin/mysqlbinlogln -snf /usr/local/mysql8/bin/mysqlcheck /usr/bin/mysqlcheckln -snf /usr/local/mysql8/bin/mysql_config_editor /usr/bin/mysql_config_editorln -snf /usr/local/mysql8/bin/mysqldump /usr/bin/mysqldumpln -snf /usr/local/mysql8/bin/mysqldumpslow /usr/bin/mysqldumpslowln -snf /usr/local/mysql8/bin/mysqlimport /usr/bin/mysqlimportln -snf /usr/local/mysql8/bin/mysqlpump /usr/bin/mysqlpumpln -snf /usr/local/mysql8/bin/mysql_secure_installation /usr/bin/mysql_secure_installationln -snf /usr/local/mysql8/bin/mysqlshow /usr/bin/mysqlshowln -snf /usr/local/mysql8/bin/mysqlslap /usr/bin/mysqlslapln -snf /usr/local/mysql8/bin/mysql_tzinfo_to_sql /usr/bin/mysql_tzinfo_to_sqlln -snf /usr/local/mysql8/bin/mysql_upgrade /usr/bin/mysql_upgrade
                

                到此输入以下命令可以查看版本:

            • mysql -V
              mysqld  -V
              

              此步骤只有一台服务器遇到问题,是因为系统依赖坏境问题,缺少什么依赖库:

            • 如何跟新依赖库自行百度即可,本文是从本地的yum仓库中进行安装的:

              yum --disablerepo="*" --enablerepo="local" install ncurses-compat-libs

              此问题理论上是不影响向下继续操作的,如有强迫症对应的error可以百度

            • 6、修改系统配置

            • 6.1、修改配置文件:/etc/profile

              • vi  /etc/profile

                在最后追加:

              • # add mysqlexport PATH=$PATH:/usr/local/mysql8/bin
                6.2、配置启动项
                从mysql8下拷贝mysql.server到/etc/init.d目录下:
              • cp /usr/local/mysql8/support-files/mysql.server  /etc/init.d/mysqld

                修改/etc/init.d/mysqld的基础路径:

              • vi  /etc/init.d/mysqld

                修改目录位置:

              • basedir=/usr/local/mysql8 (安装路径)
                datadir=/mnt/data/mysql/mysql-data  (与配置文件保持一致)
                

                确保service mysql mysqld  start均可启动:

              • cp  /etc/init.d/mysqld  /etc/init.d/mysql

                 添加到启动列表:

chkconfig --add mysqld

刷新启动信息:

systemctl daemon-reload

查看启动项列表

 chkconfig –list

如图所示:

7、 初始化mysql服务

初始化命令:--basedir:根据实际mysql安装路径

mysqld --user=mysql --basedir=/usr/local/mysql8 --initialize 

        初始化后,查看mysqld.log(默认/var/log/mysqld.log或本文取决于my.cnf的日志路径配置),找到root初始密码,在执行上方initialize语句时mysqld.log文件中就会打印,如图:

启动mysql:

service mysqld start

使用root登录:

mysql -uroot  -p

首次需要修改密码 :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY  '新密码';

问题总结:


  • chown: invalid user: ?𻱭ysql:mysql?
    • 原因:这个错误表示在系统中没有找到名为mysql的用户或组
    • 解决方式:
      • 创建新用户:useradd mysql
        • 有时候创建用户的同时也会自动创建同名的组。
        • 创建新组:groupadd mysql

  • mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
    • 这个错误信息表明您在尝试运行MySQL客户端(mysql)时,系统无法找到名为libtinfo.so.5的共享库文件。这通常发生在新安装或升级MySQL后,尤其是当系统上缺少某些必需的库文件时。libtinfo.so.5ncurses库的一部分,它提供了终端处理功能,许多命令行和文本界面程序都依赖于它。不同版本的Linux发行版可能会预装不同版本的libtinfo,并且新版本的Linux可能不包含旧版本的libtinfo.so.5
    • 解决方式:
      • 以配置本地yum仓库: yum --disablerepo="*" --enablerepo="local" install ncurses-compat-libs
      • 有网环境:yum install ncurses-libs     
  • Could not open file '/mnt/data/mysql/mysql-logs/mysql.log' for error logging: Permission denied
    • /mnt/data/mysql/mysql-logs/ 这个目录下权限不够
    • 解决方式
      • 执行:
        • chown -R mysql:mysql /mnt/data/mysql/mysql-data/
        • chown -R 755 /mnt/data/mysql/mysql-data/
        • chown -R 755 /mnt/data/mysql/mysql-logs/
        • chown -R mysql:mysql /mnt/data/mysql/mysql-logs/

  • Starting MySQL.... ERROR! The server quit without updating PID file (/mnt/data/mysql/mysql-data/localhost.localdomain.pid).
    • /mnt/data/mysql/mysql-data这个目录权限不够
    • 解决方式
      • 执行:
        • chown -R 755 /mnt/data/mysql/
        • chown -R mysql:mysql /mnt/data/mysql/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/568840.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Machine Learning机器学习之随机森林(Random Forests)

目录 前言: 思想与原理: 随机森林分类效果与什么因素有关: 经典的随机森林算法: 一、构建经典随机森林算法 1、思路 2、步骤: 3、代码实现 二、随机森林算法应用 建模步骤 Python代码实现(完整代码&#xf…

【Java 内网穿透】1.2.5-JDK17-SNAPSHOT新特性

wu-smart-agent-network 是一款基于(wu-framework-parent)孵化出的项目,内部使用Lazy ORM操作数据库,主要功能是网络穿透,对于没有公网IP的服务进行公网IP映射 使用环境JDK17 Spring Boot 3.0.2 项目地址 Gitee Git…

【Canvas与艺术】黑底蓝绿色网格雷达之眼

【图示】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>黑底蓝绿色网格雷达之眼</title><style type"text/css…

go的for循环应该这么用

目录 目录 一&#xff1a;介绍 1: for流程控制 2&#xff1a;for-range流程控制 二&#xff1a;实例展示 1&#xff1a;//按照一定次数循环 2&#xff1a;//无限循环 3: //循环遍历整数、各种容器和通道 4&#xff1a;遍历通道 5&#xff1a;//指针数组循环 6&…

高级 IO

1、五种IO模型 阻塞IO: 在内核将数据准备好之前, 系统调用会一直等待. 所有的套接字, 默认都是阻塞方式&#xff1b; 阻塞IO是最常见的IO模型&#xff1b; 非阻塞IO: 如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EWOULDBLOCK错误码&#xff1b; 非阻塞IO往往…

RabbitMq高可用

消息队列高级 服务异步通信-高级篇1.消息可靠性1.1.生产者消息确认1.2.消息持久化1.3.消费者消息确认1.4.消费失败重试机制1.5.总结 2.死信交换机2.1.初识死信交换机2.2.TTL2.3.延迟队列 3.惰性队列3.1.消息堆积问题3.2.惰性队列 4.MQ集群4.1.集群分类4.2.普通集群4.3.镜像集群…

[leetcode]06拿硬币

前言&#xff1a;剑指offer刷题系列 问题&#xff1a; 桌上有 n 堆力扣币&#xff0c;每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆&#xff0c;拿走其中的一枚或者两枚&#xff0c;求拿完所有力扣币的最少次数。 示例&#xff1a; 输入&#xff1a;[4,2,1] 输…

【Linux基础】ubuntu虚拟机配置及原理

一、虚拟机 虚拟机&#xff08;Virtual Machine&#xff0c;VM&#xff09;是一种软件实现的计算机系统&#xff0c;它在物理计算机上模拟了一个完整的计算机硬件环境&#xff0c;包括处理器、内存、存储设备和网络接口等。通过虚拟机&#xff0c;用户可以在单个物理计算机上同…

Nginx(Docker 安装的nginx)配置域名SSL证书

1.首先确保Linux环境上已经安装了docker&#xff08;可参考VMware使用和Linux安装Docker_wmware直接部署linux和安装docker后-CSDN博客 2.通过docker 安装nginx&#xff08;可参考Linux 环境安装Nginx—源码和Dokcer-CSDN博客&#xff09; 3.安装SSL证书 3.1 在宿主机中创建…

Python学习笔记(二)

一&#xff1a;异常&#xff1a; 1.1&#xff1a;异常处理&#xff1a; 1.2&#xff1a;异常捕获&#xff1a; 1.3&#xff1a;异常传递&#xff1a; 二&#xff1a;模块&#xff1a; 2.1&#xff1a;模块的定义&#xff1a; 2.2&#xff1a;模块的导入&#xff1a; 2.3&…

PCA+DBO+DBSCN聚类,蜣螂优化算法DBO优化DBSCN聚类,适合学习,也适合发paper!

PCADBODBSCN聚类&#xff0c;蜣螂优化算法DBO优化DBSCN聚类&#xff0c;适合学习&#xff0c;也适合发paper&#xff01; 一、蜣螂优化算法 摘要&#xff1a;受蜣螂滚球、跳舞、觅食、偷窃和繁殖等行为的启发&#xff0c;提出了一种新的基于种群的优化算法(Dung Beetle Optim…

【PyQt】18 -菜单等顶层操作

顶层界面的使用 前言一、菜单栏1.1 代码1.2 运行结果 二、工具栏2.1 代码几种显示方法 2.2 运行结果 三、状态栏3.1 代码3.2 运行结果 总结 前言 1、介绍顶层菜单栏目的使用&#xff0c;但没有陆续绑定槽函数。 2、工具栏 3、状态栏 一、菜单栏 1.1 代码 #Author &#xff1a…