设为首页 收藏本站
查看: 2105|回复: 0

[经验分享] mysql之mariadb 基本操作

[复制链接]

尚未签到

发表于 2018-10-9 07:10:26 | 显示全部楼层 |阅读模式
  前言:
  无论大家从事的是什么行业,大家或许都听说过数据库这个词汇。在今天互联网高速发展的时代数据库与我们的生活息息相关,例如你在公司上班需要登记员工的信息录入到数据库中,数据库没有那么高深难懂,笔者本人所理解的数据库就是感觉它是一种类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
DSC0000.png

  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 用户名@登录主机>  举例:
  例 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;
DSC0001.png

  删除表
  命令格式:drop table
  例如:删除表名为 m23info 的表
mysql> drop table m23info;
DSC0002.png

  插入数据
  命令格式:insert into  VALUES ('设定值1','设定值2','设定值3','设定值4');
  例子:
mysql> INSERT INTO dev VALUES('2','Jeck','0','2012-12-25');
DSC0003.png

  查询表中的数据
  查询所有行
mysql> select * from dev;
DSC0004.png

  查询前几行数据
  例如:查看表 dev 中前 2 行数据
mysql> select * from dev order by id limit 0,2;  或者
mysql> select * from dev limit 0,2;
DSC0005.png

  删除表中数据
  命令格式:delete from 表名 where 表达式
  例:删除表 dev 中编号为 1 的记录
mysql> delete from dev where id=1;
DSC0006.png

  很明显刚才的id为1的那条记录已经被删除;
  修改表中数据
  命令:update 表名 set 字段=新值,... where 条件
mysql> update dev set name='Boss' where id=2;
DSC0007.png

  把原来ID号是2的jeck改成了Boss
  在表中增加字段
  命令格式:alter table 表名 add 字段 类型 其他;
  例:在表 dev 中添加了一个字段 Duties类型为 int(5),默认值为 0
mysql> alter table dev add Duties int(5) default '0';
DSC0008.png

  更改表名
  命令格式:rename table 原表名 to 新表名;
  例如:在表 dev 名字更改为 opt
mysql> rename table dev to opt;
DSC0009.png

  数据库导入导出
  从数据库导出数据库文件
  使用“mysqldump”命令
  1)导出newdb数据库
  命令格式:mysqldump -u [数据库用户名] -p -A>[备份文件的保存路径]
mysqldump -uroot -p密码  newdb >/sqlbackup/newdb`date +%F-%T`.sql  
//备份newdb到/sqlbackup/下命名为newdb+时间戳.sql
DSC00010.png

  2)导出数据和数据结构
  格式:mysqldump -u [数据库用户名] -p [要备份的数据库名称]>[备份文件的保存路径]
  举例:
  例 1:将数据库 mydb 导出到 /sqlbackup下的mysqldb.sql。
mysqldump -h localhost -uroot -p mysql > /sqlbackup/mysqldb.sql
DSC00011.png

  然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。
  3)只导出数据不导出数据结构
  格式:
  mysqldump -u [数据库用户名] -p -t [要备份的数据库名称]>[备份文件的保存路径]
  4)导出数据库中的Events
  格式:mysqldump -u [数据库用户名] -p -E [数据库用户名]>[备份文件的保存路径]
  5)导出数据库中的存储过程和函数
  格式:mysqldump -u [数据库用户名] -p -R [数据库用户名]>[备份文件的保存路径]
  从外部文件导入数据库中
  1)使用“source”命令
  首先进入“mysql”命令控制台,然后创建数据库,然后使用该数据库。最后执行下面操作。
  mysql>source [备份文件的保存路径]
  2)使用“

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-618272-1-1.html 上篇帖子: Linux命令:MySQL系列之十四--MySQL备份与还原(LVM逻辑卷快照备份重要章节) 下篇帖子: MySQL在线修改表结构pt-osc
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表