微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql之mariadb 基本操作

前言:

        无论大家从事的是什么行业,大家或许都听说过数据库这个词汇。在今天互联网高速发展的时代数据库与我们的生活息息相关,例如你在公司上班需要登记员工的信息录入到数据库中,数据库没有那么高深难懂,笔者本人所理解的数据库就是感觉它是一种类excel表格的一种程序,但是它又优于excel。本文将为大家简述一下关于MySQL数据库的基本操作。

MysqL简介:       

MysqL一个关系型数据库管理系统,由瑞典MysqL AB公司开发,目前属于Oracle公司。MysqL是最流行的关系型数据库管理系统,在WEB应用方面MysqL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

Relational 美[r'lenl]

Database美[detbes]

Management美[mndmnt]

MysqL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MysqL所使用的sql语言是用于访问数据库的最常用标准化语言。MysqL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MysqL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。

双授权政策:开放源代码版本和商业版本。例如:很多公司出售应用软件,例如Microsoft、Apple和Oracle;如Red Hat和IBM,则通过为其开放源代码软件提供销售支援、托管或咨询等服务来进行赚钱。但鲜为人知的是,企业可以透过开放源代码发布他们的软件,也可以同时销售该软件的商业版本。

--------------------------尊敬的读者您好:您已经进入实践操作区域------------------------------------

安装软件之前笔者有个习惯就是去看看软件描述信息,这样有助于我们了解软件用途以及出现问题去官网找问题的解决办法因为官网有绝大多软件的QA。

yum info MysqL-server

mysql之mariadb 基本操作

Name:软件包名称mysq-server

Arch:系统架构X86_64

Version:软件包版本5.1.73

Release:发布者版本号7.e16

Size:软件包大小为25M

Repo:该软件包来至于base仓库

Summary:软件概述这是MysqL服务的相关文件

URL:官网地址http://www.MysqL.com

License:授权许可遵循GPL v2版许可协议

Description:详细描述

                    MysqL一个用户,多线程的sql数据库服务器MysqL一个由服务端守护程序(MysqLd)组成的客户端/服务端来实现工作,以及许多不同的库与客户端程序。 这个软件包含MysqL服务端和一些附带的文件目录。

yum info  MysqL    //这是查看MysqL客户端的软件信息和面的描述大同小异读者朋友可以自行翻译一下本文就不多做介绍了。

------------------------------------以上内容为本人工作学习的习惯-------------------------------------

安装软件

yum install MysqL-server MysqL       //本文所用环境是Centos6.8系统
MysqL-server                  //MysqL服务端
MysqL                     //MysqL客户端

******************安装过程略***************

这里为了避免大家出现各种奇怪的错误请先关闭防火墙和selinux

service iptables stop          //本次关闭防火墙服务   
chkconfig iptables off         //下次开机永久关闭防火墙
setenforce 0                   //临时关闭SELinux
getenforce                     //查看selinux现在的状态
disabled                       //关闭的
Permissive                     //关闭的
Enforcing                      //开启的
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config       //下次开机永久关闭selinux


启动MysqL服务

service MysqLd start
Starting MysqLd:                                           [  OK  ]

加固MysqL服务器,在安装完成后,运行MysqL_secure_installation命令

MysqL_secure_installation
Enter current password for root (enter for none):直接回车
输入当前root(这里的root是数据库管理员名与系统无关)用户的密码认为空直接回车
Set root password? [Y/n]y
为root用户设置密码
New password: 
设置root用户的密码
Re-enter new password: 
再输入一次确认你设置的密码
Remove anonymous users? [Y/n]y
是否删除匿名用户,生产环境建议删除,所以直接回车
disallow root login remotely? [Y/n]y
是否关闭root远程登录,根据自己的需求选择Y/n并回车,建议禁止
Remove test database and access to it? [Y/n]y
是否删除test的测试库,通常都删除所以输入y或者直接回车
Reload privilege tables Now? [Y/n] 
是否立即重新加载授权表,输入y或者直接回车
现在就可以使用MysqL -h 127.0.0.1  -uroot -p来进入你的数据库

常用选项:

-u, --user=username:用户名认为root;

-h, --host=hostname:远程主机(即MysqL服务器)地址,认为localhost; 客户端连接服务端,服务器会反解客户的IP为主机名,关闭功能(skip_name_resolve=ON);

-p, --password[=PASSWORD]:USERNAME所表示的用户的密码; 认为空;

注意:MysqL用户账号由两部分组成:

                'USERNAME'@'HOST'; 

                其中HOST用于限制此用户可通过哪些远程主机连接当前的MysqL服务;HOST的表示方式,支持使用通配符;

%:匹配任意长度的任意字符;

172.16.%.%,  172.16.0.0/16

_:匹配任意单个字符;

-P, --port=#:MysqL服务器监听的端口;认为3306/tcp;

-S, --socket=/PATH/TO/MysqL.sock:套按字文件路径;

-D, --database=DB_name:连接到服务器端之后,设定其处指明的数据库数据库

-e, --execute='sql STATEMENT':连接至服务器并让其执行此命令后直接返回;

系统管理 

连接MysqL 

命令格式: MysqL -h 主机地址 -u用户名 -p用户密码

例 1:连接本地主机

[root@node2 ~]#MysqL -uroot -p

例 2:连接远程主机库

[root@node2 ~]#MysqL -h 127.0.0.1 -uroot -p111111

增加新用户 

命令格式:grant select on 数据库.* to 用户名@登录主机 identified by '密码'

举例:

例 1:增加一个用户 dev1 密码为 dev123,让他可以在任何主机上登录,并对所有数据库

查询、插入、修改删除的权限。

首先用以 root 用户连入 MysqL,然后键入以下命令:

MysqL> grant select,insert,update,delete on *.* to dev1@localhost identified by'dev123';
或者
grant all privileges on *.* to dev1@localhost identified by 'dev123';

然后刷新权限设置。

flush privileges;

例 2:如果你不想 root 有密码操作数据库“class”里的数据表,可以再打一个命令将密码消掉。

grant select,insert,update,delete on class.* to root@localhost identified by '';

删除用户 

命令格式: DROP USER 'username'@'host'; 

举例:

MysqL> drop user 'dev1'@'localhost';
MysqL> flush privileges;

删除用户数据库

MysqL>drop database dbname;

库操作 

显示所有的数据库 

MysqL> show databases;(注意:最后有个 s)

创建数据库 

MysqL> create database newdb;

删除数据库 

MysqL> drop database newdb;

连接数据库 

MysqL> use newdb;
也可以登录的时候指定使用哪个库
MysqL -h 127.0.0.1 -uroot -p newdb;(注意:-p后面有个空格然后是你要使用的库名称)

查看当前使用的数据库 

MysqL> select database();

当前数据库包含的表信息 

MysqL> show tables; (注意:最后有个 s)

表操作 

注:操作之前使用“use 数据库名”应连接某个数据库

创建表 

命令格式:create table 表名 (字段名I 类型I 字段名II  类型II );

例:

MysqL> create table dev(id int (4) not null primary key auto_increment,
> name char(20) not null,sex int(4)not null default '0',
> joinyear DATE not null);

获取表结构 

命令格式: desc 表名,或者show columns from 表名

例:查看我们刚才创建好的dev这张表

MysqL> desc dev;
或者
MysqL> show columns from dev;

mysql之mariadb 基本操作

删除表 

命令格式:drop table <表名>

例如:删除表名为 m23info 的表

MysqL> drop table m23info;

mysql之mariadb 基本操作

插入数据 

命令格式:insert into <表名> VALUES ('设定值1','设定值2','设定值3','设定值4');

例子:

MysqL> INSERT INTO dev VALUES('2','Jeck','0','2012-12-25');

mysql之mariadb 基本操作


查询表中的数据 

查询所有行

MysqL> select * from dev;

mysql之mariadb 基本操作

查询前几行数据

例如:查看表 dev 中前 2 行数据

MysqL> select * from dev order by id limit 0,2;

或者

MysqL> select * from dev limit 0,2;

mysql之mariadb 基本操作

删除表中数据 

命令格式:delete from 表名 where 表达式

例:删除表 dev 中编号为 1 的记录

MysqL> delete from dev where id=1;

mysql之mariadb 基本操作

很明显刚才的id为1的那条记录已经被删除

修改表中数据 

命令:update 表名 set 字段=新值,... where 条件

MysqL> update dev set name='Boss' where id=2;

mysql之mariadb 基本操作

把原来ID号是2的jeck改成了Boss

在表中增加字段 

命令格式:alter table 表名 add 字段 类型 其他;

例:在表 dev 中添加一个字段 Duties类型为 int(5),认值为 0

MysqL> alter table dev add Duties int(5) default '0';

mysql之mariadb 基本操作

更改表名 

命令格式:rename table 原表名 to 新表名;

例如:在表 dev 名字更改为 opt

MysqL> rename table dev to opt;

mysql之mariadb 基本操作

数据库导入导出 

数据库导出数据库文件 

使用“MysqLdump”命令

1)导出newdb数据库

