zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    Ubuntu修改源
    设置Div多行文本超出时,以省略号代替
    通过修改 Apache 的配置文件 htaccess 文件实现自定义404页面
    图片压缩的几种工具(初稿)
    DFA算法 处理屏蔽词库
    Xcode版本太低引发的bug,xcode各种版本下载方式详解
    Cocos2dx3.11.1Android播放视频,后台 黑屏,无法记忆播放bug修改
    cocos2d-x视频控件VideoPlayer的用户操作栏进度条去除(转载)
    python操作文件案例二则
    Live2d-cocos2dx教程(一)例子搭建及运行
  • 原文地址:https://www.cnblogs.com/jiangxinnju/p/5894225.html
Copyright © 2011-2022 走看看