问题
在OpenShift V3上启动mysql部署时,我会得到以下异常:
mysql.user table is damaged. Please run mysql_upgrade我不能运行mysql_upgrade,因为pod还没有准备好。
问题
我有以下问题
发布于 2017-10-19 15:01:51
如果吊舱无法启动,您可以使用数据将卷挂载到另一个吊舱,并下载(oc rsync,这里的交互式教程)您在/var/lib/mysql/data/下安装在数据库pod中的内容。然后,您可以尝试从其中恢复数据。
通常,如果您在较新的sql版本上处理旧的数据库转储sql脚本(使用mysqldump创建),则可能会发生这种情况。在这种情况下,root用户也可能被从表中删除(如果不在旧数据库中的话)。如果您创建了这样一个转储,仍然有旧的转储,并且它“足够好”,您应该能够按照以下步骤再次导入原始数据并防止这种情况:
mysqldump从旧的MySQL数据库版本创建的数据库转储的备份副本,这样,如果情况恶化,始终可以返回数据库转储。sql文件并删除操作mysql.user表的所有内容;也就是说,删除-- Table structure for table 'user'和-- Dumping data for table 'user'部分下的行并保存修改后的文件。我假设您在环境变量中、在MySQL部署配置中指定了用户和密码)。sql将步骤2中创建的修改后的mysql.user转储文件(即不影响mysql.user表的文件)复制到数据库荚中。GRANT ALL PRIVILEGES ON <database> TO '<mysql_user>'@'%'将所有权限授予应用程序数据库上的用户(适当替换<database>和<mysql_user> )。mysql_upgrade -u root。https://stackoverflow.com/questions/46829192
复制相似问题