将debian linux上的mysql服务器升级到5.7.13,并且服务器已成功启动一次,以便我可以启动phpmyadmin,服务器最终关闭。我现在还没有线索为什么它首先启动,然后关闭它自己的决定(?),最后拒绝再启动。
Syslog内容如下:
Jun 10 13:34:26 webseiten mysqld[22976]: /usr/sbin/mysqld (mysqld 5.7.13) starting as process 22976 ...
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: PUNCH HOLE support available
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Mutexes and rw_locks use GCC atomic builtins
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Uses event mutexes
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Compressed tables use zlib 1.2.7
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Using Linux native AIO
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Number of pools: 1
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Not using CPU crc32 instructions
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Completed initialization of buffer pool
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Highest supported file format is Barracuda.
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Log scan progressed past the checkpoint lsn 47810183878
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Doing recovery: scanned up to log sequence number 47810191058
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Doing recovery: scanned up to log sequence number 47810191058
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Database was not shutdown normally!
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Starting crash recovery.
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Starting an apply batch of log records to the database...
Jun 10 13:34:26 webseiten mysqld[22976]: InnoDB: Apply batch completed
Jun 10 13:34:27 webseiten mysqld[22976]: InnoDB: Removed temporary tablespace data file: "ibtmp1"
Jun 10 13:34:27 webseiten mysqld[22976]: InnoDB: Creating shared tablespace for temporary tables
Jun 10 13:34:27 webseiten mysqld[22976]: InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
Jun 10 13:34:27 webseiten mysqld[22976]: InnoDB: File './ibtmp1' size is now 12 MB.
Jun 10 13:34:27 webseiten mysqld[22976]: InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
Jun 10 13:34:27 webseiten mysqld[22976]: InnoDB: 32 non-redo rollback segment(s) are active.
Jun 10 13:34:27 webseiten mysqld[22976]: InnoDB: Waiting for purge to start
Jun 10 13:34:27 webseiten mysqld_safe: mysqld from pid file /var/run/mysqld/mysqld.pid ended
从之前的条目中我可以看到,在该行之后,日志序列应该继续使用类似......
Jun 10 12:35:38 webseiten mysqld[14939]: InnoDB: 5.7.13 started; log sequence number 47810025436
Jun 10 12:35:38 webseiten mysqld[14939]: Plugin 'FEDERATED' is disabled.
Jun 10 12:35:38 webseiten mysqld[14939]: InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
......但这不再出现了。
我试过 - 出于纯粹的直觉:
innodb_force_recovery = 1
......但这对任何事都没有帮助。
发生这种情况时,用户应该做什么?
===========================================
删除了整个数据库/ var / lib / mysql /。 在升级之前播放了备份。 重启服务器。工作了一下。 然而抱怨“innodb_force_recovery”。 从my.cnf中删除了。
试图重新启动:再次失败! 但这一次与其他消息(从上一个成功的步骤到中止序列的开始):
Jun 10 14:38:42 webseiten mysqld[27097]: InnoDB: Highest supported file format is Barracuda.
Jun 10 14:38:42 webseiten mysqld[27097]: InnoDB: Upgrade after a crash is not supported. This redo log was created before MySQL 5.7.9, and we did not find a valid checkpoint. Please follow the instructions at http://dev.mysql.com/doc/refman/5.7/en/upgrading.html
Jun 10 14:38:42 webseiten mysqld[27097]: InnoDB: Plugin initialization aborted with error Generic error
Jun 10 14:38:43 webseiten mysqld[27097]: Plugin 'InnoDB' init function returned error.
Jun 10 14:38:43 webseiten mysqld[27097]: Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
Jun 10 14:38:43 webseiten mysqld[27097]: Failed to initialize plugins.
Jun 10 14:38:43 webseiten mysqld[27097]: Aborting
...会尝试制作http://dev.mysql.com/doc/refman/5.7/en/upgrading.html ...
==============================
旧版本为5.5.47 ...因此,根据“http://dev.mysql.com/doc/refman/5.7/en/upgrading.html”,升级到5.7.xx不支持。 (服务器多年没有升级 - 你还没有完成学习!)
- >要降级,从那里导出,然后再次升级,然后导入(这将需要数小时)......
=============================
...执行的
apt-get purge mysql-server mysql-common
...删除所有配置和数据文件。 执行...
apt-get install mysql-server-5.5
...接收版本5.5.49。
尝试启动(在完全清除的基础上),这会产生错误:
Jun 10 15:24:17 webseiten mysqld_safe[3503]: 160610 15:24:17 [ERROR] Can't read from messagefile '/usr/share/mysql/english/errmsg.sys'
Jun 10 15:24:17 webseiten mysqld_safe[3503]:
Jun 10 15:24:17 webseiten mysqld_safe[3503]: Installation of system tables failed! Examine the logs in
Jun 10 15:24:17 webseiten mysqld_safe[3503]: /var/lib/mysql for more information.
查看'/usr/share/mysql/english/errmsg.sys',这显示为拥有mysql,拥有“rw-r - r--”。 - 不知道什么可能阻碍用户“mysql”访问它,让上面的所有目录都适合所有人。
/ var / lib / mysql /没有日志文件(为什么要这样?)!
==========================
嗯:Purge没有删除配置文件(/etc/mysql/my.cnf)。并且该文件仍然有一些较新的5.7.13版本的条目(嗯:安装程序确实创建了该配置的新版本,但似乎合并了以前版本中的一些条目)...
=========================
现在,我们有:
160610 15:44:30 [Note] /usr/sbin/mysqld (mysqld 5.5.49-0+deb7u1) starting as process 4551 ...
160610 15:44:30 [ERROR] Can't read from messagefile '/usr/share/mysql/english/errmsg.sys'
160610 15:44:30 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Unknown error 1146
160610 15:44:30 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
160610 15:44:30 InnoDB: The InnoDB memory heap is disabled
160610 15:44:30 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160610 15:44:30 InnoDB: Compressed tables use zlib 1.2.7
160610 15:44:30 InnoDB: Using Linux native AIO
160610 15:44:30 InnoDB: Initializing buffer pool, size = 128.0M
160610 15:44:30 InnoDB: Completed initialization of buffer pool
160610 15:44:30 InnoDB: highest supported file format is Barracuda.
160610 15:44:30 InnoDB: Waiting for the background threads to start
160610 15:44:31 InnoDB: 5.5.49 started; log sequence number 1595675
160610 15:44:31 [ERROR] Aborting
160610 15:44:31 InnoDB: Starting shutdown...
160610 15:44:32 InnoDB: Shutdown completed; log sequence number 1595675
160610 15:44:32 [Note]
160610 15:44:32 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
我不知道为什么用户mysql无法读取这个“messagefile”。 我不知道如何在服务器启动时运行mysql_upgrade。 我不知道,“未知错误1146”将是什么......
我的IT主厨想出了这样的想法,即消息文件可能没有降级到5.5,但仍然可以用于版本5.7,因此技术上很好地“不可读”服务器进程。意思是“不可读”与“不可读”不同,因为它通常用于“不可访问”......
因此问题发展到“如何降级此消息文件?”......
......好吧:将消息文件降级到版本5.5.50也无济于事。仍然“不可读”。