mysql 127.0.0.13306_MySQL 问题解决

问题如下:

Failed to Connect to MySQL at 127.0.0.1:3306 with user root Access denied for user ‘root’@’localhost’

我的问题是terminal中可以使用管理员账号登录mysql,但是在使用workbench时,链接就会出现上面的问题

问题如图

3qqUr2.png mysql1.png

网上看了许多方法,试验了几个,发现新建一个用户解决办法最简单。

创建用户

格式:create user ‘userName’@’localhost’ identified by ‘passward’;

mysql> create user 'dfzxk'@'localhost' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

给user上帝权限

mysql> grant all on *.* to dfzxk@"%" identified by "123456";

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql授权东西太多,不多说了

查看用户权限

mysql> show grants for dfzxk;

+--------------------------------------------+

| Grants for dfzxk@% |

+--------------------------------------------+

| GRANT ALL PRIVILEGES ON *.* TO 'dfzxk'@'%' |

+--------------------------------------------+

1 row in set (0.00 sec)

e2MRNv.png mysql2.png

再次使用workbench,已经链接成功了。

遇到的坑

mysql> create user 'dflx'@'localhost' identified by '123456';

ERROR 1396 (HY000): Operation CREATE USER failed for 'dflx'@'localhost'

据说是已经建立了这个用户,我Ubuntu的xwindows桌面崩溃过一次,因为\目录太小的原因,我准备增大根目录的容量,把\home移动5g给它,可是现在卡在了这里。

sql语句查看一下

mysql> show database;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database' at line 1

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| mysql_shiyan |

| performance_schema |

| sys |

| test |

+--------------------+

6 rows in set (0.00 sec)

mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select host,user from mysql.user;

+-----------+------------------+

| host | user |

+-----------+------------------+

| % | dfzxk |

| localhost | debian-sys-maint |

| localhost | dflx |

| localhost | dfzxk |

| localhost | mysql.session |

| localhost | mysql.sys |

| localhost | root |

+-----------+------------------+

7 rows in set (0.00 sec)

mysql> show grants for dflx;

ERROR 1141 (42000): There is no such grant defined for user 'dflx' on host '%'

果然我的dflx用户还在,我workbench链接了一下,成功了,但是说没有授权,可是我workbench进行了,增加,查询,好像没有问题啊(嘻嘻)

uMVN3e.png mysql3.png

show databases;

use test;

show tables;

select * from user;

insert into user values('dfzxk','123456');

结果如下:

mUbyIf.png mysql0.png

学的是SQL server,对于mysql这些有些不太熟悉,但是sql语法大体通用的。

修改root密码如下

上面说的

mysql> set password for root@localhost=password("123456");

Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> select host,user,grant_priv from user;

+-----------+------------------+------------+

| host | user | grant_priv |

+-----------+------------------+------------+

| localhost | root | Y |

| localhost | mysql.session | N |

| localhost | mysql.sys | N |

| localhost | debian-sys-maint | Y |

| localhost | dflx | N |

| % | dflx | N |

+-----------+------------------+------------+

6 rows in set (0.04 sec)

mysql> select host,user,grant_priv,alter_priv,password_expired from user;

+-----------+------------------+------------+------------+------------------+

| host | user | grant_priv | alter_priv | password_expired |

+-----------+------------------+------------+------------+------------------+

| localhost | root | Y | Y | N |

| localhost | mysql.session | N | N | N |

| localhost | mysql.sys | N | N | N |

| localhost | debian-sys-maint | Y | Y | N |

| localhost | dflx | N | N | N |

| % | dflx | N | Y | N |

+-----------+------------------+------------+------------+------------------+

6 rows in set (0.00 sec)

mysql> select host,user,grant_priv,pass_last_change from user;

ERROR 1054 (42S22): Unknown column 'pass_last_change' in 'field list'

mysql> select host,user,grant_priv,pass_last_changed from user;

ERROR 1054 (42S22): Unknown column 'pass_last_changed' in 'field list'

mysql> select host,user,grant_priv,password_last_changed from user;

+-----------+------------------+------------+-----------------------+

