• mysql问题小结


    1、数据表存在,但查询时提示不存在

    原因:默认情况下,mysql在windows对表名大小不敏感(lower_case_table_names=1),在linux上大小敏感(lower_case_table_names=0)。见更多

    解决办法:对配置文件/etc/my.cnf添加配置项

    [mysqld]    
    lower_case_table_names=1

    2、navicat远程连接mysql数据库出现1045错误

    原因:mysql服务没有授权

    解决办法:给远程登录用户添加所有机器都能访问的权限

    0use mysql;
    1grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option; 
    2、flush privileges;
    3select * from user;
    
    命令格式:grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;
    权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
    当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
    当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
    用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
    ‘连接口令’不能为空,否则创建失败。

     3、Navicat数据传输从本地到虚拟机时出现[Err] [Dtf] 1115 - Unknown character set: 'utf8mb4'

    原因:本地mysql版本为5.6,而虚拟机mysql版本为5.1,低版本不支持utf8mb4。

    解决办法:升级虚拟机mysql至少到5.5.3。

    4、同一段sql本地执行时间为0.4秒,而服务器带不动

    原因:本地mysql版本为5.6.x,服务器为5.7.x,由于语句复杂服务器mysql默认解析会把一些查询进行合并优化,这个逻辑可能出现问题,而合开关"derived_merge" 选项在5.6.x或更早期版本不可用。

    解决办法:关闭合开关,执行命令:set global optimizer_switch='derived_merge=off'。

  • 相关阅读:
    学习路径_Linux
    学习路径_stm32
    大小端判断
    linux下dbg
    vs code使用技巧实际总结
    书单(updating...)
    [转]单点登录原理
    [转]nginx基本配置与参数说明
    [转]linux 网络配置 (配置/etc/sysconfig/network-scripts/ifcfg-ethx)
    [转]nginx的安装与使用
  • 原文地址:https://www.cnblogs.com/aaron-shu/p/5930637.html
Copyright © 2020-2023  润新知