Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 无法访问用户';根'@';本地主机';-终端_Mysql_Terminal - Fatal编程技术网

Mysql 无法访问用户';根'@';本地主机';-终端

Mysql 无法访问用户';根'@';本地主机';-终端,mysql,terminal,Mysql,Terminal,我在尝试访问mysql时被卡住了。这是我第一次,所以请对我耐心点 最初,我尝试设置Ruby和Rails,一切正常,连接到服务器时拒绝访问,所以我运行了这个命令 mysql -uroot -p 我尝试过各种密码,包括将其留空,然后出现此错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 我假设我需要为root用户重置密码,但我似乎无法让它工作 一种方法: 停止MySQL服务器

我在尝试访问mysql时被卡住了。这是我第一次,所以请对我耐心点

最初,我尝试设置Ruby和Rails,一切正常,连接到服务器时拒绝访问,所以我运行了这个命令

mysql -uroot -p
我尝试过各种密码,包括将其留空,然后出现此错误

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
我假设我需要为root用户重置密码,但我似乎无法让它工作

一种方法:

  • 停止MySQL服务器
  • 使用
    --skip grant tables
    选项启动MySQL服务器。它允许您无需密码即可连接到服务器

    /path/to/mysqld --skip-grant-tables &
    
  • 使用mysql客户端连接到服务器:

    mysql
    
  • 更改根密码(将NewPassord替换为所需密码):

  • 重新启动yout MySQL服务器

  • 还有其他方法可以重置MySQL根密码:
    @Muur最后一步对我不起作用(mysql版本14.14发行版5.7.19),我必须将查询更改为
    更新用户集身份验证\u string=password('1111'),其中user='root'
    更新用户设置密码\u expired=N其中user='root'

    我有一个类似的问题,这就像一个魅力-

    mysql的更高版本实现了更新的身份验证方案,但并非所有库都是最新的。通过在my.cnf中添加以下条目,可以恢复到经典身份验证

    [mysqld]
    
    # Only allow connections from localhost
    bind-address = 127.0.0.1
    
    # Some libraries not compatible with latest authentication scheme as per the SO article [1].
    default-authentication-plugin=mysql_native_password
    
    只需在/private/etc/my.cnf中添加以下内容

    #仅允许从本地主机进行连接
    绑定地址=127.0.0.1


    参考资料:

    我没有任何数据库名为
    mysql
    ,我有两个数据库:
    信息\u模式
    测试
    。我通过这个命令连接:`mysql-h127.0.0.1`就像通过
    mysql
    我得到了这个错误:
    ERROR 2002(HY000):无法通过socket'/tmp/mysql.sock'(2)
    连接到本地mysql服务器在我的情况下,我得到了以下错误:错误1054(42S22):字段列表中的未知列“password”。为此,我检查了用户表结构,发现列名是“authentication\u string”。遵循以下链接:我尝试过SudoMysqld_safe——跳过授权表,但不起作用。这个命令:/path/to/mysqld——跳过授权表&,对我很有用。Thx,我的mac是OSX10.11.6,mysql服务器5.7。17@pennychan您必须将
    /path/to
    替换为
    mysqld
    文件的实际路径。您可以从命令行运行
    查找mysqld
    ,它(可能)会向您显示该文件的路径。@b_dubb Thx,这正是我的意思
    [mysqld]
    
    # Only allow connections from localhost
    bind-address = 127.0.0.1
    
    # Some libraries not compatible with latest authentication scheme as per the SO article [1].
    default-authentication-plugin=mysql_native_password