Centos7 使用yum安装MariaDB与MariaDB的简单配置与使用

时间:2021-11-11 05:31:22

.mariadb的安装

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。

开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

方法1:阿里源下yum安装mariadb版本会旧一点

Red Hat Enterprise Linux/CentOS 7.0 发行版已将默认的数据库从 MySQL 切换到MariaDB。

安装命令

# yum -y install mariadb mariadb-server

安装完成MariaDB,首先启动MariaDB,两条命令都可以

 

systemctl start mariadb

#centos6命令

service mariadb start

方法2yum安装mariadbrepo仓库配置安装

# 如果已经添加了阿里云的源又想安装最新版本的mariadb,那么少就使用以下步骤

# 编辑创建mariadb.repo仓库文件

vi /etc/yum.repos.d/MariaDB.repo

 

 

添加repo仓库配置

[mariadb]

name=MariaDB

baseurl=http://yum.mariadb.org/10.1/centos7-amd64

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=1

MariaDB 仓库地址添加好后,你可以通过下面的一行命令轻松安装 MariaDB

yum install MariaDB-server MariaDB-client -y

.MariaDB基本配置

 

1.开启关闭与查看mariadb命令

mariadb数据库的相关命令是:

systemctl start mariadb  #启动MariaDB
systemctl stop mariadb  #停止MariaDB
systemctl restart mariadb  #重启MariaDB
systemctl enable mariadb  #设置开机启动

# 查看mariadb进程

[[email protected] home]# netstat -ntlp |grep 3306

tcp      0     0 0.0.0.0:3306      0.0.0.0:*         LISTEN      3931/mysqld

2.初始化MariaDB 数据库

在确认 MariaDB 数据库软件程序安装完毕并成功启动后请不要立即使用。为了确保数据 库的安全性和正常运转,需要先对数据库程序进行初始化操作。这个初始化操作涉及下面 5 个 步骤。

设置 root 管理员在数据库中的密码值(注意,该密码并非 root 管理员在系统中的密 码,这里的密码值默认应该为空,可直接按回车键)

设置 root 管理员在数据库中的专有密码。

随后删除匿名账户,并使用 root 管理员从远程登录数据库,以确保数据库上运行的业

务的安全性。

删除默认的测试数据库,取消测试数据库的一系列访问权限。

刷新授权列表,让初始化的设定立即生效。

初始化命令:

mysql_secure_installation

 

首先是设置密码,会提示先输入密码

Enter current password for root (enter for none):<–初次运行直接回车

设置密码

Set root password? [Y/n]  y<– 是否设置root用户密码,输入y并回车或直接回车

New password: <– 设置root用户的密码

Re-enter new password: <– 再输入一次你设置的密码

 

其他配置

Remove anonymous users? [Y/n]  y<– 是否删除匿名用户,回车

Disallow root login remotely? [Y/n] n<–是否禁止root远程登录,回车,不过一般为y

Remove test database and access to it? [Y/n] y<– 是否删除test数据库,回车

Reload privilege tables now? [Y/n] y<– 是否重新加载权限表,回车

初始化MariaDB完成,接下来测试登录

 

# mysql -uroot -p    进入数据库(数据库中的操作命令和mysql是一样的)

3.中文编码设置,utf8编码

文件/etc/my.cnf

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

进行查看就支持utf8了

.mariadb的使用

关于mariadb的使用其实是和mysql的语句完全是一样的

1.开启关闭和设置开机启动

mariadb数据库的相关命令是:

systemctl start mariadb  #启动MariaDB

systemctl stop mariadb  #停止MariaDB

systemctl restart mariadb  #重启MariaDB

systemctl enable mariadb  #设置开机启动

2.设置密码建库建表

# 修改mysql密码

MariaDB [(none)]>  set password = PASSWORD(hsz123);

Query OK, 0 rows affected (0.34 sec)

# 创建tests数据库 如果加charset=utf8  表示指定utf8编码

MariaDB [(none)]> create database test;

Query OK, 1 row affected (0.00 sec)

# 进入test数据库

MariaDB [(none)]> use test;

Database changed

# 创建mytest数据表

MariaDB [test]> create table mytest(id int,name char(32));

Query OK, 0 rows affected (0.02 sec)

# 查看数据表

MariaDB [test]> show tables;

 ---------------- 

| Tables_in_test |

 ---------------- 

| mytest         |

 ---------------- 

1 row in set (0.00 sec)

# 查看mytest数据表的表结构

MariaDB [test]> desc mytest;

 ------- ---------- ------ ----- --------- ------- 

| Field | Type     | Null | Key | Default | Extra |

 ------- ---------- ------ ----- --------- ------- 

| id    | int(11)  | YES  |     | NULL    |       |

| name  | char(32) | YES  |     | NULL    |       |

 ------- ---------- ------ ----- --------- ------- 

2 rows in set (0.05 sec) 

2.简单的增删改查

# 给表增加两条数据

MariaDB [test]> insert into mytest(id,name) values(1,"zero"),(2,"one");

