MySQL - 常见问题与解决方案
23 Aug 2020
mysql
MySQL 作为一款使用者众多的数据库软件,在业内有着极高的评价。但是我们开发者在日常使用过程中,难免会遇到一些比较棘手的问题,影响我们的开发进程。这里收集了我在使用 MySQL 过程中遇到的问题,以及我最终的解决方法。
ERROR 2002 (HY000) §
错误描述 §
Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
错误原因 §
出现该错误可能原因是 MySQL 服务并不运行在本地计算机上,或者由于一些原因无法直接访问到本地 MySQL 服务。
解决方式 §
使用 -h
参数的 mysql
命令:
$ mysql -h <host_ip> -u <username> -p
这样可以通过手动 MySQL 服务器 IP 进而实现连接。
ERROR 1045 (28000) §
错误描述 §
Access denied for user ‘xxx’@’xxx.xxx.xxx.xxx’ (using password: YES)
错误原因 §
出现该错误的原因通常是 MySQL 服务并不运行在本地计算机上,而用户是使用 IP 地址访问远程 MySQL 服务器的。由于安全原因,MySQL 默认不允许用户远程登录 DBMS ,而只允许来自 localhost
或者 127.0.0.1
的连接,这就导致了该错误的产生。
解决方式 §
先在 MySQL 服务器上登录 DBMS :
$ mysql -u <username> -p
Enter password: # 输入用户名对应的密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.18 MySQL Community Server - GPL
Copyright (c) 2000, 2020, 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> grant all on <database>.* to '<username>'@'%'; mysql> quit;
-
更改配置数据库法:
mysql> use mysql; # 使用 mysql 配置数据库 Database changed mysql> update user set host = '%' where user = '<username>'; # 更改登录位置权限 Query OK, 1 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0 mysql> flush privileges; # 刷新 MySQL 的系统权限相关表 mysql> quit;
重启数据库即可。
更多… §
其它相关问题会持续更新…