今天使用 PHP 连接一个 MySQL 数据库的时候连不上,提示无权限。

因为 MySQL 是在另外一个机房,首先想到的是防火墙的原因,但使用 MySQL-cli 却能正常连接,遂排除这种可能。

又怀疑是 PHP 框架的问题,写了一个简单的测试脚本,主要语句:mysqli_connect(),并打印出错误。运行一下还是不行,错误如下:

1 Accessdeniedforuser'xxx_us@10.xxx.xxx.xxx'(usingpassword:YES)

真是奇了怪了,这个用户创建时指定的是通配符 '%',而且在别的机器都可以连接。又把测试脚本放在以前一直运行的环境(PHP 7)中,能运行通过。

看来是是环境问题(PHP 5.4)了,回过头来看那句报错,发现用户名好像被截断了(应该是xxx_user),是不是显示的问题,随便改一个用户名试试,同样报错,用户名却没有截断。这时又想了想是不是 MySQL 的版本太高(5.7.10)了。找了个 MySQL 5.5 的环境,创建相同的用户却发现报错了:String 'xxx_user' is too long for user name (should be no longer than 16)。查询 MySQL 文档发现:MySQL user names can be up to 32 characters long (16 characters before MySQL 5.7.8). http://dev.mysql.com/doc/refman/5.7/en/user-names.html

这样看来应该是老版 PHP 的 mysqli 扩展内部限定了用户名的长度,但新版的 MySQL 却可以创建更长的用户名了。知道原因了就很好办了,创建一个短用户名 OK 了。其实也是阴差阳错,因为新库是多应用共有,所以用户名创建的比较长。_(┐「ε:)_

mysql 用户名 长度_一个 MySQL 用户名长度的坑相关推荐

  1. mysql 表列表_一个MySQL表中的多列表显示

    从MySQL表中显示多列时遇到问题 这很简单 - 我有28条记录,我想做7行4行 - 每条记录只有两列 - id#和name(表中的"句柄"). 我的问题是,当我使用 > $ ...

  2. MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结

    MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是 ...

  3. mysql的字段长度_【mysql】字段类型和长度的解释

    int(11)最大长度是多少,MySQL中varchar最大长度是多少? int(11)最大长度是多少? 在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度. 这个11代表 ...

  4. Mysql 唯一索引长度_关于mysql索引长度的相关内容总结

    MySQL优化之-索引具体代码分析:索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型.根据存储引擎定义每个表的最大索引数和最大索引长度.所有存 ...

  5. mysql查看用户名表_在Mysql中如何显示所有用户?

    这是一个mysql初学者经常问到的一个问题,今天我们就带大家看看是如何在Mysql中显示所有用户的.通常我们在mysql中使用SHOW DATABASES可以显示所有的数据库,SHOW TABLES将 ...

  6. mysql float字节长度_分析MySQL数据类型的长度

    分析MySQL数据类型的长度 MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length).VARCHAR(Length).TINYINT(Length). SMAL ...

  7. mysql第三章关系模型_一个MySQL关系模型只有三个关系(二维表)组成。_学小易找答案...

    [判断题]DELETE语句功能是对表中所有记录或满足条件的记录进行批量删除. [填空题]The computer's entire ____ was on a single board. [单选题]下 ...

  8. mysql for update场景_一个mysql死锁场景实例分析

    前言 最近遇到一个mysql在RR级别下的死锁问题,感觉有点意思,研究了一下,做个记录. 涉及知识点:共享锁.排他锁.意向锁.间隙锁.插入意向锁.锁等待队列 场景 隔离级别:Repeatable-Re ...

  9. mysql dos入门_【Mysql】初学命令行指南

    MYSQL初学者使用指南与介绍 一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbi ...

最新文章

  1. 在 Linux 上模拟系统负载
  2. iphone同步助手_iPhone怎么批量删除联系人?
  3. windows编程一日一练(3)
  4. php环境搭建5.6_WIN8.1下搭建PHP5.6环境
  5. NDK编译c包含C++头文件时,出现 error: unknown type name 'class' 的解决方法
  6. hive mysql 字符集_Hive字符编码
  7. 我的docker随笔37:使用gitlab和jenkins实现CICD
  8. 第 3 章 MybatisPlus 注入 SQL 原理分析
  9. jquery上传图片插件(支持各种功能)
  10. gimp中文版教程_Gimp中文经典入门实用教程(合辑).pdf
  11. java 中的惰性初始化_java惰性初始化
  12. r7 5800x配什么主板和显卡
  13. 面试总结三 --- 浏览器与网络
  14. JS 逆向的时候 Python 如何调用 JavaScript 代码?「建议收藏哦!」
  15. uni-app 页面组件生命周期
  16. 研招考试科目计算机专业课408代表什么?
  17. vue防抖注册全局_vue防抖节流函数---组件封装,防止按钮多次点击
  18. CCD、CMOS和像素
  19. python作业火车票订购系统_Python脚本实现12306火车票查询系统
  20. 从一条sql的执行流程来详细了解Buffer Pool

热门文章

  1. QT学习日记17——Qt数据库
  2. matlab稳定性实验分析,实验 控制系统稳定性分析的MATLAB实现
  3. 聚观早报 | 特斯拉上海工厂被曝停产;富士相机X-Pro 3已停产
  4. 贝叶斯法则的举例分析
  5. python人工智能大全_(自兴人工智能)Python 列表(List)的灵活使用
  6. 计算机C语言好学吗?要是想自学应该怎么办?大学挂科赶紧恶补!
  7. js重新加载页面的方法
  8. 萌生to绽放 ▏2个月打造2亿销量的爆款理财产品
  9. AD(九)原理图Value值核对、网路编号核对、元件名称核对
  10. Linux命令之pwd