本文基于MySQL8.0,记录一下完整的远程访问的过程,以及这个过程中可能遇到的问题,MySQL运行在阿里云服务器,操作系统:CentOS 7.6 64位 顺便说下,买服务器还是要双十二这种拉新活动再买,用一个新的支付宝账号购买,能便宜一大半,不然双核4G就两千多块了. 这里默认防火墙已经向外暴露3306端口/关闭防火墙了,以及阿里云安全组配置暴露3306端口,在Windows通过Navicat测试连接 随便创建一个用户: mysql> create user 'dev'@'localhost'…
HOSt ip is not allowed to connect to this MySql server 报错:1130-host ... is not allowed to connect to this MySql server解决方法:1. 改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host"…
在日常开发工作中,你一定会经常遇到要根据指定字段进行排序的需求. 这时,你的SQL语句类似这样. select id,phone,code from evt_sms where phone like '13020%' order by id desc limit 10 这个SQL的逻辑是十分清晰明了,但其内部的执行原理你知多少. 接下来,本期文章将带你打开order by的大门一探究竟. 本期所有结论都基于MySQL8.0.26版本 最新文章 字符串可以这样加索引,你知吗?<死磕MySQL系列…
由于业务随着时间不停的改变,起初的表结构设计已经满足不了如今的需求,这时你是不是想那就加字段呗!加字段也是个艺术活,接下来由本文的主人咔咔给你吹. 试想一下这个场景 事务A在执行一个非常大的查询 事务B毫不犹豫的执行了DDL操作 接下来会发生什么,你如果已经知道答案的话恭喜你又掌握了一个MySQL中重要的知识点. 事务A执行查询时会持有MDL锁,而事务B同样也需要MDL锁,但事务A在进行大查询,所以导致事务B后的所有操作都会被堵塞. 这时你应该知道了在MySQL中所有对表的增删改查都需要申请MD…
大家好,我是咔咔 不期速成,日拱一卒 在平时开发工作中join的使用频率是非常高的,很多SQL优化博文也让把子查询改为join从而提升性能,但部分公司的DBA又不让用,那么使用join到底有什么问题呢? 死磕MySQL系列 一.什么是Nested-Loop Join 在MySQL中,使用Nested-Loop Join的算法进行优化join的使用,此算法翻译过来为嵌套循环连接,并且使用了三种算法来实现. Index Nested-Loop Join :简称NLJ Block Nested-Loo…
大家好,我是咔咔 不期速成,日拱一卒 之前ElasticSearch系列文章中提到了如何处理空值,若为Null则会直接报错,因为在ElasticSearch中当字段值为null时.空数组.null值数组时,会将其视为该字段没有值,最终还是需要使用exists或者null_value来处理空值 大多数ElasticSearch的数据都来自于各类数据库,这里暂且只针对于MySQL,各个开源软件中都默认兼容各种Null值,空数组等等 若从根源上截断就可以省很多事,直到现在很多开发小伙伴还是坚韧不拔的给…
MySQL学习——管理用户权限 摘要:本文主要学习了使用DCL语句管理用户权限的方法. 了解用户权限 什么是用户 用户,指的就是操作和使用MySQL数据库的人.使用MySQL数据库需要用户先通过用户名和密码进行连接,然后才能进行操作,不同的用户可以设置不同的权限,让某些用户只能操作权限范围内的数据,也可以让某些用户只能查询不能修改. 在MySQL数据库中,所有的用户信息都是保存在mysql数据库的user表中的. 查看user表 使用 desc user; 命令查看user表的结构: mysql…
大家好,我是咔咔 不期速成,日拱一卒 本期来聊聊MySQL的加锁规则,知道这些规则后可以判断SQL语句的加锁范围,同时也可以写出更好的SQL语句,防止幻读问题的产生,在能力范围内最大程度的提升MySQL并发处理事务能力. 现在你应该知道了MVCC解决了快照读下的幻读问题,但当前读的幻读问题还是基于锁解决的,也就是next-key lock. 最新文章 死磕MySQL系列总目录 为什么MySQL字符串不加引号索引失效?<死磕MySQL系列 十一> 打开order by的大门,一探究竟<死磕…
1.用root用户登陆 格式:grant 权限 on 数据库教程名.表名 to 用户@登录主机 identified by "用户密码";             @ 后面是访问MySQL的客户端ip地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为 本地访问(那此用户就不能远程访问该mysql数据库了). grant all privileges on *.* to 创建的用户名 @"%" identified by "密码&q…
添加远程用户admin密码为password GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY \'password\' WITH GRANT OPTION GRANT ALL PRIVILEGES ON *.* TO admin@\"%\" IDENTIFIED BY \'password\' WITH GRANT OPTION mysql教程添加远程用户或允许远程访问三种方法 用root用户登陆,然后: gra…