MariaDB在Linux下的安装配置与除错

    CentOS较低版本使用的数据库默认为MySQL,MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中,甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险.后来Michael以自己女儿的名字开发了MySQL的分支数据库MariaDB,取代MySQL成为CentOS7以来默认的数据库.

一.使用yum安装

  1.使用默认的CentOS-BASE.repo安装.

    非常简便的方式,CentOS7的base仓库已经使用MariaDB作为默认的数据库,通常安装CentOS7时已经安装了MariaDB.

    可以使用:

       rpm -q mariadb 或 systemctl status mariadb 等命令查看是否安装,或者在yum install mariadb*时会告诉你有没有安装.

    如果没有安装MariaDB,直接使用命令:

       yum install mariadb* 完成mariadb的安装.

    如果默认源无法安装,可以考虑自行添加源或使用包安装.

 

  2.如果源的仓库中没有MariaDB (Linux的其他发行).

    这时可以配置yum,添加仓库 (以apt-get方式安装与之类似,但有不同之处)

    可以看MariaDB的官方说明(文档里有支持的平台等信息):

        https://mariadb.com/kb/en/library/mariadb-package-repository-setup-and-usage/

    然后使用命令:

        curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

        (在本地执行这个网站的一个shell脚本,可以直接查看这个脚本的源码,能更加清楚原理)

    脚本执行完毕后,会在yum的配置文件里(CentOS7是/etc/yum.repos,其他发行会有不同)看到多了mairadb.repo仓库.

    然后使用命令:

        yum install mariadb即可完成安装

 

二.使用安装包安装

    这种方法我估计一般不会用到,但是某些情况下,比如:无法访问外网的私有云计算生产环境中,可以先下载包,再用一些网络协议(ftp,sftp等)在局域网中实现put,get等copy操作.

    先去官网看看:

        https://mariadb.com/downloads

    在下载页面选择一个下载就行了

    然后将源码放在/usr/local/src里,解压后的目录放在/usr/local或/opt及其子目录里,符合规范!如果你有一定的Linux管理经验,那你就知道规范的重要性了.另外如果你对Linux操作系统比较陌生,那你一定注意目录,当前目录和你要到的目录,像一些新手很容易犯这种错误.

    解压:

        tar -xf mariadb-10.3.8-rhel-7-x86_64-rpms.tar

    如果你是一只老鸟,我相信你一定会看README,里面告诉你该把mariadb目录放在/opt中,然后这里面包含了所有的rpm,包含依赖等.

 

    使用其中的命令:

        ./setup_repository

    设置仓库.

 

     然后你会看到/etc/yum.repos多了一个mariadb.repo,和之前的添加源仓库一样,差别是:此时安装包已经下载好,使用 yum install mariadb-server不再从网上下载,而是用本地的安装包.

 

三.配置MariaDB

    安装完成后,较老版本的root密码默认为空,即输入命令 mysql -u root -p 回车后不需要输入密码,直接回车就可登陆.新版本登陆可能需要密码,如果安装过程中没有配置过密码,则默认密码在文件/var/log/mysqld.log中:

        vim /var/log/mysqld.log

    然后查找password关键字即可 ("/passwrod")

    如果忘记密码,可以设置环境变量 MYSQLD_OPTS:

        systemctl stop mariadb (首先关闭mariadb服务)

        systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" (跳过权限认证)

        systemctl start mariadb (开启服务)

    现在无需密码,mysql -u root -p回车不需要密码,直接回车即可登陆,然后以 SQL语句修改root密码,或者是UPDATE数据库mysql中的user表的相关记录即可完成修改(原理都是更新mysql中的user表中的记录,可以自己找教程"mairiadb 修改用户密码")

    修改密码完成后:

        systemctl stop mariadb

        systemctl unset-environment MYSQLD_OPTS (使环境变量失效)

        systemctl start mariadb

    查看MariaDB是否开启:

        systemctl status mariadb

        或者

        netstat -tunlp | grep 3306  (MariaDB开启3306端口)

    确认开启后,现在就可以用新密码登陆了.

    最后为了安全起见,将家目录里的 ".mysql_history"中的修改密码记录删除, root的家中".mysql_histroy"中记录的是root在mariadb中的历史操作.

 

四.除错

  如果你之前安装过MySQL或其他版本MariaDB,当安装完成后,想要开启MariaDB时,可能失败.

  使用命令:

    systemctl status mariadb 或 journalctl -xe

  可以查看除错日志,一般会告诉你清空/var/lib/mysql中的内容,然后再重新开启mariadb就可以了.

  原因可能与socket连接和数据库dir有关,在/etc/my.conf中:

        datadir=/var/lib/mysql
        socket=/var/lib/mysql/mysql.sock

    /var/lib/mysql中的文件mysql.sock,这个文件用于连接数据库(本地或TCP/IP连接),不同的数据库配置不同.同时数据保存的记录也可能有差异.所以上一数据库的/var/lib/mysql目录中的内容在现在的数据库中无法使用,导致启动失败.删除该目录内的所有内容后,再重启数据库,可将新的配置文件写入该目录,启动成功. 

 

   

    

转载于:https://my.oschina.net/u/3887035/blog/1862094

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值