debian系linux安装mysql

news2025/1/5 8:40:28

准备环境

(1) 先查询是否有安装mariadb,如果有,先执行以下命令卸载mariadb

sudo apt-get remove --purge mariadb-server mariadb-client

(2) 安装libncurses.so.5和libtinfo.so.5库文件
在数据库登录时会用到,执行以下命令查询

find / -type f -name "libncurses.so.*"
find / -type f -name "libtinfo.so.*"
find / -type f -name "libnuma.so.*"

然后查询到的文件有可能不是libncurses.so.5和libtinfo.so.5,大概率文件可以在/usr/lib/找到,例如像下面这样,最后需要根据现有文件libncurses.so.*和libtinfo.so.*生成链接文件

ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6.5 /usr/lib64/libncurses.so.5
ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6.5  /usr/lib64/libtinfo.so.5
ln -s /usr/lib/x86_64-linux-gnu/libnuma.so.1.0.0  /usr/lib64/libnuma.so.1

(3)编辑环境变量

vim /etc/profile
追加内容:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64:/usr/lib32
source /etc/profile

2 下载mysql二进制安装包

例如:
mysql-9.0.1-linux-glibc2.17-x86_64.tar.xz

3、安装脚本

点击进入下面脚本页面
脚本内容如下:

#!/bin/bash

#先查询是否有启动的mysql服务
mysql_process=`ps -aux |grep '[m]ysqld'`
if [ ! -z "$mysql_process" ];then
  echo "mysqld服务已启动,请退出后再执行mysql安装!"
  exit 1;
fi

#如果是手动上传mysql安装包,把它和此安装脚本放在同一目录下即可!
read -p "请输入需要安装的mysql的版本号,例如8.0.35:" version

if [ -z "${version}" ]
  then 
    echo "输入安装的mysql的版本号为空!!!"
    exit 1
fi

#apt install -y wget
#wget https://cdn.mysql.com/archives/mysql-8.0/mysql-${version}-linux-glibc2.17-x86_64.tar.xz

is_exist=`ls ./ | grep mysql-${version}-linux-glibc2.17-x86_64.tar.xz`

if [ -z "${is_exist}" ]
  then 
    echo "mysql安装包不存在!!!现在开始下载中..."
    wget https://cdn.mysql.com/archives/mysql-8.0/mysql-${version}-linux-glibc2.17-x86_64.tar.xz
    is_exist=`ls ./ | grep mysql-${version}-linux-glibc2.17-x86_64.tar.xz`
    if [ -z "${is_exist}" ]
      then 
	echo "mysql安装包不存在!!!请检查!!!"
	exit 1
    else
      echo "${is_exist}存在,可以继续安装!"
    fi
else
  echo "${is_exist}存在,可以继续安装!"
fi

apt install -y libaio1

if [ ! -e "/usr/lib64/libncurses.so.5"  ]
  then
    echo "/usr/lib64/libncurses.so.5不存在!"
    echo "请使用find / -type f -name 'libncurses.so.*'命令查询"
    exit 1
fi

if [ ! -e "/usr/lib64/libtinfo.so.5" ]
  then
    echo "/usr/lib64/libtinfo.so.5不存在!"
    echo "请使用find / -type f -name 'libtinfo.so.*'命令查询"
    exit 1
fi

if [ ! -e "/usr/lib64/libnuma.so.1" ];then
  echo "/usr/lib64/libnuma.so.1 不存在!"
  echo "请使用find / -type f -name ''命令查询"
  exit 1
fi

check_env(){
  id mysql
  if [ 0 -eq "$?" ]
    then 
      echo "mysql用户已经存在,无需创建"
    else
      useradd mysql
      if [ 0 -eq "$?" ]
        then 
          echo "mysql用户创建成功!"
        else
          echo "mysql用户创建失败!!!"
	  exit 1
      fi
  fi
  
  if [ -d "/usr/local/mysql" ]
    then
      cd /usr/local && rm -rf mysql && cd -
  fi	    
}

check_env && tar -xvf mysql-${version}-linux-glibc2.17-x86_64.tar.xz -C /usr/local && cd /usr/local && mv mysql-${version}-linux-glibc2.17-x86_64 mysql && cd mysql && mkdir data && chown -R mysql:mysql data

if [ $? -eq 0 ]
  then
    echo "mysql安装环境准备成功!继续下一步"
else
  echo "mysql安装环境准备失败!!!请检查"
  exit 1
fi

cat>/usr/local/mysql/my.cnf<<EOF
[mysql]
default-character-set=utf8mb4
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/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
lower_case_table_names=1
EOF

if [ $? -eq 0 ]
  then 
    echo "初始化mysql配置文件my.cnf成功!继续下一步"
else
  echo "初始化mysql配置文件my.cnf失败!!!请检查"
  exit 1
