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

[经验分享] mysql数据库详解(续二)

[复制链接]

尚未签到

发表于 2018-10-7 12:33:06 | 显示全部楼层 |阅读模式
  mysql数据库登陆问题解决汇总
  首先需要说明一下,MYSQL数据库登陆的方式,通常就是本地登陆(localhost)和远程登陆,那么这里在深入地了解一部localhost和127.0.0.1的区别是什么,两者都是表示本地,但是,localhost在进行通信过程中并不经过网卡,或者说在系统的应用程序内部就直接进行通信了,而127.0.0.1是经过网卡的,通过了网卡的解析,这样就会有防火墙和其他通讯的安全限制产生,这就是localhost和127.0.0.1的区别。
  然后我这里在说明一下mysql常用的管理工具,phpmysql和sqllog,这两个工具在通讯是的工具原理是不同的,我简单说一下了,其实复杂的我也不知道了,呵呵。
  PHPMySQL是通过解压tar包并放到web目录下,然后编辑config.sample.inc.php文件,并更名为config.inc.php。然后通过url登录,这里要注意了,这个时候通过url登录到mysql数据库中属于本地登陆,而不属于远程登陆。那么在这是通过phpmysql登录数据库时创建的用户就要有localhost的登录权限,否则会无法登录。
  sqllog是一个独立的管理mysql数据库的软件,可以直接安装到任意客户端主机上,需要访问远程mysql服务器的时候,直接进行配置即可,和常见的远程管理工具,secureCRT、putty等是非常相同的。这个工具登录mysql时采用的是远程登陆的方式,如果用户要能够通过sqllog登陆数据库需要授予远程登陆的权限,比如10.40.0.%,10.40.0.60等。
  那么当同一个用于拥有多个权限的时候,选择的排序是如何的呢?
  首先我们先看看通常登陆到mysql后的用户是如何进行身份验证的。
    select user(),current_user();
+--------------------------+-----------------------+
| USER()                    | CURRENT_USER() |
+-------------------------+------------------------+
| server@localhost    | @localhost          |
+-------------------------+-------------------------+
1 row in set (0.00 sec)
  user():返回的是客户端登录时指定的用户名和主机名。
  current_user():mysql数据库使用授权表中的那个用户来认证你的登陆请求。
  @localhost是系统在初始化的时候创建的账户,意思是任意用户(匿名)都可以登陆,权限比较低。也就是说登陆任何人都可以登陆mysql。
  这里重点说一下服务器验证客户端访问的权限规则。
  首先客户端访问服务器需要提供三个要素,用户名,密码,主机名。这三个要素需要匹配的是用户名和主机名,那么谁先谁后呢,服务器会先匹配主机名,然后匹配用户名。
  主机名可以有多个范围设定,如果多个范围设定对于同一个用户都适用,就优先选择范围小的,精准的。
  比如10.% ,10.40.0.%,10.40.0.56,会优先选择10.40.0.56这个主机名进行匹配。
  其次匹配用户名,如果对于一个范围内有多个用户可以选择,比如具体的用户名test,匿名用户,那么就会优先选择具体的用户名。
  如果两个条件结合起来,就是一个and的运算了。
  例如: mysql -u test 登陆mysql,在mysql中有两个匹配条目:‘test’@‘%’和 @'localhost'
  由于是本地登陆,那么@localhost的范围要小于@“%”(%代表任意主机,范围更大),所以登陆的时候回按照@localhost(匿名)方式登陆。
  所以为了安全起见,建议删除匿名用户登陆@localhost。
  文章选自:http://www.linuxidc.com/Linux/2015-03/115164.htm
  Linux系统架构师必备--MySQL入门之mysql客户端基本用法(02):http://edu.51cto.com/lesson/id-75682.html
  关系型数据库的管理对象:表、视图、索引、用户、事物、存储过程、存储函数、触发器、事件调度器。
  第四节 MYSQL数据库基础知识
  一、单元格类型(cell)
  字符集:
  字符编码的含义:
  通过一组0、1字符串来表示一个特定的字符,英文使用1个字节表示就可以表示所有英文字符的变化,(24个字符,而一个字节8位有256种变化,所以足够表示所有英文字母以及各种符号了)而中文汉字太多,一个字节表示不了所有变化,所以用两个字节就是65536种变化,也可以表示中国几乎所有的汉字了,创造字    符集很容易,但是要实现标准化,就需要一个组织将字符集标准化,让他在网恋通讯中知道这种变化代表的到底是那个汉字。
  常见的汉字字符集包括GB2312,GB1830,GBK,UTF。unicode(将中文、英文进行统一编码,减少中英文混淆)
  字符本身也是有排序的,并且即使同一个字符集也可以有多种排序规则。
  
  Linux系统架构师必备--MySQL入门之字符集详解:http://edu.51cto.com/lesson/id-75690.html
  查看字符集相关命令
  1、显示mysql支持的所有字符集:
  show character set;
  2、显示所有字符集的排序规则:
  show collation;
  3、查看当前mysql的排序规则:
  show variables like “%char%”
  表:存在于库中,而库就是一个容器。
  行row
  列colum
  字段属性:字段名(不区分大小写),数据类型、
  关系型数据库:
  约束:限制字段类型
  1、数据类型:
  1.1字符型:
  char
  varchar
  binary
  varbinary
  修饰符:not null、default
1.2数值型
    精确数值型
       1.2.1 整型int:
                tinyint  1byte,0-255
                smallinit:2byte,
                mediuminit:3byte
                init:4byte
                biginit:8byte
        1.2.2近似数值型
        1.2.3浮点型
                float
                double
                real
  1.3日期时间型
  date
  time
  datetime
  1.4布尔型
  1.5内置类型
  Linux系统架构师必备--MySQL入门之数据库数据类型 :http://edu.51cto.com/lesson/id-75695.html
  二、数据库键值
  1、主键:primary key
  不能空缺,并且是整个表中唯一的,不能重复。
  2、唯一键:uniq key
  可以空缺,但是如果不空缺就必须是唯一存在的。
  3、外键约束(应用性约束):foreign key
  就是第一个一个表的一个字段是第二个表的字段描述,如果另一个表里没有对整个字段的描述,那个第一个表就不能使用整个被引用的字段
  表一:

  name>  jerry   1    12    2
  tom    1    11    2
  lusi     1    13    2
  表二
  classid    class
  1                二班
  2                二班
  3                二班
  4、检查性约束:
  用来定义字段类型的范围(mysql不支持)
  Linux系统架构师必备--MySQL入门之mysql键类型详解:http://edu.51cto.com/lesson/id-75693.html

  1、更改用户名为tom的年龄为20岁
  mysql> update student set age=20 where name='tom';
  delete:清空表内数据
  1、清空student表
  delete from student
  2、删除用户名为tom的用户
  delete from student where name=‘tom’;
  Linux系统架构师必备--MySQL入门之select查询:http://edu.51cto.com/lesson/id-75728.html
  数据库的对象:库、表、视图、索引、事务、用户、存储过程、存储函数、触发器、游标、事件调度器。


运维网声明 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-614339-1-1.html 上篇帖子: mysql数据库详解(续一) 下篇帖子: mysql数据库入门、进阶和提升
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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