命令格式:MysqLdump -u [数据库用户名] -p -A>[备份文件的保存路径]

MysqLdump -uroot -p密码  newdb >/sqlbackup/newdb`date +%F-%T`.sql
//备份newdb到/sqlbackup/下命名为newdb+时间戳.sql

mysql之mariadb 基本操作

2)导出数据和数据结构

格式:MysqLdump -u [数据库用户名] -p [要备份的数据库名称]>[备份文件的保存路径]

举例:

例 1:将数据库 mydb 导出到 /sqlbackup下的MysqLdb.sql

MysqLdump -h localhost -uroot -p MysqL > /sqlbackup/MysqLdb.sql

mysql之mariadb 基本操作

然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。

3)只导出数据不导出数据结构

格式:

MysqLdump -u [数据库用户名] -p -t [要备份的数据库名称]>[备份文件的保存路径]

4)导出数据库中的Events

格式:MysqLdump -u [数据库用户名] -p -E [数据库用户名]>[备份文件的保存路径]

5)导出数据库中的存储过程和函数

格式:MysqLdump -u [数据库用户名] -p -R [数据库用户名]>[备份文件的保存路径]

从外部文件导入数据库中 

1)使用“source”命令

首先进入“MysqL”命令控制台,然后创建数据库,然后使用该数据库。最后执行下面操作。

MysqL>source [备份文件的保存路径]

2)使用“<”符号

首先进入“MysqL”命令控制台,然后创建数据库,然后退出 MysqL,进入 DOS 界面。最后执行下面操作。

MysqL -u root –p < [备份文件的保存路径]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