CentOS7 下使用 yum 安装 MariaDB

本贴最后更新于 2349 天前,其中的信息可能已经时异事殊

CentOS 6 或早期的版本中提供的是 MySQL 的服务器/客户端安装包,但 CentOS 7 已使用了 MariaDB 替代了默认的 MySQL。MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可 MariaDB 的目的是完全兼容 MySQL,包括 API 和命令行,使之能轻松成为 MySQL 的代替品。

Linux 下安装 MariaDB 官方文档参见:https://mariadb.com/kb/zh-cn/installing-mariadb-with-yum/

1. 全部删除 MySQL/MariaDB

MySQL 已经不再包含在 CentOS 7 的源中,而改用了 MariaDB;

1.使用 rpm -qa | grep mariadb 搜索 MariaDB 现有的包:

如果存在,使用 rpm -e --nodeps mariadb-*全部删除:

[root@localhost ~]# rpm -qa | grep mariadb mariadb-server-5.5.52-1.el7.x86_64 mariadb-libs-5.5.52-1.el7.x86_64 [root@localhost ~]# rpm -e mysql-* 错误:未安装软件包 mysql-*

2.使用 rpm -qa | grep mariadb 搜索 MariaDB 现有的包:

如果存在,使用 yum remove mysql mysql-server mysql-libs compat-mysql51 全部删除;

[root@localhost ~]# yum remove mysql mysql-server mysql-libs compat-mysql51 已加载插件:fastestmirror, langpacks 参数 mysql 没有匹配 参数 mysql-server 没有匹配 参数 compat-mysql51 没有匹配 正在解决依赖关系 --> 正在检查事务 ---> 软件包 mariadb-libs.x86_64.1.5.5.52-1.el7 将被 删除 --> 正在处理依赖关系 libmysqlclient.so.18()(64bit),它被软件包 perl-DBD-MySQL-4.023-5.el7.x86_64 需要 --> 正在处理依赖关系 libmysqlclient.so.18()(64bit),它被软件包 2:postfix-2.10.1-6.el7.x86_64 需要 --> 正在处理依赖关系 libmysqlclient.so.18()(64bit),它被软件包 1:qt-mysql-4.8.5-13.el7.x86_64 需要.......... 复制代码 复制代码 删除: mariadb-libs.x86_64 1:5.5.52-1.el7 作为依赖被删除: akonadi-mysql.x86_64 0:1.9.2-4.el7 mariadb-server.x86_64 1:5.5.52-1.el7 perl-DBD-MySQL.x86_64 0:4.023-5.el7 postfix.x86_64 2:2.10.1-6.el7 qt-mysql.x86_64 1:4.8.5-13.el7 完毕! [root@localhost ~]# rpm -qa|grep mariadb [root@localhost ~]#

3.开始新的安装, 创建 MariaDB.repo 文件

vim /etc/yum.repos.d/MariaDB.repo
插入以下内容:

# MariaDB 10.2.4 CentOS repository list - created 2017-05-05 16:13 UTC # http://downloads.mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2.4/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1

系统及版本选择:https://downloads.mariadb.org/mariadb/repositories/#mirror=tuna

4.运行安装命令安装 MariaDB

[root@localhost ~]# yum -y install MariaDB-server MariaDB-client 已加载插件:fastestmirror, langpacks mariadb | 2.9 kB 00:00 mariadb/primary_db | 18 kB 00:09 Determining fastest mirrors * base: mirrors.btte.net * extras: mirrors.zju.edu.cn * updates: mirrors.zju.edu.cn 正在解决依赖关系 --> 正在检查事务 ---> 软件包 MariaDB-client.x86_64.0.10.2.4-1.el7.centos 将被 安装 --> 正在处理依赖关系 MariaDB-common,它被软件包 MariaDB-client-10.2.4-1.el7.centos.x86_64 需要 ---> 软件包 MariaDB-server.x86_64.0.10.2.4-1.el7.centos 将被 安装 --> 正在处理依赖关系 galera,它被软件包 MariaDB-server-10.2.4-1.el7.centos.x86_64 需要 --> 正在处理依赖关系 libjemalloc.so.1()(64bit),它被软件包 MariaDB-server-10.2.4-1.el7.centos.x86_64 需要 --> 正在检查事务 ---> 软件包 MariaDB-common.x86_64.0.10.2.4-1.el7.centos 将被 安装 --> 正在处理依赖关系 MariaDB-compat,它被软件包 MariaDB-common-10.2.4-1.el7.centos.x86_64 需要 ---> 软件包 galera.x86_64.0.25.3.19-1.rhel7.el7.centos 将被 安装 ---> 软件包 jemalloc.x86_64.0.3.6.0-1.el7 将被 安装 --> 正在检查事务 ---> 软件包 MariaDB-compat.x86_64.0.10.2.4-1.el7.centos 将被 安装 --> 解决依赖关系完成 依赖关系解决 ================================================================================ Package 架构 版本 源 大小 ================================================================================ 正在安装: MariaDB-client x86_64 10.2.4-1.el7.centos mariadb 48 M MariaDB-server x86_64 10.2.4-1.el7.centos mariadb 113 M 为依赖而安装: MariaDB-common x86_64 10.2.4-1.el7.centos mariadb 104 k MariaDB-compat x86_64 10.2.4-1.el7.centos mariadb 2.8 M galera x86_64 25.3.19-1.rhel7.el7.centos mariadb 8.0 M jemalloc x86_64 3.6.0-1.el7 mariadb 104 k 事务概要 ================================================================================ 安装 2 软件包 (+4 依赖软件包) ....

