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

[经验分享] 初识MySQL-Linux

[复制链接]

尚未签到

发表于 2018-10-4 09:19:44 | 显示全部楼层 |阅读模式
什么是数据库?
  数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
  RDBMS即关系数据库管理系统(Relational Database Management System)的特点:

  •   1.数据以表格的形式出现
  •   2.每行为各种记录名称
  •   3.每列为记录名称所对应的数据域
  •   4.许多的行和列组成一张表单
  •   5.若干的表单组成database
RDBMS (关系型数据库)术语

  •   数据库: 数据库是一些关联表的集合。.
  •   数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  •   列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
  •   行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  •   冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
  •   主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  •   外键:外键用于关联两个表。
  •   复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  •   索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  •   参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
Mysql数据库
  MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  •   Mysql是开源的,不过卖身于Oracle后Mysql有闭源风险,所以centos7采用Mariadb。
  • MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可
  • MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。  
    在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。
  •   Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  •   MySQL使用标准的SQL数据语言形式。
  •   Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
  •   Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。
  •   MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
  •   Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统
MySQL 安装
  在linux系统中安装 mysql 可以直接用 yum 安装 ,centos6及之前版本安装 mysql, centos7安装 mariadb, 不过需要值得注意的是要想正常使用 mysql 数据库应当同时安装有 mysql 客户端和服务器端。
  以centos7 为例:
yum install mariadb-server mariadb  #安装 mariadb 客户端和服务器端systemctl start mariadb  #启动MariaDB    安装完成后第一次启动 mysql 服务,mysql 服务器首先会进行初始化的配置,需要时间较长。  
systemctl stop mariadb  #停止MariaDB
  
systemctl restart mariadb  #重启MariaDB
  
systemctl enable mariadb  #设置开机启动
  启动 mysql 服务后就可以使用 mysql 客户端执行一些数据库操作
MySQL 管理
  MySQL 用户设置
root@host# mysql -u root -p  
Enter password:*******
  
mysql> use mysql;Database changed
  

  
mysql> INSERT INTO user
  
          (host, user, password,
  
           select_priv, insert_priv, update_priv)
  
           VALUES ('localhost', 'guest',
  
           PASSWORD('guest123'), 'Y', 'Y', 'Y');Query OK, 1 row affected (0.20 sec)mysql> FLUSH PRIVILEGES;Query OK, 1 row affected (0.01 sec)mysql> SELECT host, user, password FROM user WHERE user = 'guest';+-----------+---------+------------------+| host      | user    | password         |+-----------+---------+------------------+| localhost | guest | 6f8c114b58f2ce9e |+-----------+---------+------------------+1 row in set (0.00 sec)
  在添加用户时,请注意使用MySQL提供的 PASSWORD() 函数来对密码进行加密。 你可以在以上实例看到用户密码加密后为: 6f8c114b58f2ce9e.
  注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string
  注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。
  如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。
  你可以在创建用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为 'Y' 即可,用户权限列表如下:

  •   Select_priv
  •   Insert_priv
  •   Update_priv
  •   Delete_priv
  •   Create_priv
  •   Drop_priv
  •   Reload_priv
  •   Shutdown_priv
  •   Process_priv
  •   File_priv
  •   Grant_priv
  •   References_priv
  •   Index_priv
  •   Alter_priv
  另外一种添加用户的方法为通过SQL的 GRANT 命令,建议使用这种命令,例如给指定数据库TUTORIALS添加用户 zara ,密码为 zara123 。
root@host# mysql -u root -p password;Enter password:*******mysql> use mysql;Database changed  

  
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP    -> ON TUTORIALS.*
  
    -> TO 'zara'@'localhost'
  
    -> IDENTIFIED BY 'zara123';
  以上命令会在mysql数据库中的user表创建一条用户信息记录。
  注意: MySQL 的SQL语句以分号 (;) 作为结束标识。
管理MySQL的命令
  以下列出了使用Mysql数据库过程中常用的命令:
  SHOW DATABASES:
  列出 MySQL 数据库管理系统的数据库列表
DSC0000.jpg

  USE 数据库名 :
  选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。
DSC0001.jpg

  SHOW TABLES:
  显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
DSC0002.jpg

DSC0003.jpg SHOW COLUMNS FROM 数据表:    类似于:  desc   TABLES;  命令

  显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。




运维网声明 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-611709-1-1.html 上篇帖子: mysql进阶简单解析 下篇帖子: mysql错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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