zoukankan      html  css  js  c++  java
  • MySql 所遇到的问题及其解决方法

    1.ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

    > 检查mysqld状态
    #/etc/rc.d/init.d/mysqld status
    如果是关闭的,开启
    service mysqld restart

    2.ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    可能是由于第一次进入没设置密码,或者密码错误。

    1)关闭mysql服务

    #/etc/init.d/mysqld stop 

    2)开启安全模式 & 后台运行

    #mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

    3)登录

    mysql -u root mysql 

    方法1:

    #use mysql;

    #update user set password=PASSWORD('newpass') where user = 'root';

    #flush privileges; // 记得要这句话,否则如果关闭先前的终端,又会出现原来的错误

    #quit

    #/etc/init.d/mysqld restart

    #mysql -u root -p

    输入新密码即可

    方法2:

    #mysql> insert into user (Password,User) values(PASSWORD('newpass'),'root');

    #mysql> quit;

    #/etc/init.d/mysqld restart

    #mysql -u root -p

    3.mysql创建用户以及授权

    mysql>create user guest identified by '123456'; // 创建一个guest用户

    mysql>grant all privileges on mytestdb.* to 'guest'@'localhost' identified by '123456'; // 授予guest在mytestdb上的权限。如果是本地的mysql,@后面用localhost;如果是远程的,采用@'%'。

    mysql>flush privileges; // 刷新权限

    mysql>quit

    2.mysql_real_connect连接数据库的错误:

    关于如何用mysql_real_connect()连接远程数据库

    http://www.cnitblog.com/guopingleee/archive/2009/02/14/54548.html

    (gdb) p m_pszIPAddress
    $1 = "localhost", '00' <repeats 54 times>
    (gdb) p m_pszUserName
    $2 = "root", '00' <repeats 59 times>
    (gdb) p m_pszUserPassword
    $3 = "1234", '00' <repeats 59 times>
    (gdb) p m_pszDatabaseName
    $4 = "mytestdb", '00' <repeats 55 times>

    假如第二个参数

    const char *host, //连接主机

    设置为 localhost , 调用 mysql_real_connect 可以正常运行成功。

    改为 192.168.1.100 时,则报如下错误:

    $2 = "Access denied for user 'root'@'' to database 'mytestdb', 42000", '00' <repeats 961 times>

    执行下面代码后,错误提示变为:

    mysql -u root -p

    输入密码

    grant all privileges on 数据库名.* to 'root'@'%'; // 数据库名如:mytestdb

    $1 = "Access denied for user 'root'@'192.168.88.131' (using password: YES), 28000", '00' <repeats 948 times>

    不知道应该如何部署mysql的数据库。

    3.

    Q: 当在另一台机器上登录MySQL时出现如下错误:

        ERROR 2003 (HY000): Can't connect to MySQL server on 'x.x.x.x' (111)

    A: 原因是MySQL考虑到安全因素,默认配置只让从本地登录

        打开 /etc/mysql/my.cnf 文件,找到 bind-address = 127.0.0.1 修改为 bind-address = 0.0.0.0 //  /etc/mysql/my.cnf找不到此文件.

        重启mysql : sudo /etc/init.d/mysql restart

     Q: 还一种情况出现类似下面的错误:

        ERROR 1045 (28000): Access denied for user 'test'@'x.x.x.x' (using password: NO)

    A: 原因是没有给登录用户名设置远程主机登录的权限。

        在本地用 root 登录: mysql -u root -p

        修改 MySQL 数据库中 user 表中 对应用户名的 Host 字段,将 localhost 改为 %

        use mysql;

        update user set Host = '%' where User = 'username';

  • 相关阅读:
    preprocess
    数组
    共用体
    动态内存管理函数
    C链表
    文件的定位与出错检查
    字符串读写函数
    C文件操作
    位运算
    爱好-超级IP:超级IP
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/4323664.html
Copyright © 2011-2022 走看看