• MYSQL常见错误及其解决方式


    欢迎和大家交流技术相关问题:
    邮箱: jiangxinnju@163.com
    博客园地址: http://www.cnblogs.com/jiangxinnju
    GitHub地址: https://github.com/jiangxincode
    知乎地址: https://www.zhihu.com/people/jiangxinnju

    ERROR 1130: Host 10.0.0.1 is not allowed to connect to this MySQL server

    在用远程连接MySQL服务器的数据库,不管怎么弄都是连接不到,错误代码是1130,ERROR 1130: Host 10.0.0.1 is not allowed to connect to this MySQL server
    猜想是无法给远程连接的用户权限问题。结果这样子操作MySQL库,即可解决。在本机登入MySQL后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称'%'。

    mysql -u root -p
    use mysql; 
    select `Host`, `User` from `user` where `User` = 'root';
    update user set host = '%' where user ='root'; 
    flush privileges; 
    select `Host`, `User` from `user` where `User` = 'root';
    

    第一句是以权限用户root登录;第二句:选择mysql库;第三句:查看mysql库中的user表的host值;第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址;第五句:刷新MySQL的系统权限相关表;第六句:再重新查看user表时。重启mysql服务即可完成。

    ERROR 1044 (42000):Access denied for user

    这个问题主要是因为授权用户本身的权限不足引起的。我们以root用户为例,需要注意到地方有以下几个方面:

    • MySQL的user表很重要。必须保证root用户在user表里面有两条记录,也就是
      root localhost ……..
      root 127.0.0.1 …….

    • 保证root用户拥有所有权限,也就是user表里面的所有字段里面对应的内容是Y

    • 在my.ini后者my.cnf里面有这个配置项的时候
      bind-address=localhost
      启用这个配置项可以保证安全

    Error: 1265 SQLSTATE: 01000 (WARN_DATA_TRUNCATED

    • 字符长度太短;
    • 乱码,更改统一的字符类型,比如更改字符类型为utf8;
    • 如果是 Enum,则可能是添加的字符不在enum类型范围内;
    • 另一可能是在alter table更改列设置时,影响原来存入的值,这时可将原值update为需要的类型值或删除这些原值再alter table

    error while loading shared libraries: libtinfo.so.5

    ncurses包(ncurses-libs-5.6)已经安装,运行mysql时仍然提示:

    mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

    此时只需要创建软连接即可,创建命令如下:

    ln -s /usr/lib/libncurses.so.5 /lib/libtinfo.so.5
    

    其中libncurses.so.5到底在哪个目录,不同的OS可能有所不同(比如SUSE X64就是在/lib64目录下),可以尝试使用ldd mysql命令查看mysql依赖的其它库在哪个目录,然后在对应目录查找是否有libncurses.so.5

    No curses/termcap library found

    源码安装MySQL 5.1.30,在./configure阶段报错如下:

    checking for tgetent in -lncurses... no
    checking for tgetent in -lcurses... no
    checking for tgetent in -ltermcap... no
    checking for tgetent in -ltinfo... no
    checking for termcap functions library... configure: error: No curses/termcap library found
    

    原因是缺少ncurses的相关库,按照下面方式安装ncurses即可:

    # RedHat系列
    yum list|grep ncurses
    yum -y install ncurses-devel
    yum install ncurses-devel
    
    # Debian系列
    apt-cache search ncurses
    apt-get install libncurses5-dev
    
  • 相关阅读:
    C#中StringBuilder类的使用总结
    java Socket长链接与消息推送源码与演示
    oracle merge into 小例
    webrtc 关闭摄像头
    WebRTC MediaRecorder API
    简单的菜单三
    简单的菜单二
    简单的菜单 一
    文件断点续传实现 ( 2-- C# 客户端)
    文件断点续传实现 (1 -- java实现)
  • 原文地址:https://www.cnblogs.com/jiangxinnju/p/5894225.html
Copyright © 2020-2023  润新知