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

来源:互联网 发布:php解析json数组 编辑:程序博客网 时间:2024/05/22 16:55

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=12.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 ~]# mysqlERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)[root@dns-server1 ~]# systemctl restart mariadb.service [root@dns-server1 ~]# mysqlWelcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 2Server version: 5.5.35-MariaDB MariaDB ServerCopyright (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: 0MariaDB [mysql]> flush privileges;Query OK, 0 rows affected (0.00 sec)#刷新权限(优先级)设置MariaDB [mysql]> exitBye[root@dns-server1 ~]# systemctl restart mariadb.service [root@dns-server1 ~]# mysql -u root -phaloWelcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 6Server version: 5.5.35-MariaDB MariaDB ServerCopyright (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 mariadbroot       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 testdb3.创建一个数据恢复的数据库mysql -uroot -phalo -e "create database lockey;"或者使用命令mysqladmin -uroot -phalo create testdb4.将数据恢复到数据库中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/ sqladmin7.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进行访问,一般会出现一个登陆页面,输入你的数据库用户以及密码就可以进行图形化的数据库管理了额
这里写图片描述