前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >11.6 MariaDB安装

11.6 MariaDB安装

作者头像
运维小白
发布2018-02-06 15:07:31
9650
发布2018-02-06 15:07:31
举报
文章被收录于专栏:运维小白

安装mariadb

安装过程

  • mariadb和mysql安装过程类似
  1. 首先切换到/usr/local/src目录下
代码语言:javascript
复制
[root@hf-01 ~]# cd /usr/local/src
[root@hf-01 src]# 
  1. 然后在官网下载10.2.6版本(官网下载很慢,因为地址在美国),自己百度云有提前下载好的,只需要下载到windows,然后 rz 命令从windows上传到linux中
    • rz命令,安装包——>yum install -y lrzsz
代码语言:javascript
复制
[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命令 进行解压
代码语言:javascript
复制
[root@hf-01 src]# tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
  1. 解压完,去查看下文件
代码语言:javascript
复制
[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的名字有所区分
代码语言:javascript
复制
[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 目录下去
代码语言:javascript
复制
[root@hf-01 src]# cd !$
cd /usr/local/mariadb
[root@hf-01 mariadb]# 
  1. 创建mysql用户,创建data——>这里因为之前安装mysql的时候,已经创建过了所以不需要创建useradd mysql
代码语言:javascript
复制
[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了
代码语言:javascript
复制
[root@hf-01 mariadb]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
  1. 查看是否初始化成功,看 echo $? 执行结果是否为0,若是 0 ,则表示初始化成功
代码语言:javascript
复制
[root@hf-01 mariadb]# echo $?
0
[root@hf-01 mariadb]# 
  • 或者查看/data/mariadb/目录下,是否生成了一些目录——>和/data/mysql/ 类似
代码语言:javascript
复制
[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/目录下,会看到有很多配置文件
代码语言:javascript
复制
[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达到更高效的性能
代码语言:javascript
复制
[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
代码语言:javascript
复制
[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——>这里面配置不用修改
代码语言:javascript
复制
[root@hf-01 mariadb]# vim /usr/local/mariadb/my.cnf

配置参数在[mysqld]这一块

server-id       = 1   //这是做主从复制的
  1. 拷贝启动脚本到 /etc/init.d/mariadb
代码语言:javascript
复制
[root@hf-01 mariadb]# cp support-files/mysql.server /etc/init.d/mariadb
[root@hf-01 mariadb]# 
  1. 编辑启动脚本
代码语言:javascript
复制
[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服务在启动
代码语言:javascript
复制
[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的一个分支
代码语言:javascript
复制
[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服务,会看到显示正常。
代码语言:javascript
复制
[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]# 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装mariadb
  • 安装过程
  • 机器装了mysql和mariadb
相关产品与服务
云数据库 MariaDB
腾讯云数据库 MariaDB(TencentDB for MariaDB) 让您轻松在云端部署、使用 MariaDB 数据库。MariaDB 是在 MySQL 版权被 Oracle 收购后,由 MySQL 创始人 Monty 创立,其版权授予了“MariaDB基金会(非营利性组织)”以保证 MariaDB 永远开源,良好的开源策略,是企业级应用的最优选择,主流开源社区系统/软件的数据库系统,均已默认配置 MariaDB。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档