Linux下安装/使用mariadb

2023-10-31

第一章:mariadb在rhel7上的使用

rhel7及以上系统默认安装了mariadb(低版本)
如果系统中没有装,虚拟机的话 ,挂载iso,配置iso源,yum -y install mariadb mariadb-server即可(7/8适用)
注意:只安装mariadb,maraidb服务起不来!!!


下图列举了rhel7.3自带的版本,本章操作以rhel7.3为例
mariadb
所以,此处记录一下使用系统自带的mariadb


  1. 启动mariadb服务
systemctl start mariadb
  1. 设置mariadb服务为开启自启(自愿)
systemctl enable mariadb
  1. 设置账户密码(注:默认root无密码)
# 按照提示,一步步执行即可。初始root无密码
mysql_secure_installation
  1. 密码设置成功后,测试登录
# 用户为root,密码为123456
mysql -uroot -p123456

第二章:mariadb在rhel6上的安装

rhel6上面没有自带mariadb,如果要使用,需要自行安装。
操作步骤见下,可能略有不同
参考文章:CentOS6下编译安装MariaDB


上述链接提供了两种方式

(1)编译源码包(比较慢)

  1. 安装前环境准备
# 1.安装依赖
yum -y install cmake gcc gcc-c++ openssl-devel ncurses-devel
# 2.准备源码包,下载地址:http://archive.mariadb.org/
mariadb-5.5.43.tar.gz
# 3.创建数据存放目录和配置文件目录
mkdir /mydata
mkdir /etc/mysql
  1. 预编译安装
# 1.解压mairadb-5.5.43.tar.gz
tar -zxvf mariadb-5.5.43.tar.gz
# 2.进入解压后的目录
cd mariadb-5.5.43
# 3.执行cmake命令预编译
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb-5.5.43 -DMYSQL_DATADIR=/mydata  -DSYSCONFDIR=/etc/mysql/ -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
# -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb-5.5.43:编译后存放路径
# -DMYSQL_DATADIR=/mydata:数据存放目录
# -DSYSCONFDIR=/etc/mysql:配置文件存放目录
  1. 编译安装
make && make install

(2)二进制包安装(比较推荐)

  1. 安装前环境准备
# 1.组和用户:mysql
useradd -r mysql
groupadd -r mysql
# 2.数据存放目录
mkdir -p /mydata
# 3.配置文件目录
mkdir -p /etc/mysql
# 4.二进制包:下载路径http://archive.mariadb.org/
mariadb-5.5.43-linux-x86_64.tar.gz

2.安装

