11.6 MariaDB安装

安装mariadb

安装过程

  • mariadb和mysql安装过程类似
  1. 首先切换到/usr/local/src目录下
[root@hf-01 ~]# cd /usr/local/src
[root@hf-01 src]# 
  1. 然后在官网下载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
  1. 再去使用 tar命令 进行解压
[root@hf-01 src]# tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
  1. 解压完,去查看下文件
[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]# 
  1. 并将解压的包移动到/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]# 
  1. 然后进入到/usr/local/mariadb 目录下去
[root@hf-01 src]# cd !$
cd /usr/local/mariadb
[root@hf-01 mariadb]# 
  1. 创建mysql用户,创建data——>这里因为之前安装mysql的时候,已经创建过了所以不需要创建useradd mysql
[root@hf-01 mysql]# useradd mysql
[root@hf-01 mysql]# mkdir /data/
  1. 初始化,./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
  1. 查看是否初始化成功,看 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]# 
  1. 拷贝配置文件,定义启动脚本
    • 配置文件存放在/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]# 
  1. 打开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
  1. 因为我们做实验,内存本来就不大,可以使用最小的一个my-small.cnf ,拷贝过去
  • 若是内存有几十个G,可以使用my-huge.cnf拷贝过去,然后根据实际的运行情况 ,去适当的调整参数
  1. 拷贝文件到/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]# 
  1. 编辑配置文件 /usr/local/mariadb/my.cnf——>这里面配置不用修改
[root@hf-01 mariadb]# vim /usr/local/mariadb/my.cnf

配置参数在[mysqld]这一块

server-id       = 1   //这是做主从复制的
  1. 拷贝启动脚本到 /etc/init.d/mariadb
[root@hf-01 mariadb]# cp support-files/mysql.server /etc/init.d/mariadb
[root@hf-01 mariadb]# 
  1. 编辑启动脚本
[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" "$@" &

并保存退出
  1. 在启动前,先查看是否有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]# 
  1. 启动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]# 
  1. 若是在服务器上只安装了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中调用
  • 解决方法:
    1. 需要去编辑指定的配置文件,在 /usr/local/mariadb/my.cnf 文件中的 [mysqld] 下加入datadir= /data/mariadb (若是datadir加在其他地方是无效的)
    • 当然不是只能拥有一个数据库,只要将各个参数配置完善,一个机器上可以跑多个mysql服务
    1. 在修改完配置文件后,启动/etc/init.d/mariadb start (第一次启动mariadb服务)——>若是mariadb服务已经启动了,则/etc/init.d/mariadb restart ,但显示的结果还未正常,那我们就直接killall mysqld服务,然后再ps aux |grep mysql查看下服务是否杀死
    1. 最后再来 /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]# 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏磨磨谈

rbd的ceph-backup增量备份本地恢复方法

这两篇文章里的方法都是基于rbd的快照去进行增量备份,之前文章里的恢复方法都是基于集群进行恢复,也就是需要一个集群进行导入,本篇将介绍另外一个方法,不基于集群进...

1152
来自专栏Golang语言社区

[Go 语言社区]Golang架构--服务器与客户端自定义传输规则--原创

对于写过架构的童鞋来说,自己封装传输规则也没有任何问题的,本文只是抛砖引玉,简单的说下我曾经和现在服务器使用的传输的规则,敬请看: 对于服务器...

3387
来自专栏前端小叙

查看端口被占用的情况以及如何解除端口占用

在windows安装好nginx之后,打开nginx.exe失败,我想应该是80端口被占用了,遂找到此方法。 注:以下命令需要在管理员权限下运行 以下文章主要以...

3545
来自专栏holer

如何从外网访问本地MariaDB数据库

本地安装了MariaDB数据库,只能在局域网内访问,怎样从公网也能访问内网MariaDB数据库?

1455
来自专栏holer

怎样从外网访问内网MongoDB数据库

本地安装了MongoDB数据库,只能在局域网内访问,怎样从公网也能访问本地MongoDB数据库?

2711
来自专栏holer

如何从外网访问局域网Apache HTTP Server

本地安装了Apache HTTP Server,只能在局域网内访问,怎样从公网也能访问本地Apache HTTP Server?

1901
来自专栏性能与架构

HAProxy配置文件结构

image.png 前面配置负载均衡的示例中,使用了一个简单的配置文件 global daemon maxconn 256 defaults mod...

2854
来自专栏静下来

PHP提示Fatal error: Maximum execution time of 30 seconds exceeded in

今天在更新另外一个网站插件的时候,出现了Fatal error: Maximum execution time of 30 seconds exceeded ...

3583
来自专栏安全运维

腾讯云 Windows Server 服务器安全运维与更新

终端窗口输入 gpedit.msc ,选择计算机配置 -》管理模版 -》Windows组件 ,下图 ↓

73411
来自专栏大数据-Hadoop、Spark

Unable to connect to zookeeper server within timeout: 6000

1.启动zookeeper 2.启动kafka 3.启动kafka-producer 4.启动kafka-consumer 5.生产一些消息 6.ka...

4156

扫码关注云+社区

领取腾讯云代金券