fi

bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --initialize

if [ $? -eq 0 ]
  then
    echo "初始化mysql实例成功!继续下一步"
else
  echo "初始化mysql实例失败!!!请检查"
  exit 1
fi

if [ -e /etc/my.cnf ] 
 then rm -f /etc/my.cnf
fi

support-files/mysql.server start

if [ $? -eq 0 ]
  then
    echo "启动mysql实例成功!继续下一步"
else
  echo "启动mysql实例失败!!!请检查"
  exit 1
fi

temp_password=$(grep 'temporary password' /usr/local/mysql/data/mysql.err | awk '{print $NF}')

echo "临时密码:${temp_password}"

bin/mysql  --connect-expired-password -uroot -p"${temp_password}" -e"alter user root@'localhost' identified by '123456';create user root@'%' identified by '123456';grant all privileges on *.* to root@'%';flush privileges;"
if [ $? -eq 0 ]
  then
    echo "mysql用户密码设置成功!继续下一步"
else
  echo "mysql用户密码设置失败!!!请检查"
  exit 1
fi

#firewall-cmd --permanent --zone=public --add-port=3306/tcp
#firewall-cmd --reload
if [ $? -eq 0 ]
  then
    echo "mysql端口放行成功!到此安装完成!开始使用MySQL吧!"
else
  echo "mysql端口放行失败!!!请检查"
fi
echo 'export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/support-files' >> /etc/profile
echo "mysql执行路径已经添加到PATH环境变量中,生效请执行source /etc/profile 或是重启系统!"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中巨伟业推出高安全高性能32位智能卡内核可编程加密芯片SMEC88SP/ST

1、产品特性  以最高安全等级的智能卡芯片内核为基础&#xff0c;具有极高的软硬件安全性  实现客户关键功能或算法代码下载&#xff0c;用户可以灵活实现自有知识产权的保护  标准 SOP8、SOT23-6 封装形式&#xff0c;器件封装小  标准 I2C 接口&#xff0c;具有接…

部署SenseVoice

依赖 Conda cuda pythor 查看GPU版本-CSDN博客 创建虚拟conda环境 conda create --name deeplearn python3.10 conda activate deeplearn git clone https://github.com/FunAudioLLM/SenseVoice.git cd SenseVoice pip install -r requirements.txt pip install gradio pip …

微信流量主挑战:用户数30!新增文档转化功能,解决docker运行jar包报错SimSun找不到的问题(新纪元5)

哎呀&#xff0c;今天忙到飞起&#xff0c;文章晚点更新啦&#xff01;不过好消息是&#xff0c;我们的小程序用户终于突破30啦&#xff0c;感谢大家的支持&#xff01;而且&#xff0c;大家期待已久的文档转化功能明天就要上线啦&#xff0c;目前支持word转pdf&#xff0c;pdf…

操作系统课后题总复习

目录 一、第一章 1.1填空题 1.2单项选择题 1.3多项选择题 1.4判断题 1.5名词解释 1.6简答题 二、第二章 2.1填空题 2.2单项选择题 2.3 多项选择题 2.4判断题 2.5名词解释 2.6简答题 三、第三章 3.1填空题 3.2单项选择题 3.3多项选择题 3.4判断题 3.5名词解…

C语言期末复习笔记(下)

目录 九、指针 1.指针变量的定义和初始化 2.间接寻址符* 3.按值调用和按址调用 4.实例 5.函数指针 6.指针变量和其它类型变量的对比 十、字符串 1.字符串常量 2.字符串的存储 3.字符指针 4.字符串的访问和输入/输出 5.字符串处理函数 &#xff08;1&#xff09;str…

保姆级教程Docker部署ClickHouse镜像

目录 1、安装Docker及可视化工具 2、创建挂载目录 3、获取配置文件 4、运行ClickHouse容器 5、Compose运行ClickHouse容器 6、查看ClickHouse运行状态 7、安装包部署 1、安装Docker及可视化工具 Docker及可视化工具的安装可参考&#xff1a;Ubuntu上安装 Docker及可视化…

飞牛私有云APP结合cpolar内网穿透技术实现远程连接本地fnOS NAS

文章目录 前言1. 本地连接测试2. 飞牛云安装Cpolar3. 配置公网连接地址4. 飞牛云APP连接测试5. 固定APP远程地址6. 固定APP地址测试 前言 现在生活和工作中的各种设备都变得越来越智能&#xff0c;而数据存储的需求也随之剧增。想象一下&#xff1a;你正在外地出差&#xff0c…

计算机网络 (17)点对点协议PPP

一、PPP协议的基本概念 PPP协议最初设计是为两个对等节点之间的IP流量传输提供一种封装协议&#xff0c;它替代了原来非标准的第二层协议&#xff08;如SLIP&#xff09;。在TCP/IP协议集中&#xff0c;PPP是一种用来同步调制连接的数据链路层协议&#xff08;OSI模式中的第二层…

