mariadb 的由来

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。Red Hat Enterprise Linux/CentOS 7.0 发行版已将默认的数据库从 MySQL 切换到 MariaDB。

mariadb-server 与连接器

进入 mariadb 的官网下载链接 https://mariadb.org/download/

我翻译一下:

  • MariaDB Server 是世界上最流行的开源关系数据库之一,并且在主流 Linux 发行版的标准仓库中都有。可以使用操作系统的包管理器查找 mariadb-server。或者,您也可也使用如下资源
  • MariaDB 基金会为 MariaDB Server 也提供了最流行的连接器,以供下载。

mariadb 的卸载

我这边之前已经手动安装过 mariadb 了。这里为了演示安装,需要用 rpm 命令进行卸载。

rpm 常用参数

  • -a 查询所有文件
  • -e 卸载
  • -i 安装
  • -q 查询
  • -u 升级
  • -h 显示安装进度
  • -R 查看依赖
  • –replacepkgs 重新安装rpm包
  • –percent 在软件安装时显示百分比

开始使用 rpm -e mariadb 卸载 mariadb,提示说 mariadb-server 依赖于 mariadb。
因此需要先卸载 mariadb-server,再卸载 mariadb。

可以使用 rpm -qR mariadb-server 查看依赖

使用 rpm -q mariadb 查询,可以发现该卸载的均已卸载完毕了。

安装 mariadb

老规矩,先用 Putty 连接虚拟机中的 centos

使用命令 ip addr | grep inet 查看 ip,然后使用 PuTTY 连接
输入 yum install -y mariadb-server 安装 mariadb-server,它会自动安装其依赖的 mariadb

如果是 ubuntu 可以通过 apt-cache 命令查看依赖 apt-cache depends mariadb-server

mariadb 的启停命令

  • 启动服务
    systemctl start mariadbservice mariadb start

  • 停止服务
    systemctl stop mariadbservice mariadb stop

  • 重启服务
    systemctl restart mariadbservice mariadb restart

  • 添加到开机启动
    systemctl enable mariadbchkconfig mariadb on

  • 设置密码
    mysqladmin -u root password 'xxxxxx'

  • 安全设置,以及修改数据库管理员密码
    mysql_secure_installation

配置 mariadb

安装完后 mariadb,接下来就要设置账号密码了。

如果使用 mysqladmin -u root password 'xxxxxxx' 或 mysql_secure_installation 来配置报了如下错误,原因就是服务没开启。
输入 systemctl start mariadbservice mariadb start 启动服务,然后输入 mysql_secure_installation 配置密码。

mysql_secure_installation

  • 第一次要求输入密码,直接回车
    Enter current password for root (enter for none)

  • 第二次才是设置 root 密码
    Set root password? [Y/n]
    New Password
    Re-enter new password

  • 是否删除匿名用户。Y或回车
    Remove anonymous users? [Y/n]

  • 是否禁止 root 远程登录。我这边在本地测试,安全性要求不高,因此我选 n
    Disallow root login remotely? [Y/n]

  • 是否删除数据库。Y或回车
    Remove test databse and access to it? [Y/n]

  • 重新加载权限表。Y或回车
    Reload privilege tables now? [Y/n]

启动 mariadb

mysql -uroot -p<password>

注意:-u和用户名、-p和密码之间均没有空格

最后键入 exit(带不带分号均可),即可正常退出。

配置字符集

进入 maridb 命令行后,键入 show variables like "character";show variables like "%collection%" 查看字符集

vi /etc/my.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

vi /etc/my.cnf.d/client.cnf

在 [client] 中添加

default-character-set=utf8

vi /etc/my.cnf.d/mysql-clients.cnf

在 [mysql] 中添加

default-character-set=utf8


全部配置完后,重启 mariadb
service mariadb restart ,这个命令会被重定向到 /bin/systemctl restart mariadb.service
重启完,还是跟之前一样,进入 mariadb:mysql -uroot -p<password>

友情提示: 我之前打错命令,把 -uroot 打成 -rroot,结果出现 Ignoring query to other database 错误。所以如果出现该错误,请检查登录命令是否正确

重新输入 show variables like "%character%";show variables like "%collation%;" 查看字符集,可以发现现在基本都统一成了utf8了。

添加用户,设置权限

查看当前主机、用户、密码的哈希值

show database;
use mysql;
select host,user,password from user;

授权

grant <权限名数组 或 all privileges> on <数据库名>.<表名> to <用户名>@<允许的IP> identified by "<密码>";
flush privileges;

flush privileges 命令用来刷新权限,否则修改可能不生效。

使用 show grants for '<用户名>' 可以查看授权时执行的命令

权限组有以下几种类型,可以用逗号隔开

  1. 数据库管理权限
权限名 权限所允许的操作
CREATE USER
FILE
GRANT OPTION
  1. 数据库对象操作权限
权限名 权限所允许的操作
ALTER
ALTER ROUTINE
CREATE
CREATE ROUTINE
CREATE TEMPORARY TABLE
CREATE VIEW
DELETE
DROP
EVENT
EXECUTE
INDEX
INSERT
LOCK TABLE
PEFERENCE
SELECT
SHOW VIEW
TRGGER
UPDATE
  1. 其它权限
权限名 权限所允许的操作
ALL [PRIVILEGES] 所有操作权限(但不包含GRANT)
USAGE 一个特殊的“无权限”

<数据库名>.<表名>表示授予权限的具体数据库或表

db.table 含义
. 授予该数据库服务器中所有数据库的权限
db.* 授予db数据库中所有表的权限
db.table 授予数据库db中table表的权限

允许用户登录的IP

host 含义
localhost 只允许该用户在本地登录,不能远程登录
% 允许在除本机之外的任何一台机器远程登录
192.168.1.1 具体IP表示仅允许用户从该特定的IP登录

