我正在为网站和应用程序的一部分设置服务器,并且正在使用运行CentOS 7的DigitalOcean Droplet。 但是,我根本无法从服务器连接到服务器上的数据库。当我安装MySQL 8.0时,该服务无法启动,它说它找不到mysql.sock,MySQL 5.7可以正常工作,但我总是在我的网站上看到“建立数据库连接错误”。用于连接到数据库的用户数据很好,因此得出的结论是缺少Perl MySQL DBD模块,但是当我们尝试安装该模块时,它将MySQL更新到8.0版,然后MySQL将不会启动。 我们不确定应该使用哪个版本,我们将不胜感激。 我们正在使用Python 2.7和Django 1.12
'''警告:您的系统上未安装Perl模块DBD :: mysql,因此Webmin将无法可靠地访问您的MySQL数据库。单击此处立即安装。“”“”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到您描述的问题,看起来是由于Perl的DBD::mysql模块与MySQL 8.0不兼容导致的一系列问题。考虑到您使用的是Python 2.7和Django 1.12,理论上这些版本可能更适配较旧版本的MySQL,如5.7。因此,建议您采取以下步骤来解决这个问题:
回退到MySQL 5.7:
yum remove mysql-community-server
(或相应的命令,具体取决于安装方式)。安装Perl DBD::mysql模块: 在成功安装并启动MySQL 5.7后,尝试安装Perl的DBD::mysql模块。可以通过CPAN(Comprehensive Perl Archive Network)来完成这个操作。在服务器上运行以下命令:
sudo cpan DBD::mysql
在安装过程中,如果被问及MySQL的详细信息(比如socket路径、密码等),请根据MySQL 5.7的实际配置提供。
检查和配置连接设置: 确保您的网站和应用程序的数据库连接设置正确指向MySQL 5.7的服务。这包括主机名(通常是localhost)、端口(默认为3306)、用户名、密码以及数据库名称。
测试连接: 在完成上述步骤后,通过命令行工具(如mysql命令)尝试手动连接到数据库,以验证连接是否正常工作。
监控和优化: 如果一切顺利,继续观察应用运行情况,确保没有其他因数据库版本变更引起的问题。同时,考虑未来升级到更现代的技术栈,因为Python 2.7和Django 1.12都已经过时,不再受到官方支持,可能会有安全风险和性能问题。
请注意,长期来看,由于Python 2.7已经停止维护,且Django 1.12也已非常老旧,为了保持系统的安全性、稳定性和获取最新的功能,计划迁移到Python 3和更新版本的Django是非常必要的。同时,随着技术的发展,MySQL 8.0提供了许多新特性和性能改进,未来在解决了兼容性问题后,升级到MySQL 8.0也是值得考虑的。您也可以通过ECS一键诊断全面排查并修复ECS问题。