MariaDB数据库基础管理

目录:

  1.             安装 Mariadb 数据库 

  2.             配置和管理数据库 (增删改查)

  3.             配置数据库用户和访问权限 

  4.             备份和恢复数据库

  5.             用户密码更改和破解

mariadb简介:

               MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源 社区在维护,采用 GPL (一种开源协议)授权许可。 MariaDB 的目的是完全兼MySQL ,包括 API 和命令行,是 MySQL 的代替品 • MariaDB 由 MySQL 的创始人 Michael Widenius主导开发,他早前曾以 10 亿美元的价格,将自己创建的公司 MySQL AB 卖给了 SUN ,此后,随着SUN 被甲骨文收购, MySQL 的所有权也落入 Oracle 的手中。MariaDB 名称来自 Michael Widenius 的女儿 Maria 的名字。

 

一、安装 Mariadb 数据库 

   1、安装:

yum install mariadb-server.x86_64 -y  ##安装软件mariadb

systemctl start mariadb               ##启动软件

systemctl enable mariadb              ##设置开机自启

mysql                                 ##匿名登陆(不安全)直接可以进行登录

mysql_secure_installation             ##mariadb安全设置(全部点回车即可)

mysql -uroot -ppasswd                       ##root登陆

或者隐式输入:
mysql -uroot -p
passwd

2、环境设置:

[root@localhost Desktop]# mysql_secure_installation     #进入密码设置模式

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):       #原来没有密码 不用输入,回车即可
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n]      #是否设置超级用户密码  默认设置
New password:         #输入密码
Re-enter new password:     # 重复密码
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]     #禁止匿名用户登录 默认禁止
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]       #禁止超级用户远程登录 默认禁止
 ... Success! 

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]      #默认删除测试数据库
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]     #立即重新加载权限列表
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

2、登录: mysql -uroot -p   进行登录

3、此时查看对外开放的端口netstat-antlupe | grep mysql   端口3306,  由于不安全,所以进入配置文件将端口关闭

4、进入mariadb的配置文件  

vim /etc/my.cnf # 修改配置文件
skip-networking=1 # 跳过所有关于网络的设置
 。增加此条信息

修改完毕后重启动服务:

systemctl restart mariadb

5、此时netstat -antlupe | grep mysql

对外的端口被隐藏掉

二、配置和管理数据库 

 

1、查询数据库信息注意:数据库语句均要加上分号在语句末尾,表结束

 

​
SHOW DATABASES;                                           #查询库信息

USE mysql;                                                   #进入某一个库

SHOW TABLES;                                               # 查看该库中的所有表

SELECT * FROM user;                                        # 查看user表里的所有信息

SELECT Host FROM user WHERE User=‘root’; # 按条件查询表中信息

DESC user;                                                 查看表结构

SELECT Host,User,Select_priv FROM user;                  针对字段进行搜索

SELECT Host,User,Select_priv FROM user WHERE Host='localhost';对本地用户进行字段搜索 

quit                                                        退出数据库

2、数据库基本管理

在终端里查看数据库的信息: mysql -uroot -ppasswd -e  "SHOW DATABASES;"

3、建立

SHOW DATABASES;                            # 查看库
CREATE DATABASE westos;                    # 新建一个库名称为westos
USE lala;                                  # 进入新建的库
CREATE TABLE hello (                       #在库中创建一个名为hello的表
-> username varchar(20) not null,          #表中包含的字段以及字段的要求
-> password varchar(30) not null             not null表示不能为空
-> );
DESC hello;                                 # 查看表结构
INSERT INTO toto VALUES(‘lele’,‘123456’);      #添加对应的信息
SELECT * FROM hello;                                #查看hello表的信息
SELECT username FROM hello;                #查看表中username这一字段字段的内容 

 

4、添加

ALTER TABLE hello ADD class varchar(15) not null;       #给表中添加一个字段,默认在最后添加。

ALTER TABLE hello DROP class;                           #移除表中某一字段

