MariaDB数据库的安装配置及常用操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Lockey23/article/details/77103388

1. 认识一下MariaDB

MariaDB是由MySQL的原始开发人员创建的MySQL的流行分支, 它支持小数据处理任务和企业需求。 MariaDB提供与MySQL等相同的功能。

MariaDB的重要特性

1.所有MariaDB都在GPL,LGPL或BSD下。

2.MariaDB包括各种存储引擎,包括高性能存储引擎,用于与其他RDBMS数据源一起工作。

3.MariaDB使用标准和流行的查询语言。

4.MariaDB在多个操作系统上运行,并支持各种各样的编程语言。

5.MariaDB提供对PHP的支持,PHP是最流行的Web开发语言之一。

6.MariaDB提供Galera集群技术。

7.MariaDB还提供了许多在MySQL中不可用的操作和命令,并消除/取代影响性能的功能。 

2. mariaDB的安装和基本配置(平台为rhel7)

2.1 安装
[root@localhost Desktop]# yum search mariadb

这里写图片描述
[root@localhost Desktop]# yum install mariadb-server.x86_64 -y

[root@localhost Desktop]# systemctl start mariadb
#启动mariaDB服务
[root@localhost Desktop]# systemctl enable mariadb
#设置开机自启动
2.2 关闭外部访问端口
[root@localhost Desktop]# vim /etc/my.cnf
添加一行内容:skip-networking=1
2.3 设置用户登陆(不配置可以匿名登录的)
[root@localhost Desktop]# mysql_secure_installation 
#这个过程中除了输密码外基本可以一路回车

这里写图片描述
一开始输入mysql提示错误是因为服务并未开启,开启服务后以匿名方式登录,接下来就可以运行mysql_secure_installation设置用户了,设置完成后可以以指定用户进行登录,如下:
这里写图片描述

3. mariadb数据库常用操作命令

不进入数据库直接执行命令

mysql -u root -p -e "show databases;"
#-u(指定用户),-p(密码参数),-e(执行命令)

常用数据库操作命令:
USE [database name] - 设置当前默认数据库。

SHOW DATABASES - 列出服务器上当前的数据库。

SHOW TABLES - 列出所有非临时表。

SHOW COLUMNS FROM [table name] - 提供与指定表有关的列信息。

SHOW INDEX FROM TABLENAME [table name] - 提供与指定表相关的表索引信息。

SHOW TABLE STATUS LIKE [table name] \ G - - 提供有关非临时表的信息的表,以及LIKE子句用于获取表名后显示的模式。 

选择查询
SELECT field, field2,... FROM table_name, table_name2,... WHERE...;

删除查询
DELETE FROM table_name [WHERE …]

创建数据表
CREATE TABLE table_name (column_name column_type);

删除数据表
DROP TABLE table_name ;

创建数据库
CREATE DATABASE database_name;
删除数据库
DROP DATABASE database_name;

插入查询
INSERT INTO tablename (field,field2,...) VALUES (value, value2,...);

更新查询
UPDATE table_name SET field=new_value, field2=new_value2,...[WHERE ...];

#为数据表添加字段
alter table haloo add birth varchar(20);

#指定添加的字段位置
alter table haloo add hometown varchar(20) after name;

4. mariadb数据库用户密码管理

4.1 mariadb数据库密码修改

mysqladmin -u root -p halo password lockey
#password 选项后的lockey为新密码

4.2 忘记mariadb数据库密码怎么办?

方式一:

