• 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';

  • 相关阅读:
    vue2:p26 webpack利用cleanwebpackplugin自动清理dist目录生成的旧生产文件
    在CentOS中安装和使用nginx
    无法下载外网Docker镜像的解决方案
    gofs使用教程基于golang的开源跨平台文件同步工具
    Stream API 简单介绍入门使用
    .npmrc 项目的 默认安装配置
    ncc koa 后台源码加密打包工具 @vercel/ncc webpack node打包更正规
    koa 文件下载 pdf预览 两个接口 nodejs chromeDownload chromePreview
    koagenerator koa 脚手架
    tag 转 分支 branch
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/4323664.html
Copyright © 2020-2023  润新知