Linux下安装/使用mariadb

第一章: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: 未找到命令 问题

猜你喜欢

转载自blog.csdn.net/Sanayeah/article/details/131463115