1.[root@dns-server1 ~]# vim /etc/my.cnf
添加一行:skip-grant-tables
#设置进入数据库进行操作时跳过权限或者密码认证
2.
[root@dns-server1 ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@dns-server1 ~]# systemctl restart mariadb.service 
[root@dns-server1 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.35-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

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

MariaDB [(none)]> use mysql#进入mysql数据库
MariaDB [mysql]> update user set Password=password('halo') where User='root';
#重新设置你的root用户的密码,注意格式,password('halo')的作用是在更新时调用函数进行字符加密,要不然密码就会变成明文的格式
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#刷新权限(优先级)设置
MariaDB [mysql]> exit
Bye
[root@dns-server1 ~]# systemctl restart mariadb.service 
[root@dns-server1 ~]# mysql -u root -phalo
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 5.5.35-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

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

MariaDB [(none)]> 

方式二:

[root@localhost Desktop]# systemctl stop mariadb.service 
[root@localhost Desktop]# ps -aux | grep mariadb
root       4031  0.0  0.0 112644   956 pts/0    S+   20:34   0:00 grep --color=auto mariadb
#需要结束掉mariaDB的所有进程
[root@localhost Desktop]# mysqld_safe --skip-grant-tables &
#设置mysql登录时跳过授权表
[root@localhost Desktop]# mysql
#登录数据库修改用户密码,接下来步骤与上一个方法一致

5 数据库备份(以名称为lockey的数据库为例)

mysqldump -uroot -phalo lockey > lockey.dump
####备份某个数据库

mysqldump -uroot -phalo --all-databases > backup.dump
###备份所有数据库的数据
######恢复时不需要指定任何数据库,命令格式如下:
mysql -uroot -predhat </mnt/all.dump 


# mysqldump -uroot -phalo --no-data lockey > lockey.dump
###只备份数据库中的表结构,不备份数据

数据库备份与恢复实际操作:

1.备份数据库
mysqldump -u root -phalo lockey >/mnt/lockey.sql
#cat /mnt/lockey.sql查看备份的数据库文件,发现里面全是sql语句 

2.删除数据库
mysql -uroot -phalo -e 'drop database lockey;'
或者使用命令mysqladmin -uroot -phalo drop testdb

3.创建一个数据恢复的数据库
mysql -uroot -phalo -e "create database lockey;"
或者使用命令mysqladmin -uroot -phalo create testdb

4.将数据恢复到数据库中
mysql -uroot -phalo lockey </mnt/lockey.sql 

6. 数据库用户管理以及用户授权

创建用户
CREATE USER lcokey@localhost identified by 'lockey';#默认对数据库的操作访问权限为最低
用户授权
GRANT INSERT,UPDATE,DELETE,SELECT on lockey.* to lcokey@localhost;
GRANT SELECT on lockey.* lcokey@localhost;
重载授权表
FLUSH PRIVILEGES;
查看用户授权
SHOW GRANTS FOR lockey@localhost;
撤销用户权限
REVOKE DELETE,UPDATE,INSERT on lockey.* from lockey@localhost;
删除用户
DROP USER lockey@localhost;

注意:如果授权了UPDATE权限而没有授权INSERT和SELECT会导致UPDATE命令失败的情况出现,因为:

UPDATE需要执行插入,而INSERT权限不够
如果update命令后有where 条件语句那么也会失败,因为SELECT权限不够

7. mysql图形管理软件安装

mysql图形图形管理软件其实就是一些php程序,所以必须要有php支持以及php对数据库操作的支持

7.1 下载管理组件,将组建解压到apache根目录下
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/

7.2将组件访问的名称改为自己喜欢的名字
cd /var/www/html/
mv phpMyAdmin-3.4.0-all-languages/ sqladmin

7.3 配置组件
cd sqladmin/
cp config.sample.inc.php config.inc.php 
vim Documentation.txt 
#Documentation.txt文件为配置解释文件,可根据这个文件进行配置
vim config.inc.php 
#进行组件配置,一般只需要加入一串识别码就可以,具体参考配置文档

7.4 下载php以及php对数据库的操作组件
yum install php php-mysql -y

测试:在浏览器中输入:127.0.0.1/sqladmin进行访问,一般会出现一个登陆页面,输入你的数据库用户以及密码就可以进行图形化的数据库管理了额
这里写图片描述

没有更多推荐了,返回首页