RC充电电路仿真与分析

RC充电原理 下图是一个常见的RC充电电路&#xff1a;&#xff08;假设R10K&#xff0c;C100nF&#xff09; SW断开时&#xff0c;这个电路处于断路状态&#xff0c;C既没有充电也没有放电&#xff1b;SW闭合时&#xff0c;直流电源5V为电容C充电&#xff1b; 充电时电容两端…

全新免押租赁系统助力商品流通高效安全

内容概要 全新免押租赁系统的推出&#xff0c;可以说是一场商品流通领域的小革命。想象一下&#xff0c;不再为押金烦恼&#xff0c;用户只需通过一个简单的信用评估&#xff0c;就能快速租到所需商品&#xff0c;这种体验简直令人惊喜&#xff01;这个系统利用代扣支付技术&a…

c++领域展开第八幕——类和对象(下篇 初始化列表、类型转换、static成员)超详细!!!!

文章目录 前言一、初始化列表二、类型转换三、static成员总结 前言 上篇博客我们实现了一个简单的日期类&#xff0c;基本的类和对象是清楚了 今天我们再来学习后面的一些类和对象的语法&#xff0c;慢慢的完善所学的东西 fellow me 一、初始化列表 • 之前我们实现构造函数时…

Linux-Ubuntu之RGBLCD显示屏

Linux-Ubuntu之RGBLCD显示屏 一&#xff0c;实现原理二&#xff0c;驱动代码三&#xff0c;总结1.c语言知识 一&#xff0c;实现原理 采用的是4.3寸 800480显示屏&#xff0c;即每行有800个像素点&#xff0c;每列有480个像素点&#xff0c;外接时钟信号&#xff0c;控制刷新频…

JVM 主要组成部分与内存区域

一、JVM 主要组成部分&#xff1a; JVM的主要包含两个组件和两个子系统&#xff0c;分别为&#xff1a; &#xff08;1&#xff09;本地库接口(Native Interface)&#xff1a;与native lib(本地方法库)交互&#xff0c;融合其他编程语言为Java所用&#xff0c;是与其它编程语言…

如何在鸿蒙本地模拟器中使用HDC工具

引言 HDC是指华为设备连接&#xff08;Huawei Device Connector&#xff09;工具。它的作用类似Android开发的ADB工具。在华为鸿蒙&#xff08;HarmonyOS&#xff09;操作系统的开发过程中&#xff0c;HDC工具起到了至关重要的作用。它允许开发者在开发主机&#xff08;如 PC&…

ruoyi 分页 查询超出后还有数据; Mybatis-Plus 分页 超出后还有数据

修改&#xff1a;MybatisPlusConfig 类中 分页合理化修改为&#xff1a;paginationInnerInterceptor.setOverflow(false);

Unity中实现转盘抽奖效果(二)

如果要使转盘停止时转到到指定位置&#xff0c;应该如何做&#xff1f; 实现思路&#xff1a; 也就是在需要停止的分数的区间范围内&#xff0c;随机一个角度值&#xff0c;然后反推需要在哪个角度开始减速&#xff0c;如果转盘的当前角度和需要开始减速的角度有差值&#xf…

苍穹外卖04——Redis初入门 在店铺打烊or营业状态管理功能中的使用

Redis入门 redis简介 它以键值对的形式存储数据在内存中,并且以极高的性能和灵活性而著称,通常用于缓存、消息代理以及持久化数据。 - 基于内存存储,读写性能高- 适合存储热点数据(热点商品、资讯、新闻)- 企业应用广泛Windows版下载地址:https://github.com/microsoft…

深度学习每周学习总结R2(RNN-天气预测)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客R5中的内容&#xff0c;为了便于自己整理总结起名为R2&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 目录 0. 总结1. RNN介绍a. 什么是 RNN&#xff1f;RNN 的一般应用场景 b. 传统 RNN …

CUDA与Microsoft Visual Studio不兼容问题

简介&#xff1a;在安装一些 python库时&#xff0c;涉及到第三方库&#xff08;特别是需要引用 C 代码&#xff09;时&#xff0c;通常的安装方式会涉及到编译过程&#xff0c;通常称为"源代码安装"&#xff08;source installation&#xff09;&#xff0c;或是 “…

WordPress网站中如何修复504错误

504网关超时错误是非常常见的一种网站错误。这种错误发生在上游服务器未能在规定时间内完成请求的情况下&#xff0c;对访问者而言&#xff0c;出现504错误无疑会对访问体验大打折扣&#xff0c;从而对网站的转化率和收入造成负面影响。 504错误通常源于服务器端或网站本身的问…