面试题答案
一键面试常见连接错误及解决方法
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'host' (11001)")
- 原因:通常是因为指定的主机地址无法访问,可能是主机名错误、网络问题或MySQL服务未在指定主机上运行。
- 解决方法:
- 检查主机地址是否正确,确保MySQL服务确实运行在该主机上。
- 检查网络连接,可通过ping命令测试与主机的连通性。
- 确认MySQL服务已启动。
pymysql.err.OperationalError: (1045, "Access denied for user 'user'@'host' (using password: YES)")
- 原因:用户名或密码错误,或者用户没有被授予在指定主机上访问MySQL数据库的权限。
- 解决方法:
- 仔细检查用户名和密码是否正确,注意区分大小写。
- 使用MySQL命令行工具以管理员身份登录,执行
GRANT ALL PRIVILEGES ON *.* TO 'user'@'host' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
语句,确保用户有相应权限。
pymysql.err.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
- 原因:通常发生在试图通过Unix套接字文件连接本地MySQL服务器,但套接字文件路径不正确或MySQL服务未使用该套接字文件。
- 解决方法:
- 确认MySQL配置文件(通常是
my.cnf
)中指定的套接字文件路径是否正确,若不正确,修改配置文件并重启MySQL服务。 - 若MySQL服务没有使用套接字文件进行本地连接,可尝试使用TCP/IP方式连接(指定主机为
127.0.0.1
)。
- 确认MySQL配置文件(通常是
pymysql.err.ProgrammingError: 1049 (42000): Unknown database 'database_name'
- 原因:指定要连接的数据库不存在。
- 解决方法:
- 检查数据库名称是否拼写正确。
- 如果数据库确实不存在,可使用MySQL命令行工具登录,执行
CREATE DATABASE database_name;
语句创建数据库。