| host | user | grant_priv | password_last_changed |

+-----------+------------------+------------+-----------------------+

| localhost | root | Y | 2018-07-01 17:10:59 |

| localhost | mysql.session | N | 2018-07-01 17:11:00 |

| localhost | mysql.sys | N | 2018-07-01 17:11:00 |

| localhost | debian-sys-maint | Y | 2018-07-01 17:11:01 |

| localhost | dflx | N | 2018-07-07 21:10:00 |

| % | dflx | N | 2018-07-07 21:24:55 |

+-----------+------------------+------------+-----------------------+

6 rows in set (0.00 sec)

mysql> set password for root@localhost=password("123456");

Query OK, 0 rows affected, 2 warnings (0.02 sec)

我Ubuntu的xwindows桌面崩溃过一次,因为\目录太小的原因,

当时安装系统时看网上教程一大推说,给根目录10g就行了,swap是内存二倍,

感觉这个建议很坑啊,网上一大推抱怨这个\目录10g的,可是给根目录增加容量

不容易啊!我准备增大根目录的容量,把\home移动5g给它,可是现在卡在了这里。

我整理了半天垃圾,现在还是这个情况,如果\目录剩余太小了,会发生很可怕的问题。

dfzxk@satan-master:~$ df -h

文件系统 容量 已用 可用 已用% 挂载点

udev 1.9G 0 1.9G 0% /dev

tmpfs 382M 41M 342M 11% /run

/dev/sda8 9.4G 7.0G 2.0G 79% /

/dev/sda9 47G 13G 32G 30% /usr

tmpfs 1.9G 65M 1.8G 4% /dev/shm

tmpfs 5.0M 4.0K 5.0M 1% /run/lock

tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup

/dev/sda10 22G 1.4G 19G 7% /home

/dev/sda1 196M 29M 168M 15% /boot/efi

tmpfs 382M 40K 382M 1% /run/user/1003

参考文章:

