Centos7.4安装mariadb10

Centos7.4安装mariadb10

一、下载mariadb源码包

官网地址:https://downloads.mariadb.org/
安装MariaDB之前,首先要安装cmake,另外为了保证不缺依赖,使用yum或者rpm安装依赖:readline-devel,zlib-devel,openssl-devel,libaio-devel并且readline-devel依赖于ncurses-devel,如果使用yum的话会自动将所需依赖安装好

二、安装依赖
yum -y install readline-devel
yum -y install zlib-devel
yum -y install openssl-devel
yum -y install libaio-devel
三、安装cmake

下载地址:
https://cmake.org/download/

# tar -zxvf cmake-3.9.3.tar.gz 
# cd cmake-3.9.3
# ./configure
# gmake && gmake install
四、提前预定mysql的安装目录为/usr/local/mysql并且数据目录为/data1/mysql,这里要建立用户和目录,并且赋予mysql用户权限,操作如下:
# groupadd -r mysql
# useradd -g mysql -s /sbin/nologin mysql
# mkdir /usr/local/mysql
# mkdir -p /data1/mysql
# chown -R mysql:mysql /data1/mysql/
五、解压安装mariadb
# tar -xvzf mariadb-10.1.18.tar.gz
# cd mariadb-10.1.18/
#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data1/mysql -DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

注意:如果万一执行中有了错误,可以执行: rm -f CMakeCache.txt 删除编译缓存,让指令重新执行,否则每次读取这个文件,命令修改正确也是报错.

# make && make install
六、执行完成也就是安装完成了,现在执行 cd /usr/local/mysql/ 进入mysql安装目录分别执行下面命令:
# chown -R mysql:mysql .
# scripts/mysql_install_db --datadir=/data1/mysql --user=mysql
# chown -R root .
# cp support-files/mysql.server /etc/init.d/mysqld
七、将mysqld添加至系统服务
# chkconfig --add mysqld   # 添加至系统服务
# chkconfig mysqld on      # 设置开机自启动

现在如果启动可能会报错,原因是日志目录没有建立,默认是/var/log/mariadb/mariadb.log,后来也可以修改,现在执行:mkdir /var/log/mariadb 建立日志目录,然后执行: /etc/init.d/mysqld start 或者 systemctl start mysqld.service 都可以启动mysql服务
启动服务后,还不能马上进入mysql shell界面,原因是刚才编译时执行本地socket为:/tmp/mysql.sock但是查看/etc/my.cnf中配置的位置却是:/var/lib/mysql/mysql.sock,现在执行命令: ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 建立软链接即可
为了方便可以将mysql目录添加到环境变量,现在可以执行 ./bin/mysql 直接进入MariaDB交互式界面了,默认root用户密码为空:

注:MariaDB 5.5及更高版本使用cmake编译,所有得先安装cmake,这里使用编译安装cmake.
本文参考:参考:https://www.cnblogs.com/freeweb/p/5991374.html

常见问题:

1、安装cmake源码包的时候无法 ./configure编译,报错如下
在这里插入图片描述
提示缺少C库,需要yum安装 gcc、gcc-c++包
命令如下:

yum install gcc gcc-c++

2、启动报错
在这里插入图片描述
查看错误日志
在这里插入图片描述第一种情况是你在进行二进制安装mariadb的时候系统已经安装有了mariadb,这个时候需要先yum删除已经安装的数据库

# yum remove mariadb

第二种情况是数据库已经占用了 /tmp/mysql.sock,这个时候需要先删除mysql.sock文件

# rm -rf /tmp/mysql.sock

然后再重启数据库

3、mysql启动时报 Bind on unix socket Address already in use的问题处理
3-1).问题描述:
版本:mariadb 10.0.2
启动mysql:
/apps/svr/mariadb10/bin/mysqld_safe --defaults-file=/apps/dbdat/mariadb10_data3306/my3306.cnf --socket=/tmp/mysql3306.sock &
无法启动,mysql进程退出。

3-2).问题分析:
检查error log,如下:
160826 15:33:33 [Note] Server socket created on IP: ‘0.0.0.0’.
160826 15:33:33 [ERROR] Can’t start server : Bind on unix socket: Address already in use
160826 15:33:33 [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql3306.sock ?
160826 15:33:33 [ERROR] Aborting

160826 15:33:33 [Note] InnoDB: FTS optimize thread exiting.
160826 15:33:33 [Note] InnoDB: Starting shutdown…
160826 15:33:36 [Note] InnoDB: Shutdown completed; log sequence number 452295626292
160826 15:33:36 [Note] /apps/svr/mariadb10/bin/mysqld: Shutdown complete

160826 15:33:36 mysqld_safe mysqld from pid file /apps/dbdat/mariadb10_data3306/mysql.pid ended

上面提示unix socket /tmp/mysql3306.sock 被占用,用ps -ef|grep mysql检查没有其它mysql进程.用netstat -an|grep 3306检查端口也不存在。
对比分析,正常关闭mysql时,/tmp/mysql3306.sock文件是不存在的,而现在mysql已关闭后,还存在/tmp/mysql3306.sock文件。
猜测是由于上次mysql未正常关闭或关闭异常引起。

3-3)问题解决:
在root用户下,删除/tmp/mysql3306.sock文件,再重启mysql。

4、将mysql目录添加到环境变量

临时:
# export PATH=$PATH:/usr/local/mysql/bin
永久:
# vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin
export PATH
# source /etc/profile

好了,这就是Centos7.4安装mariadb10的全部过程了,如有问题可与博主一起交流讨论!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值