前言:

最近整理一些以前的学习笔记。
过去都是存储在本地,此次传到网络留待备用。\


 

MariaDB

  • Mysql数据库的兄弟版本,在mysql被收购后,为防止闭源,由mysql开发者主导开发
  • 兼容mysql
  • 软件:
  • 服务端: mariadb-server
  • 客户端: mariadb
  • 端口: 3306
  • 配置文件: /etc/my.cnf
  • 数据库存储目录:/var/lib/mysql/

 

一、部署MariaDB

1.安装软件包:mariadb-server、mariadb

]# yum -y install mariadb-server mariadb

2.启动服务:

]# systemctl start mariadb
]# ss -utnlp | grep mysql
tcp  LISTEN  0  50  *:3306  *:*  users:(("mysqld",pid=1365,fd=13))

3.进入数据库管理系统

]# mysql
MariaDB [(none)]>

 

二、数据库操作

显示所有数据库:

MariaDB [(none)]> show databases;           --初始默认有4个库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

进入数据库:

MariaDB [(none)]> use 数据库名;
MariaDB [(none)]> use mysql;            --进入mysql库
Database changed
MariaDB [mysql]>

显示所有数据表:

MariaDB [(数据库名)]> show tables;
MariaDB [mysql]> show tables;               --显示mysql库中的所有表
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |           --存放授权用户信息
+---------------------------+
24 rows in set (0.00 sec)

查看表中的数据:

MariaDB [(数据库名)]> select * from 表名;
MariaDB [mysql]> select * from user\G;              --查询user表中的所有字段

退出数据库:

MariaDB [(数据库名)]> exit
MariaDB [mysql]> exit               --退出
Bye

备份数据库(导出):

]# mysqldump -u账户 -p密码 数据库名 > /路径/备份名.bak
]# mysqldump mysql > ./database_mysql.bak               #备份mysql库
]# mysqldump mysql.user > ./table_user.bak              #备份mysql库中的user表
]# ls                                               #确认备份
database_mysql.bak  table_user.bak

还原数据库(导入):

]# mysql -u账户 -p密码 数据库名 < /路径/备份名.bak
]# mysql test < database_mysql.bak                 #恢复备份库到指定库

增:

创建新账户:

MariaDB [(none)]> grant 权限 on 数据库名.表名
 -> to 账户@'可访问的主机或网段'
 -> identified by '密码';
    --授予 权限 在 指定数据库和表(权限:all=全部;也可写具体指令[select,insert]),
    --给 账户@可访问的主机或网段,
    --设置账户的密码;
MariaDB [(none)]> grant all on test.* to dbuser@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
    --在test库的所有表上授予所有权限 给用户@'允许所有主机访问' 设置密码为'123456'

创建数据库:

MariaDB [(none)]> create database 数据库名;

MariaDB [(none)]> create database d1;
Query OK, 1 row affected (0.00 sec)

创建表:

MariaDB [(数据库名)]> create table 表名 (列名1 类型,列名2 类型,...);

MariaDB [(none)]> create table d1.tab1(id int, name varchar(10));
Query OK, 0 rows affected (0.01 sec)
    --创建 表 库d1下的tab1表(id字段 整型, name字段 可变字符串(宽度))

删除某条数据:

MariaDB [(数据库名)]> delete from 表名 where 条件;

MariaDB [(none)]> delete from test.user where host='localhost';
Query OK, 2 rows affected (0.00 sec)
    --删除test库的user表中 host字段等于'localhost'的行

删除数据表:

MariaDB [(数据库名)]> drop table 表名;

MariaDB [(none)]> drop table test.user;        --删除test库中的user表
Query OK, 0 rows affected (0.00 sec)

删除数据库:

MariaDB [(none)]> drop database 数据库名;
MariaDB [(none)]> drop database test;           --删除test库
Query OK, 0 rows affected (0.00 sec)

修改账户密码:

]# mysqladmin -u 账户 -p password "密码"       #修改指定账户的密码
]# mysql -u账户 -p密码                         #使用账户和新密码登陆

插入数据:

MariaDB [(数据库名)]> insert into 表名 values (列名,值);

MariaDB [(none)]> insert into d1.tab1 values(1,'niwei');
Query OK, 1 row affected (0.00 sec)

修改数据:

MariaDB [(数据库名)]> update 表名 set 修改的内容 where 修改的条件;

MariaDB [(none)]> update d1.tab1 set name='yangyang' where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

查看所有数据库:

MariaDB [(none)]> show databases;

查看数据库中所有的表:

MariaDB [(数据库名)]> show tables;
MariaDB [(none)]> show tables from 库名;

查看表中所有数据:

MariaDB [(数据库名)]> select * from 表名;

MariaDB [(none)]> select * from d1.tab1;
+------+----------+
| id   | name     |
+------+----------+
|    1 | yangyang |
+------+----------+
1 row in set (0.00 sec)

查看表中某列数据:

MariaDB [(数据库名)]> select 列名1,列名2,... from 表名;

MariaDB [(none)]> select user,host,password from mysql.user;
+--------+-----------+-------------------------------------------+
| user   | host      | password                                  |
+--------+-----------+-------------------------------------------+
| root   | localhost |                                           |
| root   | t1        |                                           |
| root   | 127.0.0.1 |                                           |
| root   | ::1       |                                           |
|        | localhost |                                           |
|        | t1        |                                           |
| dbuser | %         | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+--------+-----------+-------------------------------------------+

条件查询:

MariaDB [(数据库名)]> select * from 表名 where 条件( and 条件2);
MariaDB [(none)]> select user,host,password from mysql.user where password !='';
    --查询password字段不为空的行
+--------+------+-------------------------------------------+
| user   | host | password                                  |
+--------+------+-------------------------------------------+
| dbuser | %    | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+--------+------+-------------------------------------------+

多表联合查询:

MariaDB [(数据库名)]> SELECT 查询字段
 -> FROM 表1,表2
 -> WHERE 表1.列1='字符串' AND
 -> 表2.列2='字符串' AND
 -> 表1.匹配列=表2.匹配列;

MariaDB [mysql]> select user.user,user.host,db.Db
 -> from user,db
 -> where user.user=db.User
 -> and user.user!='';
+--------+------+------+
| user   | host | Db   |
+--------+------+------+
| dbuser | %    | test |
+--------+------+------+
1 row in set (0.00 sec)

描述表的信息:

MariaDB [(数据库名)]> describe 表名;
MariaDB [(数据库名)]> desc 表名;

MariaDB [mysql]> desc d1.tab1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)