Query OK, 2 rows affected (0.35 sec)

Records: 2  Duplicates: 0  Warnings: 0

# 查看id,name 字段mytest的数据

MariaDB [test]> select id,name from mytest;

 ------ ------ 

| id   | name |

 ------ ------ 

|    1 | zero |

|    2 | one  |

 ------ ------ 

2 rows in set (0.00 sec)

# 删除mytest表中id=3 的数据

MariaDB [test]> delete from mytest id=2;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near id=2 at line 1

MariaDB [test]> delete from mytest where id=2;

Query OK, 1 row affected (0.00 sec)

# 查看表的所有数据

MariaDB [test]> select * from mytest;

 ------ ------ 

| id   | name |

 ------ ------ 

|    1 | zero |

 ------ ------ 

1 row in set (0.01 sec)

# 更新表id=1表的字段name=ten

MariaDB [test]> update mytest set name=ten where id=1;

ERROR 1054 (42S22): Unknown column ten in field list

MariaDB [test]> update mytest set name="ten" where id=1;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

 

MariaDB [test]> select * from mytest;

 ------ ------ 

| id   | name |

 ------ ------ 

|    1 | ten  |

 ------ ------ 

1 row in set (0.01 sec)

3.关于用户及权限常用命令

# 创建用户和密码

MariaDB [test]> create user [email protected]% identified by zero;

Query OK, 0 rows affected (0.01 sec)

 

 

mysql使用grant命令对账户进行授权,grant命令常见格式如下

 

grant 权限 on 数据库.表名 to 账户@主机名            对特定数据库中的特定表授权

grant 权限 on 数据库.* to 账户@主机名              对特定数据库中的所有表给与授权

grant 权限1,权限2,权限3 on *.* to 账户@主机名      对所有库中的所有表给与多个授权

grant all privileges on *.* to 账户@主机名      对所有库和所有表授权所有权限

 

#授予用户最大的权限,所有的权限

grant all privileges on *.* to [email protected]% identified by password;

 

#授予zero用户,只有创建test数据库的权限

MariaDB [test]> grant create on test.* to [email protected]% identified by zero;

Query OK, 0 rows affected (0.00 sec)

# 所以查询zero用户的数据库只有如下所示

[[email protected] ~]# mysql -uzero -pzero

Welcome to the MariaDB monitor.  Commands end with ; or g.

Your MariaDB connection id is 6

Server version: 5.5.60-MariaDB MariaDB Server

 

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

 

Type help; or h for help. Type c to clear the current input statement.

 

MariaDB [(none)]> show databases;

 -------------------- 

| Database           |

 -------------------- 

| information_schema |

| test               |

 -------------------- 

2 rows in set (0.00 sec)

 

MariaDB [(none)]>

 

#授予one创建的权限,对于所有的库表生效

MariaDB [test]> grant create  on *.* to one@"%"  identified by one;

Query OK, 0 rows affected (0.00 sec)

# 所以查询数据库可以显示如下所示

[[email protected] ~]# mysql -uone -pone

Welcome to the MariaDB monitor.  Commands end with ; or g.

Your MariaDB connection id is 7

Server version: 5.5.60-MariaDB MariaDB Server

 

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

 

Type help; or h for help. Type c to clear the current input statement.

 

MariaDB [(none)]> show databases;

 -------------------- 

| Database           |

 -------------------- 

| information_schema |

| mysql              |

| performance_schema |

| test               |

| text               |

 -------------------- 

5 rows in set (0.00 sec)

 

MariaDB [(none)]>

# 删除one用户

MariaDB [test]> drop user one;

Query OK, 0 rows affected (0.00 sec)

# 刷新权限

MariaDB [test]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

4.数据库备份与恢复

# mysqldump命令用于备份数据库数据

##备份所有数据库命令

[[email protected] ~]# mysqldump -u root -p --all-databases > /tmp/db.dump

Enter password:

[[email protected] ~]# ll /tmp/db.dump

-rw-r--r--. 1 root root 515562 Sep 13 23:00 /tmp/db.dump

##备份单个数据库命令

[[email protected] ~]# mysqldump -u root -p text > /tmp/text.sql

Enter password:

[[email protected] ~]# ll /tmp/text.sql

-rw-r--r--. 1 root root 1261 Sep 13 23:01 /tmp/text.sql

## 将备份的数据库导入

[[email protected] ~]# mysql -uroot -p  text2< /tmp/text.sql

 

# 删除数据库

MariaDB [text2]> show databases;

 -------------------- 

| Database           |

 -------------------- 

| information_schema |

| mysql              |

| performance_schema |

| test               |

| text               |

| text2              |

 -------------------- 

6 rows in set (0.00 sec)

 

MariaDB [text2]> drop database text;

Query OK, 0 rows affected (0.00 sec)

 

MariaDB [text2]> show databases;

 -------------------- 

| Database           |

 -------------------- 

| information_schema |

| mysql              |

| performance_schema |

| test               |

| text2              |

 -------------------- 

5 rows in set (0.00 sec)