开发者社区 问答 正文

python-CentOS Droplet上的MySQL数据库问题

我正在为网站和应用程序的一部分设置服务器,并且正在使用运行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数据库。单击此处立即安装。“”“”

展开
收起
被纵养的懒猫 2019-09-29 18:16:52 762 分享 版权
阿里云 AI 助理回答

遇到您描述的问题,看起来是由于Perl的DBD::mysql模块与MySQL 8.0不兼容导致的一系列问题。考虑到您使用的是Python 2.7和Django 1.12,理论上这些版本可能更适配较旧版本的MySQL,如5.7。因此,建议您采取以下步骤来解决这个问题:

  1. 回退到MySQL 5.7

    • 首先,确保备份您的数据库以防数据丢失。
    • 卸载MySQL 8.0。您可以使用yum remove mysql-community-server(或相应的命令,具体取决于安装方式)。
    • 安装MySQL 5.7。您可以从MySQL的官方网站下载适合CentOS 7的MySQL 5.7的RPM包,并按照官方文档进行安装。
  2. 安装Perl DBD::mysql模块: 在成功安装并启动MySQL 5.7后,尝试安装Perl的DBD::mysql模块。可以通过CPAN(Comprehensive Perl Archive Network)来完成这个操作。在服务器上运行以下命令:

    sudo cpan DBD::mysql
    

    在安装过程中,如果被问及MySQL的详细信息(比如socket路径、密码等),请根据MySQL 5.7的实际配置提供。

  3. 检查和配置连接设置: 确保您的网站和应用程序的数据库连接设置正确指向MySQL 5.7的服务。这包括主机名(通常是localhost)、端口(默认为3306)、用户名、密码以及数据库名称。

  4. 测试连接: 在完成上述步骤后,通过命令行工具(如mysql命令)尝试手动连接到数据库,以验证连接是否正常工作。

  5. 监控和优化: 如果一切顺利,继续观察应用运行情况,确保没有其他因数据库版本变更引起的问题。同时,考虑未来升级到更现代的技术栈,因为Python 2.7和Django 1.12都已经过时,不再受到官方支持,可能会有安全风险和性能问题。

请注意,长期来看,由于Python 2.7已经停止维护,且Django 1.12也已非常老旧,为了保持系统的安全性、稳定性和获取最新的功能,计划迁移到Python 3和更新版本的Django是非常必要的。同时,随着技术的发展,MySQL 8.0提供了许多新特性和性能改进,未来在解决了兼容性问题后,升级到MySQL 8.0也是值得考虑的。您也可以通过ECS一键诊断全面排查并修复ECS问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答