前言:
最近整理一些以前的学习笔记。
过去都是存储在本地,此次传到网络留待备用。\
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)