首先下载安装包,然后进行自动安装,安装成功之后启动 MariaDB 服务。

systemctl start mariadb #启动服务 systemctl enable mariadb #设置开机启动 systemctl restart mariadb #重新启动 systemctl stop mariadb.service #停止MariaDB

5.登录到数据库

  用 mysql -uroot 命令登录到 MariaDB,此时 root 账户的密码为空。

6.进行 MariaDB 的相关简单配置,使用 mysql_secure_installation 命令进行配置。

mysql_secure_installation 首先是设置密码,会提示先输入密码 Enter current password for root (enter for none):<–初次运行直接回车 设置密码 Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车 New password: <– 设置root用户的密码 Re-enter new password: <– 再输入一次你设置的密码 其他配置 Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车 Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车, Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车 Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车 初始化MariaDB完成,接下来测试登录 mysql -uroot -ppassword 完成。

7.配置 MariaDB 的字符集

  查看/etc/my.cnf 文件内容,其中包含一句!includedir /etc/my.cnf.d 说明在该配置文件中引入/etc/my.cnf.d 目录下的配置文件。

1)使用 vim server.cnf 命令编辑 server.cnf 文件,在[mysqld]标签下添加

init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake

如果/etc/my.cnf.d 目录下无 server.cnf 文件,则直接在/etc/my.cnf 文件的[mysqld]标签下添加以上内容。

2)文件/etc/my.cnf.d/client.cnf

vim /etc/my.cnf.d/client.cnf 在[client]中添加 default-character-set=utf8 3)文件/etc/my.cnf.d/mysql-clients.cnf vi /etc/my.cnf.d/mysql-clients.cnf 在[mysql]中添加 default-character-set=utf8

全部配置完成,重启 mariadb

systemctl restart mariadb
之后进入 MariaDB 查看字符集

mysql> show variables like "%character%";show variables like "%collation%"; 显示为 +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) +----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_unicode_ci | | collation_database | utf8_unicode_ci | | collation_server | utf8_unicode_ci | +----------------------+-----------------+ 3 rows in set (0.00 sec)

字符集配置完成。

8. 添加用户,设置权限

创建用户命令

mysql>create user username@localhost identified by 'password'; 直接创建用户并授权的命令 mysql>grant all on *.* to username@localhost indentified by 'password'; 授予外网登陆权限 mysql>grant all privileges on *.* to username@'%' identified by 'password'; 授予权限并且可以授权 mysql>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option; 复制代码 MariaDB [mysql]> select host,user,password from user; +-----------------------+-------+------------------------+ | host | user | password | +-----------------------+-------+------------------------+ | localhost | root | *E87F9354F7E889A65E... | | localhost.localdomain | root | *E87F9354F7E889A65E... | | 127.0.0.1 | root | *E87F9354F7E889A65E... | | ::1 | root | *E87F9354F7E889A65E... | | localhost | | | | localhost.localdomain | | | +-----------------------+-------+------------------------+ 7 rows in set (0.00 sec)

简单的用户和权限配置基本就这样了。

其中只授予部分权限把 其中 all privileges 或者 all 改为 select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file 其中一部分。

Linux 系统教程:如何检查 MariaDB 服务端版本 http://www.linuxidc.com/Linux/2015-08/122382.htm

MariaDB Proxy 读写分离的实现 http://www.linuxidc.com/Linux/2014-05/101306.htm

Linux 下编译安装配置 MariaDB 数据库的方法 http://www.linuxidc.com/Linux/2014-11/109049.htm

CentOS 系统使用 yum 安装 MariaDB 数据库 http://www.linuxidc.com/Linux/2014-11/109048.htm

安装 MariaDB 与 MySQL 并存 http://www.linuxidc.com/Linux/2014-11/109047.htm

  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    239 引用 • 224 回帖
  • yum
    19 引用 • 7 回帖
  • MariaDB
    22 引用 • 15 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone

    修改权限:

    ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'dev'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'dev'@'localhost' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; ``` <i class='ft-small'>by centrexzj</i>