# 1.解压mariadb-5.5.43-linux-x86_64.tar.gz到/usr/local目录中
tar  -zxvf  mariadb-5.5.43-linux-x86_64.tar.gz  -C  /usr/local
mv /usr/local/mariadb-5.5.43-linux-x86_64 /usr/local/mariadb-5.5.43	
# 2.将解压后的目录链接为mysql(ps:不要提前创建/usr/local/mysql目录)
ln  -sv  /usr/local/mariadb-5.5.43  /usr/local/mysql
# 3.进入mysql目录,将所有文件属主改为root,属组改为mysql
cd  /usr/local/mysql
chown  -Rv root:mysql  ./*
# 4.执行scripts目录下mysql_install_db文件,并指明数据存放目录和用户
scripts/mysql_install_db  --datadir=/mydata  --user=mysql	# 注意当前路径为:/usr/local/mysql

在这里插入图片描述

3.安装后配置

# 1.将support-files目录下mysql.server文件复制为/etc/rc.d/init.d/mysqld文件
cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
# 2.将其添加到chkconfig启动项
chkconfig --add mysqld
# 3.将support-files目录下my-large.conf复为/etc/mysql/my.cnf文件
cp support-files/my-large.cnf /etc/mysql/my.cnf
# 4.编辑/etc/mysql/my.cnf文件,在[mysqld]添加一下三项(我就添加了一个)
datadir=/mydata
# innodb_file_per_table=on
# skip_name_resolve=on

# 5.配置环境变量,并执行查看
cat /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH #文件内容
# 生效
source /etc/profile.d/mysql.sh
echo $PATH
  1. 安装完成验证

(1)理想情况

# 1.启动mysqld服务并查看状态
service mysqld status
service mysqld  start
# 2.抓端口
netstat -ntlp | grep mysql # 看到3306基本就是ok了

成功示例图:

成功


(2)报错情况(mysqld服务起不来)

下面写了一下我遇到的三个错误:(不保证适应所有情况)

# 报错a:ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql)
# 解决a:删掉/var/lock/subsys/mysql,再重启服务;
#				重启命令:/etc/init.d/mysql start(一般就会报成功了)
# 注意:重启服务命令不要用service  mysqld  start了,用了还会报同样的错

# 报错b:服务通过上述命令启动成功后,查看服务状态(service mysqld status),
#				显示ERROR! MySQL is running but PID file could not be found
# (也不算解决)解决b:我是没有理会,抓一下mysqld,看看端口开了没,开了应该就没啥问题

# 报错c:/etc/init.d/mysqld: line 213: my_print_defaults: command not found
#       Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe
# 解决c:多半是做链接的时候错了!链接/usr/local/mariadb***到/usr/local/mysql的时候不要提前创建mysql文件夹;
#		提前创建了,目录会多一层,会成为/usr/local/mysql/mariadb***,就会对应不上导致报错!!!(我报错的时候,就是这个问题!)
  1. 启动mysql服务端

mysql #下图为启动成功示意图

在这里插入图片描述
问题解决参考文章:
1.ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
2.解决MySQL is running but PID file could not be found
3.解决Linux:-bash: mysql: 未找到命令 问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux下安装/使用mariadb 的相关文章

  • 无法通过 SSH 连接到 Google 计算引擎

    我在一个新项目中设置了一个新的 Google Compute Engine 实例 我启动实例并使用命令gcloud init连接到我的项目 然后我使用命令sudo gcloud compute ssh instance 1 它引导我完成 S
  • 无法使用 linux perf 对硬件缓存事件进行采样

    由于某种原因 我无法采样 perf record 硬件缓存事件 perf record e L1 dcache stores a c 100 sleep 5 perf record Woken up 1 times to write dat
  • 如何在bash中使用kill SIGUSR2?

    我在linux中使用iptraf来监控网络流量 shell命令是 让iptraf在后台运行 iptraf s eth0 f B L traffic dat 如果我想得到结果 我必须先停止 iptraf 所以我使用 shell 命令 kill
  • SO_BINDTODEVICE Linux 套接字选项的问题

    我有一台带有两个网卡的电脑 一 eth0 用于 LAN 互联网 另一个用于与一个微控制器设备进行 UDP 通信 微控制器有一个 IP 192 168 7 2 和一个 MAC 地址 第二个电脑网络适配器 eth1 有 192 168 7 1
  • 如何从脚本编辑 /etc/sudoers?

    我需要编辑 etc sudoers从脚本中添加 删除白名单中的内容 假设我有一个可以处理普通文件的命令 我如何将其应用到 etc sudoers 我可以复制并修改它 然后有visudo用修改后的副本替换原始版本 通过提供我自己的脚本 EDI
  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • 何时用引号将 shell 变量括起来?

    我应该或不应该在 shell 脚本中用引号括住变量吗 例如 下列说法正确的是 xdg open URL eq 2 or xdg open URL eq 2 如果是这样 为什么 一般规则 如果它可以为空或包含空格 或实际上任何空格 或特殊字符
  • 任何退出 bash 脚本但不退出终端的方法

    当我使用exitshell 脚本中的命令 该脚本将终止终端 提示符 有什么方法可以终止脚本然后停留在终端中吗 我的剧本run sh预计通过直接获取或从另一个脚本获取来执行 编辑 更具体地说 有两个脚本run2 sh as run sh ec
  • 使用 shell 脚本发送 HTML 邮件

    如何使用 shell 脚本发送 HTML 电子邮件 首先 您需要撰写消息 最低限度由这两个标头组成 MIME Version 1 0 Content Type text html 以及适当的消息正文 p Hello world p 获得后
  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • Vagrant 遇到问题 - “404 - 未找到”

    我正在尝试使用 Vagrant 制作一个 LAMP 盒子 有人告诉我它使用起来非常简单 我对网络和虚拟机完全陌生 对 Linux Ubuntu 的经验也很少 我目前已尝试按照官方文档页面上的教程进行操作 http docs vagrantu
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • /sys/device/ 和 dmidecode 报告的不同 CPU 缓存大小

    我正在尝试获取系统中不同缓存级别的大小 我尝试了两种技术 a 使用 sys device 中的信息 这是输出 cat sys devices system cpu cpu0 cache index1 size 32K cat sys dev
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • 如何在线程创建和退出时调用函数?

    include

随机推荐

  • 利用python建立股票量化交易系统(一)——小市值选股票模型

    从今天开始正式开启我的博客之旅 博客内容全部是我自己的量化心得 主要还是为自己将来中工作之中遇到相似问题 可以方便的找到答案 如果能帮到有相似问题的其他同学 我也很开心 如果帮不到的话 不喜勿喷 如果文章中有什么不对的地方 欢迎批评指正 建
  • 新版QQ代挂系统源码四套模板

    介绍 代挂源码 代挂对接教程源码已简洁版优化框架数据 对接代挂教程均在 压缩文件里 源码进行了优化 原后门已清楚掉 上传源码解压即可安装访问网址 网盘下载地址 https zijiewangpan com VylBgT70aLu 图片
  • 连接Charles后,小程序无法打开,提示“运行失败”解决方法

    今天在使用Charles抓包的过程中 手机端安装了证书 并且证书安装成功 使用手机浏览器可以正常抓包 但是在使用微信打开小程序准备测试时 无法打开 并且提示 运行环境失败 于是做了以下几个操作 最后可以成功抓包 1 微信版本升级 将微信卸载
  • Java代码中如何判断一个HashMap对象是否为空呢?

    转自 Java代码中如何判断一个HashMap对象是否为空呢 下文讲述检测HashMap集合对象是否无元素的方法分享 如下所示 实现思路 使用isEmpty方法即可检测HashMap中的元素是否为空 isEmpty 语法 hashmap i
  • 学习Javascript的书籍

    原文地址 http www ruanyifeng com blog 2008 01 javascript book recommendation html 作者 阮一峰 日期 2008年1月 9日 昨天 ppip同学留言 你的js主要是用什
  • SQL Server(2019)数据库----数据查询(数据库系统概论第五版)

    目录 一 课本例题查询 1 查询全体学生的姓名及其出生年份 2 查询全体学生的姓名 出生年份和所在的院系 要求用小写字母表示系名 3 查询选修了课程的学生学号 4 查询不是数学系 计算机系学生的姓名和性别 5 查询选修了3号课程的学生的学号
  • Redis面试题(四)

    文章目录 前言 一 锁互斥机制 二 watch dog 自动延期机制 三 可重入加锁机制 四 释放锁机制 五 上述 Redis 分布式锁的缺点 六 使用过 Redis 分布式锁么 它是怎么实现的 总结 前言 锁互斥机制 watch dog
  • QT中信号与槽的连接

    本文章主要通过代码的形式讲解QT中connect函数对于信号和槽函数的连接 include mainwindow h include ui mainwindow h include
  • 搞事情之使用七牛云的注意事项

    原文地址 PJ 的 iOS 开发日常 前言 本博客最初所采用的图床就是七牛 当时因为第一次使用图床之类的服务 没有进行一个比较好的筛选 并且没有考虑过多的细节 所以直接采用了七牛 经过一段时间后 因为博客访问量上去了 超出七牛每月的免费流量
  • C++ malloc/free/new/delete详解(内存管理)

    这里写目录标题 malloc free 典型用法 内存分配 实现过程 brk和mmap 申请小于128k的内存 申请大于128k的内存 释放内存 brk和mmap的区别 new delete 典型用法 内存分配 实现过程 new delet
  • 生信入门(六)——单细胞分析(Seurat)

    生信入门 六 单细胞分析 Seurat 文章目录 生信入门 六 单细胞分析 Seurat 一 数据导入 1 数据来源 2 数据导入 二 标准预处理 1 QC和选择细胞进行进一步分析 2 规范化数据 3 识别高度可变的特征 特征选择 4 缩放
  • Win10家庭版安装Docker for windows遇坑总结

    Win10家庭版安装Docker for windows遇坑总结 安装前的简单了解 安装步骤 添加Hyper v 安装Docker for windows 其他问题 因为做毕设需要结合本组学长开发的系统 不得已开始入坑学习docker 遇到
  • 程序员面试题精选100题(44)-数值的整数次方

    程序员面试题精选100题 44 数值的整数次方 题目 实现函数double Power double base int exponent 求base的exponent次方 不需要考虑溢出 方法一 由于输入的exponent是个int型的数值
  • AR-虚实融合文献阅读整理(二)

    一 增强现实中虚实融合和人机交互技术的研究与应用 黄震宇 基于标志物的识别 利用opencv和三维图形引擎OGRE实现虚实融合展示系统 人机交互方案采用PrimeSense的深度摄像头 通过计算机视觉处理 重建了人体三维谷歌系统定义体感语义
  • C++:CMake常用变量【CMAKE_CXX_FLAGS、CMAKE_BUILD_TYPE、×_BINARY_DIR】

    CMake共用七种变量 如下所示 提供信息的变量 控制变量 描述系统的变量 控制构建过程的变量 语言变量 CTest变量 CPack变量 一 CMake变量引用的方式 使 进 变量的引 在 IF 等语句中 是直接使 变量名 不通过 取值 二
  • Linux系统中/etc/rc.local和/etc/rc.d/rc.local的区别

    etc rc d rc local 用于添加开机启动命令 etc rc local是 etc rc d rc local的软连接 转载于 https www cnblogs com Samuel Leung p 10477162 html
  • 【Spring

    上文讲了 Spring 资源处理 本文讲一下resource的扩展接口相关 资源处理扩展 ResourceLoader 接口 定义 图解 示例 策略 ResourcePatternResolver接口 ResourceLoaderAware
  • 实例修改类属性python_Python类属性和实例属性的优先级

    可以看到 属性可以分为类属性和实例属性 那么问题就来了 如果类属性和实例属性名字相同时 会怎么样 这就涉及Python中类属性和实例属性的优先级的问题了 我们可以做一个实验 在前面类定义的基础上 在实例属性中 也初始化一个localtion
  • DS18B20温度传感器原理及使用教程

    1 芯片简介 DS18B20数字温度传感器提供9 Bit到12 Bit的摄氏温度测量精度和一个用户可编程的非易失性且具有过温和低温触发报警的报警功能 DS18B20采用的1 Wire通信即仅采用一个数据线 以及地 与微控制器进行通信 该传感
  • Linux下安装/使用mariadb

    文章目录 第一章 mariadb在rhel7上的使用 第二章 mariadb在rhel6上的安装 1 编译源码包 比较慢 2 二进制包安装 比较推荐 第一章 mariadb在rhel7上的使用 rhel7及以上系统默认安装了mariadb