zoukankan      html  css  js  c++  java
  • 数据库各种问题

    MySQL连接报错 1130

    用户客户端连接非本地的mysql服务时报错,错误提示 ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server

    解决方案: 

    1. 在服务器中登录mysql(安装目录下,bin下)

    ./mysql -u root -p 

    2. 进入mysql数据库

    mysql> use mysql;

    3. 查看user 表host 字段(可选)

    mysql> select host,user from user;

    4. 修改host值(以“%”通配符,增加在主机/ip地址),当然也可以增加一条数据

    mysql> update user set host='%' where user='root';

    5. 刷新mysql系统权限相关表

    mysql> flush privileges;

    6.重启mysql服务(确保修改生效)


     报错超过最大连接数

    执行以下sql,

    update user set max_questions=0;
    flush privileges;


     

    mysql下的user表为空


    1、首先修改my.cnf文件里面的sql_mode值,因认5.6之后的默认值就是下面的两个
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    需要把STRICT_TRANS_TABLES去掉,即改为:

    # vi /usr/local/mysql/my.cnf

    sql_mode=NO_ENGINE_SUBSTITUTION


    注:
    简单来说STRICT_TRANS_TABLES这个是启用严格模式,进入安全模式后如果启用了严格模式向表插入数据插入不了的;
    my.cnf的位置:/usr/local/mysql/my.cnf

    2、停止mysql服务

    # service mysql stop

    以安全模式启动MySQL
    # mysqld_safe –skip-grant-tables &
    在另一个终端登录mysql
    # mysql -uroot -p
    回车后提示输入密码,不需要输入密码,直接回车就可以进入mysql

    3、查看下有几个实例
    mysql> show databases;
    使用mysql实例
    mysql> use mysql;
    查看有多少表
    mysql> show tables;
    查看user表有没有数据
    mysql> select * from user;

    4、向user表插入root用户
    INSERT   INTO   user   (Host,User,Password)   VALUES( 'localhost', 'root',password( '123456'));

    5、更新root用户权限
    mysql> update user set
    Host='localhost',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root';commit;

    6、停止mysql服务
    # service mysql stop

    7、将sql_mode修改回原来的值
    # vi /usr/local/mysql/my.cnf
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    8、启动mysql服务
    # service mysql start
    因这个是正常的启动mysql了,这时候验证一下root用户登录是否正常了,也就是正常的登录mysql
    # mysql -uroot -p
    回车后输入密码,如果不相信是否还需要输入密码,可以先直接回车试验一下;
    正常情况下登录进mysql了,再查看一下mysql下的user表是否有数据了。

  • 相关阅读:
    Linux下安装FTP服务(Ubuntu)
    Ubuntu下无法使用Secure_CRT连接服务器
    Mysql 锁机制
    PHP提取HTML代码中img标签下src属性
    Mysql 隐式转换
    PHPExcel在TP下使用
    ThinkPHP同时操作多个数据库
    PHP 时间相关操作
    ThinkPHP输入验证和I方法使用
    ThinkPHP模板内使用U方法
  • 原文地址:https://www.cnblogs.com/binghuaZhang/p/13994763.html
Copyright © 2011-2022 走看看