ALTER TABLE hello ADD class varchar(15) not null AFTER username;    #在确定的位置添加某一字段

ALTER TABLE hello RENAME user                          #重新命名表

SELECT * FROM user                                     #查看

UPDATE user SET usernam='yunyuzhu' WHERE password ='123' AND class='123' 
                                                       #更新值
   需要注意的是,虽然本次只更新了class,但是username和password也得写,作用就是进行制定需要修改的class值

SELECT * FROM user                                     #查看

INSERT INTO user VALUES('123','123','123');          插入新的字段

SELECT * FROM user                                     #查看
​

5、删除
 

DELETE FROM user WHERE username=‘123’;   # 删除表中的某一行

DROP TABLE user;                         # 删除整个表

DROP DATABASE westos;                    #删除整个库

删除完可以查看库的信息:  SHOW DATABASES;

 

三、配置数据库用户和访问权限

1、用户授权

建立用户:

CREATE USER home@localhost IDENTIFIED by '123'       #意思是创建一个名字为home,密码为123的本地用户

重新开启一个terminal,可以登录,但是此时还不能对数据库进行操作,没有权限

SELECT * FROM mysql.user;         查看所有表的信息,此时显示加上的用户

2、修改权限:

方法一:(最好这样子用,一步到位)

GRANT SELECT ON westos.* TO home@localhost IDENTIFIED BY '123'    #给home这个用户进行授权,并且设置密码

    westos.* 表示,将该数据库下的所有表的权限都给home

    *.*则表示,将所有数据库的所有表格的权限都给home

方法二:一步一步进行授权修改

GRANT SELECT,INSERT ON westos.* TO home@localhost;        # 进行授权,赋予其查找和插入修改的权限
SHOW GRANTS FOR home@localhost;                                       #显示授给的权利

FLUSH PRIVILEGES;                                                   #修改完毕要进行更新

四、备份和恢复数据库

1、备份:

mysqldump -uroot -predhat westos > /opt/westos.sql #将库westos的数据和结构都备份

                                                    到/opt/westos.sql 文件中

以下备份只需加上/opt/westos.sql即可

mysqldump -uroot -predhat westos --no-date     # 对指定的库不备份数据只备份结构


mysqldump -uroot -predhat --all-databases            # 对所有的库进行备份

mysqldump -uroot -predhat --all-databases --no-data # 对所有的库不备份数据只备份结构


然后删除数据库westos;

DROP DARABASE westos;

2、恢复:

思想:新建一个数据库,然后将备份的数据库信息导入即可。

方法一:在备份文件里直接添加,创建数据库的信息 

      vim /mnt/westos.sql

              21: CREATE DATABASE westos;

              22:USE westos;

mysql -uroot -p+password

SHOW DATABASES;

SELECT * FROM westos.yyz;

方法二:手动创建数据库以及表

mysql -uroot -p+password -e “CREATE DATABASE westos;” #在数据库中先新建一个库

mysql -uroot -p+password westos < /opt/westos.sql #再将备份的数据放进新建的库中

 

五、用户密码更改和破解

1、知道root密码需要进行修改时:

update mysql.user set Password=password(‘westos’) where User=‘root’,

进入数据库直接使用命令对密码进行修改

systemctl restart mariadb.service      #重启服务

2、当忘记密码的时候重新进行设置密码
 

systemctl stop mariadb.service                        #关闭数据库服务
mysqld_safe --skip-grant-tables &                     #跳过验证列表进行登录 并后台运行
mysql                                                 #跳过验证列表后,使用该命令直接进入数据库
update mysql.user set Password=password(‘redhat’) where User=‘root’;
                   输入命令对超级用户密码进行设置

killall -9 mysql                                     #结束进程 相当于关闭服务
ps aux | grep mysql                                  #查看没有结束的进程
kill -9   pid                                        #一次关闭所有没有停止的对应的进程
systemctl start mariadb.service                      #开启服务
mysql -uroot -predhat                                #使用新密码成功登陆

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值