[mysql Access denied for user root@localhost错误解决方法总结](http://www.111cn.net/database/mysql/44142.htm)

[MYSQL登录错误:mysqladmin: connect to server at 'localhost' failed](http://blog.csdn.net/j3smile/article/details/14134879)

[Failed to connect to mysql at 127.0.0.1:3306 with user root access denied for user 'root'@'localhost'(using password:YES)](https://stackoverflow.com/questions/25777943/failed-to-connect-to-mysql-at-127-0-0-13306-with-user-root-access-denied-for-us)

[

解决database - Failed to connect to mysql at 127.0.0.1:3306 with user root access denied for user 'root'@'localhost'](http://www.111cn.net/database/mysql/44142.htm)

[MySQL添加用户、删除用户与授权](http://www.cnblogs.com/wanghetao/p/3806888.html)

教您如何查看MySQL用户权限 [教您如何查看MySQL用户权限](http://www.cnblogs.com/cnteam/articles/4272460.html)

windows下出现问题

Microsoft Windows [版本 10.0.16299.125]

(c) 2017 Microsoft Corporation。保留所有权利。

C:\WINDOWS\system32>cd C:\mysql-5.7.20-winx64\mysql-5.7.20-winx64\bin

C:\mysql-5.7.20-winx64\mysql-5.7.20-winx64\bin>mysqld.exe

C:\mysql-5.7.20-winx64\mysql-5.7.20-winx64\bin>mysql

ERROR 1045 (28000): Access denied for user ‘ODBC’@’localhost’ (using password: NO)

C:\mysql-5.7.20-winx64\mysql-5.7.20-winx64\bin>mysql -u -p

ERROR 1045 (28000): Access denied for user ‘-p’@’localhost’ (using password: NO)

C:\mysql-5.7.20-winx64\mysql-5.7.20-winx64\bin>mysql -u root

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 5

Server version: 5.7.20 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

![mysql启动.jpg](https://upload-images.jianshu.io/upload_images/4976516-c5b0fc5406569a0e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `pdo_mysql.default_socket` 是 PHP 的配置选项之一,它用于指定 MySQL 数据库服务器的 Unix 套接字文件路径。当使用 PDO 连接 MySQL 数据库时,如果没有手动指定连接参数的 Unix 套接字路径,那么 PDO 将会使用 `pdo_mysql.default_socket` 指定的路径作为默认值。 如果你的 MySQL 数据库服务器安装在默认的位置,并且 PHP 和 MySQL 安装在同一台服务器上,你可以将 `pdo_mysql.default_socket` 设置为 `/var/run/mysqld/mysqld.sock`,这是许多 Linux 系统上 MySQL 默认的 Unix 套接字路径。如果你的 MySQL 数据库服务器安装在不同的位置,你需要根据实际情况修改 `pdo_mysql.default_socket` 的值。 你可以通过修改 `php.ini` 文件来设置 `pdo_mysql.default_socket`。在 `php.ini` 文件中搜索 `pdo_mysql.default_socket`,并将其设置为你需要的 Unix 套接字路径。如果你不知道 Unix 套接字文件的路径,可以通过运行 `mysql_config --socket` 命令来获取。 ### 回答2: php.ini是PHP的配置文件之一,它用于配置PHP的运行参数和选项。而pdo_mysql.default_socket是php.ini中的一个设置,用于指定PDO使用的MySQL套接字文件的路径。 MySQL套接字文件是MySQL数据库连接的一种方式,通过套接字文件,PHP可以与MySQL进行通信和交互。这个设置允许我们指定套接字文件的路径,以便PHP可以正确地连接到MySQL数据库。 在php.ini文件中,当pdo_mysql.default_socket没有设置时,PHP会尝试使用默认的套接字文件路径。这个默认的路径通常是由MySQL服务器的安装位置确定的。然而,如果MySQL服务器的安装位置不同,或者我们希望使用不同的套接字文件,就需要通过修改php.ini文件来指定pdo_mysql.default_socket的值。 例如,如果我们的MySQL服务器安装在/usr/local/mysql目录下,而默认的套接字文件路径是/tmp/mysql.sock,我们可以通过修改php.ini中的pdo_mysql.default_socket参数来指定新的套接字文件路径,如下所示: pdo_mysql.default_socket = /usr/local/mysql/mysql.sock 这样一来,PHP在连接MySQL数据库时就会使用我们指定的套接字文件路径。 总之,pdo_mysql.default_socket是php.ini中用于指定PDO使用的MySQL套接字文件路径的设置。根据实际需要,我们可以通过修改php.ini文件来设置该值,以确保PHP能够正确地连接到MySQL数据库。 ### 回答3: php.ini是PHP的配置文件,用于配置PHP运行环境的各种参数和选项。其中的pdo_mysql.default_socket是一个用于指定PDO连接MySQL数据库所使用的Unix套接字文件路径的选项。 由于PHP在连接MySQL数据库时,默认使用的是MySQL的TCP/IP协议进行通信,所以pdo_mysql.default_socket选项默认为空。这种情况下,PHP通过TCP/IP连接MySQL数据库,在连接字符串中指定MySQL服务器的IP地址和端口号。 如果想要使用Unix套接字文件进行连接,可以通过修改php.ini文件中pdo_mysql.default_socket的值来实现。例如,可以将pdo_mysql.default_socket的值设置为"/tmp/mysql.sock",表示连接MySQL数据库的时候使用套接字文件"/tmp/mysql.sock"。 使用Unix套接字文件连接MySQL数据库相对于TCP/IP连接有一些优势,如更快的速度、更高的安全性和更少的资源占用。因此,在某些情况下,使用Unix套接字文件连接MySQL数据库可能会更加适用。 需要注意的是,修改php.ini文件后,需要重启Web服务器或者PHP-FPM才能使修改生效。此外,还可以在代码中使用ini_set()函数来修改pdo_mysql.default_socket的值,在连接MySQL数据库之前进行动态配置。 综上所述,pdo_mysql.default_socket是用于指定PDO连接MySQL数据库所使用的Unix套接字文件路径的选项,在需要使用Unix套接字文件进行连接时,可以通过修改php.ini文件中的该选项的值来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值