问题描述:
新建了一个IP地址,在使用DataGrip的时候,可以连上,但没有办法正常访问数据库。就像下图这样:
而当我们使用虚拟机连接的时候,会发现没有办法通过本机进行连接 ,只能使用远程账户连接才能成功访问数据库内容。
MySQL在登录的时候,无法通过本地连接的方式登录到MySQL账户上。最直接的表现就是下面这样:
本机访问:
[root@localhost ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 5.6.51 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
这里虽然可以登录到MySQL数据库中,但是实际显示的数据库应该包含至少三个,information_schema、mysql、performance_schema。
远程访问:
[root@localhost ~]# mysql -uroot -h192.168.153.133 -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 38
Server version: 5.6.51 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myschool |
| mysql |
| performance_schema |
| test01 |
+--------------------+
5 rows in set (0.00 sec)
由于只有通过远程方式访问的时候,我们才能查看到数据库内容。所以猜测可能是配置用户操作权限的时候配置出现了问题。
这里SQLyog可以连接的上,选择mysql数据库中的user表,显示如下:
use mysql;
select * from user;
我们可以看出,localhost本机用户在连接时用户和密码字段都是空值。我们需要对其进行赋值。
为其重新分配user和password
GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY '123123';
FLUSH PRIVILEGES;
我这里在修改权限的时候会出现1045错误代码,错误代码如下:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY '123123'; ERROR 1045 (28000): Access denied for user ''@'localhost' (using password: NO)
显示用户拒绝访问。
这里则是因为我们的密码设置有问题,需要进行修改。修改密码格式如下:
mysql> USE mysql; Database changed mysql> UPDATE user SET authentication_string="123123" WHERE user="root"; Query OK, 1 row affected (0.39 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> FLUSH privileges; # 刷新保存 Query OK, 0 rows affected (0.13 sec)
下面,就可以继续进行操作了~
再次登录我们会发现此时用户和密码都已经更改,再次尝试连接。这次可以成功连接了。
现在就能成功连上DataGrip啦~