刷新权限更变

flush privileges

创建用户

创建用户 create <用户名> identified by '<password>'
查询之前创建的用户 select user,host,password from mysql.user where user="<用户名>"

修改密码

update mysql.user set password = password('<密码>') where user = '用户名' and host = ‘%’;
flush privileges;

删除用户

drop user <用户名>@'%;'

该命令会删除用户以及对应的权限。执行完后,你会发现 mysql.user 表中的用户,以及 mysql.db 表中的权限记录都消失了。

数据库的备份与恢复

首先进入数据库 mysql -uroot -p<password>,创建一个测试数据库并填充数据

MariaDB [(none)]>create database test;
MariaDB [(none)]>use test;
MariaDB [(none)]>create table book(name char(20), author char(20));
MariaDB [(none)]>insert into book values('相对论', '爱因斯坦');
MariaDB [(none)]>insert into book values('爱情公寓', '韦正');
MariaDB [(none)]>select * from book;

备份

从 mariadb 的命令行,退出到 centos 命令行。

执行 mysqldump -u root -p --all-databases > /tmp/db.dump 将数据库备份到 /tmp.dump 中。

恢复的2种方法

备份后进入 mariadb 命令行,删除之前创建的 test 数据库。

[root@localhost ~]# mysql -u root -p
Mariadb [(none)] >  drop database test
Mariadb [(none)] >  show databases


此时执行 source /tmp/db.dump 即可恢复数据库了

如果不在 mariadb 命令行中,也可以直接使用 mysql -uroot -p < /tmp/db.dump 命令进行恢复(从外部恢复,不会有任何回显)

mariadb 的安装及基本配置相关推荐

  1. Mariadb的安装与配置

    2019独角兽企业重金招聘Python工程师标准>>> Mariadb的安装与配置 1       安装规划 1.1   Mariadb版本: Mariadb 10.0.14 Sta ...

  2. 群晖(Synology)NAS 后台安装 Docker 后配置 Mariadb / MySQL

    如果你已经有一台 群晖(Synology)NAS 的话,你可以通过在 NAS 的后台安装 Docker ,然后再安装 MySQL 的镜像. 你的 群晖(Synology)NAS 就变成了一台数据库服务 ...

  3. MYSQL安装和初始化配置

    简介: MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好 ...

  4. Mariadb数据库之主从复制同步配置实战

    . Mariadb数据库之主从复制同步配置实战 一.环境规划 二.Mariadb的主从复制介绍 1.主从复制简介 2.半同步复制介绍 3.主从复制原理图 三.安装Mariadb 1.配置yum仓库 2 ...

  5. 安装MySQL和配置MySQL主从遇到的坑合集

    linux下安装MySQL https://www.cnblogs.com/bookwed/p/5896619.html https://www.cnblogs.com/duanrantao/p/89 ...

  6. java配置mq环境变量_RocketMQ学习-01安装及环境配置

    安装jdk环境 yum install java-1.8.0-openjdk java -version which java 输出 /usr/bin/java #软连接 ls -l /usr/bin ...

  7. Exchange Server 2013 安装完成后配置外部URL

    Exchange Server 2013 安装完成后配置外部URL 比如 mail.contoso.com  1.转到 EAC →  "服务器",然后单击"配置外部访问域 ...

  8. Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口

    Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口 >>>>>>>>>& ...

  9. Centos7安装Miniconda及配置jupyter

    Conda是什么? Conda是一个开源的包.环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换. Anaconda包括Conda.Python以及一大堆安装好 ...

  10. VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装

    VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装 在阿里云开源镜像地址下载镜像 Index of /centos/7.2.1511/isos/x86_64/ http://mi ...

最新文章

  1. 使用RabbitMQ做数据接收和处理时,自动关闭
  2. 【数据可视化应用】绘制峰峦地图(附Python和R语言代码)
  3. Etcd 架构与实现解析
  4. if语句 power query_PowerQuery学习:认识M函数
  5. mysql 异步_MySQL -- 异步I/O
  6. 【Java】选择结构排坑指南
  7. 如何为编程爱好者设计一款好玩的智能硬件(十)——无线2.4G通信模块研究·一篇说完...
  8. MySQL-Order by用法
  9. 绘制自己的人际关系图_错综复杂的人际关系,一张图谱一目了然
  10. 在电脑上如何录制游戏
  11. 手机网页版JS压缩上传图片--base64位 兼容IOS和安卓
  12. fMRI预处理-DPABI
  13. 数字图像处理第三章<一>、灰度变换
  14. 创维E900V21E机顶盒刷机避坑
  15. 论文阅读笔记:看完也许能进一步了解Batch Normalization
  16. 一文读懂5G智慧教育:42个应用场景如何改变教育
  17. python简笔画大全_只用C++和Python,让你的简笔画实时动起来!
  18. 解决方案 因为计算机同名,无法发现工作组内其他计算机。
  19. 分页存储概念清晰梳理(页面、页表、页表项、页面大小、页内地址等概念)
  20. 版本迭代数据库结构更新sql

热门文章

  1. usb声卡驱动_艾肯iCON ProDrive第三代USB声卡驱动全新发布!
  2. 群晖 VMM虚拟机安装windows XP
  3. Kali Linux进阶篇:Nmap扫描网络空间存活主机技巧
  4. 左程云算法课基础06图课程笔记
  5. OPPO R15刷root获取magisk权限 一键root R15系列
  6. 2017年苏大计算机考研872真题及解析
  7. Visio2016 层次方框图
  8. 产品经理入职四部曲—带你顺利度过试用期
  9. 3dMax建筑demo制作
  10. 传奇3单机显示服务器进不去,传奇3私服单机 数据库连接不上 dafe