11.6 MariaDB安装
时间:2022-04-27
本文章向大家介绍11.6 MariaDB安装,主要内容包括安装mariadb、安装过程、机器装了mysql和mariadb、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
安装mariadb
- cd /usr/local/src
- wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
- tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
- mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb
- cd /usr/local/mariadb
- ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
- cp support-files/my-small.cnf /usr/local/mariadb/my.cnf
- vi /usr/local/mariadb/my.cnf //定义basedir和datadir
- cp support-files/mysql.server /etc/init.d/mariadb
- vim /etc/init.d/mariadb //定义basedir、datadir、conf以及启动参数
- /etc/init.d/mariadb start
安装过程
- mariadb和mysql安装过程类似
- 首先切换到/usr/local/src目录下
[root@hf-01 ~]# cd /usr/local/src
[root@hf-01 src]#
- 然后在官网下载10.2.6版本(官网下载很慢,因为地址在美国),自己百度云有提前下载好的,只需要下载到windows,然后 rz 命令从windows上传到linux中
- rz命令,安装包——>yum install -y lrzsz
[root@hf-01 src]# ls
mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
- 再去使用 tar命令 进行解压
[root@hf-01 src]# tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
- 解压完,去查看下文件
[root@hf-01 src]# ls
mariadb-10.2.6-linux-glibc_214-x86_64 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
[root@hf-01 src]#
- 并将解压的包移动到/usr/local下,并改名叫mariadb——>这里的改名,是为了之前安装mysql的名字有所区分
[root@hf-01 src]# mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb
[root@hf-01 src]#
- 然后进入到/usr/local/mariadb 目录下去
[root@hf-01 src]# cd !$
cd /usr/local/mariadb
[root@hf-01 mariadb]#
- 创建mysql用户,创建data——>这里因为之前安装mysql的时候,已经创建过了所以不需要创建useradd mysql
[root@hf-01 mysql]# useradd mysql
[root@hf-01 mysql]# mkdir /data/
- 初始化,./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
- 定义basedir=/usr/local/mariadb/ 若不定义 ,就会去找mysql了
[root@hf-01 mariadb]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
- 查看是否初始化成功,看 echo $? 执行结果是否为0,若是 0 ,则表示初始化成功
[root@hf-01 mariadb]# echo $?
0
[root@hf-01 mariadb]#
- 或者查看/data/mariadb/目录下,是否生成了一些目录——>和/data/mysql/ 类似
[root@hf-01 mariadb]# ls /data/mariadb/
aria_log.00000001 aria_log_control ib_buffer_pool ibdata1 ib_logfile0 ib_logfile1 mysql performance_schema test
[root@hf-01 mariadb]#
- 拷贝配置文件,定义启动脚本
- 配置文件存放在/usr/local/mariadb/suport/files/目录下,会看到有很多配置文件
[root@hf-01 mariadb]# cd /usr/local/mariadb/
[root@hf-01 mariadb]# ls support-files/
binary-configure my-large.cnf mysql-log-rotate wsrep_notify
magic my-medium.cnf mysql.server
my-huge.cnf my-small.cnf policy
my-innodb-heavy-4G.cnf mysqld_multi.server wsrep.cnf
[root@hf-01 mariadb]#
- 打开support-files/my-small.cnf 文件
- my-small.cnf、my-medium.cnf、my-large.cnf这三个配置文件区别在于 缓存的数值大小不同
- 根据内存大小的不同,它可以给你指定合适的缓存,这样能够让你的mysql达到更高效的性能
[root@hf-01 mariadb]# vim support-files/my-small.cnf
其中下面的配置文件
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
- 因为我们做实验,内存本来就不大,可以使用最小的一个my-small.cnf ,拷贝过去
- 若是内存有几十个G,可以使用my-huge.cnf拷贝过去,然后根据实际的运行情况 ,去适当的调整参数
- 拷贝文件到/usr/local/mariadb/my.cnf
- mariadb这里就不放到/etc/my.cnf下了,因为这是mysql用的,这里为了区分到/usr/local/mariadb/my.cnf
[root@hf-01 mariadb]# cp support-files/my-small.cnf /usr/local/mariadb/my.cnf
[root@hf-01 mariadb]#
- 编辑配置文件 /usr/local/mariadb/my.cnf——>这里面配置不用修改
[root@hf-01 mariadb]# vim /usr/local/mariadb/my.cnf
配置参数在[mysqld]这一块
server-id = 1 //这是做主从复制的
- 拷贝启动脚本到 /etc/init.d/mariadb
[root@hf-01 mariadb]# cp support-files/mysql.server /etc/init.d/mariadb
[root@hf-01 mariadb]#
- 编辑启动脚本
[root@hf-01 mariadb]# vim /etc/init.d/mariadb
定义 basedir=/usr/local/mariadb
定义 datadir=/data/mariadb
自定义参数 conf=$basedir/my.cnf
在定义conf后,还需要在 启动命令下面指定下——>在一般模式下,搜索 /start 启动命令
在 $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &
中,增加--defaults-file="$conf",最后为 $bindir/mysqld_safe --defaults-file="$conf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &
并保存退出
- 在启动前,先查看是否有mysql服务在启动
[root@hf-01 mariadb]# ps aux |grep mysql
root 2526 0.0 0.0 112656 992 pts/0 R+ 00:10 0:00 grep --color=auto mysq
[root@hf-01 mariadb]#
- 启动mariadb服务,并去查看是否启动
- 查看是否启动,用ps aux |grep mysql 也可以,启动的服务进程是mysqld,因为mariadb是mysql的一个分支
[root@hf-01 mariadb]# /etc/init.d/mariadb start
Reloading systemd: [ 确定 ]
Starting mariadb (via systemctl): [ 确定 ]
[root@hf-01 mariadb]# ps aux |grep mariadb
root 2543 0.0 0.1 115348 1748 ? S 00:11 0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mysql --pid-file=/data/mysql/hanfeng.pid
mysql 2659 5.5 5.7 1125580 58008 ? Sl 00:11 0:01 /usr/local/mariadb/bin/mysqld --defaults-file=/usr/local/mariadb/my.cnf --basedir=/usr/local/mariadb --datadir=/data/mysql --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mysql/hanfeng.err --pid-file=/data/mysql/hanfeng.pid --socket=/tmp/mysql.sock --port=3306
root 2708 0.0 0.0 112656 992 pts/0 R+ 00:11 0:00 grep --color=auto mariadb
[root@hf-01 mariadb]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2246/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1147/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2246/master
tcp6 0 0 :::3306 :::* LISTEN 2659/mysqld
tcp6 0 0 :::22 :::* LISTEN 1147/sshd
[root@hf-01 mariadb]#
- 若是在服务器上只安装了mariadb,没有mysql,那完全可以把my.cnf放在/etc目录下,那启动脚本就不需要conf变量了
机器装了mysql和mariadb
- 一台机器上装了mysql,又装了mariadb (这种既装了mysql和mariadb的概率很低),因为有多个配置文件在/etc/my.cnf,不论是在初始化的时候,还是启动多个mysql服务的时候,它都会影响正常的结果,所以要么不把 my.cnf 放在etc目录下,一旦放了,很有可能受到影响。
- 问题:
- 用ps aux |grep mysql会发现其中的--datadir=/data/mysql,并不是我们预期的--datadir=/data/mariadb
- 这是因为调用了/etc/my.cnf中的配置,有人可能会问,不是已经指定了--defaults-file=/usr/local/mariadb/my.cnf 配置文件,为什么还要去加载/etc/my.cnf中的配置呢,是因为--defaults-file=/usr/local/mariadb/my.cnf文件中,并没有去定义dataidr 这个选项,然后去调用的时候,没有在配置文件中找到这个参数,然后在/etc/my.cnf中调用
- 解决方法:
-
- 需要去编辑指定的配置文件,在 /usr/local/mariadb/my.cnf 文件中的 [mysqld] 下加入datadir= /data/mariadb (若是datadir加在其他地方是无效的)
- 当然不是只能拥有一个数据库,只要将各个参数配置完善,一个机器上可以跑多个mysql服务
-
- 在修改完配置文件后,启动/etc/init.d/mariadb start (第一次启动mariadb服务)——>若是mariadb服务已经启动了,则/etc/init.d/mariadb restart ,但显示的结果还未正常,那我们就直接killall mysqld服务,然后再ps aux |grep mysql查看下服务是否杀死
-
- 最后再来 /etc/init.d/mariadb restart 开启mariadb服务,会看到显示正常。
[root@hf-01 mariadb]# ps aux |grep mysql
root 3123 0.0 0.1 115392 1740 ? S 04:52 0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mariadb --pid-file=/data/mariadb/hf-01.pid
mysql 3242 3.6 6.2 1125520 62780 ? Sl 04:52 0:00 /usr/local/mariadb/bin/mysqld --defaults-file=/usr/local/mariadb/my.cnf --basedir=/usr/local/mariadb --datadir=/data/mariadb --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mariadb/hf-01.err --pid-file=/data/mariadb/hf-01.pid --socket=/tmp/mysql.sock --port=3306
root 3278 0.0 0.0 112672 984 pts/0 R+ 04:53 0:00 grep --color=auto mysql
[root@hf-01 mariadb]#
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Gradle构建springBoot项目
- python菜鸟教程 | if elif else 判断
- 图解面试题:人均付费如何分析?
- 面试官拿System.out.println()考了我半个小时?我傻了
- 为何总给外卖打差评?我们来数据分析一下!
- 解决Linux html生成图片中文乱码
- 前端必知必会-BFC案例剖析
- 分析Guava并发工具类Futures
- kafka高可用集群搭建
- ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
- ELK7.x日志系统搭建 3. 采用轻量级日志收集Filebeat
- ELK7.x日志系统搭建 2. Nginx、Cluster等日志收集
- Java8 Stream
- 性能测试必备知识(4)- 使用 stress 和 sysstat 分析平均负载过高的场景
- 高并发利器-guava分流与缓存