首页 > 解决方案 > 安装 WARNING Illegal string offset 后无法访问我的 mysql 表

问题描述

我正在使用 Mojave 10.14.6 并移动了我的 /MAMP/ 5.7 => 7.4.2。保存备份的文件夹。(MAMP 一直在冻结,我不得​​不不断地重新启动它)。

然后我安装了最新的 MAMP 6.3 版。PHP 7.4.12 MYSQL 5.7.32 也有文件夹 /db/mysql57/

没有任何效果,但最后我设法让 phpMyAdmin 打开,最后显示我的备份表。

为了能够查看表,我刚刚复制了 BACKED UP /db/mysql57/ 文件夹。但是我遇到了一些错误(我相信与旧版本相同的错误......(见图)。

我尝试安装最新的 phpMyAdmin 并没有帮助。由于我没有设法修复它,我说,我会将 BACKUP 副本移动到 /Applications/ 并将新副本重命名为 /MAMP BAK/

所以,现在,我想回到我以前的工作版本(我备份的那个),但工作版本给了我下面的错误。我宁愿有新版本。

我找到了两个主要解决方案:

  1. 这是因为它在桌子上有大写字母,(这也是我的情况,但它以前用大写字母工作,我有数百个表,我不能全部小写)。我试图用小写创建一个新表,看看这是否是问题所在,但它甚至不允许我创建一个表。

  2. 或者我需要清理缓存,我这样做并重新启动了macbook,但仍然给我错误。

所以,我假设安装,安装了不在 /MAMP/ 文件夹中的其他东西。

编辑:旧版本的 Apache 甚至不亮。Mysql 服务器是绿色的。所以,现在我回到了新版本。我试过:工具:检查/修复/升级数据库表。

wall.message_share                                 OK
wall.messages                                      OK
wall.page_names
Error    : Table 'wall.page_names' doesn't exist
status   : Operation failed
wall.pages
Error    : Table 'wall.pages' doesn't exist
status   : Operation failed
wall.profile_views                                 OK
wall.template                                      OK
wall.user_uploads                                  OK
....

和升级:

...
Error    : Table 'wall.page_names' doesn't exist
status   : Operation failed
wall.pages
Error    : Table 'wall.pages' doesn't exist
status   : Operation failed
Upgrade process completed successfully.
Checking if update is needed.

就像新版本无法识别旧版本的表格一样。或者就像它们已损坏一样,但正如我所说,我只是移动了文件夹。

使用新版本,我在 CAPS 中创建了一个新表并且工作正常。但是旧的不断给出错误。[1]:https ://i.stack.imgur.com/gAIBz.png

所以,在这篇文章中说把“lower_case_table_names = 2”放在 my.ini

但是我没有my.cnf 所以,我得到了这个:https ://gist.github.com/fragje/9953959

现在服务器不工作了。开/关按钮为橙色。

[client]
password = root
port    = 8888
socket    = /Applications/MAMP/tmp/mysql/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port    = 8889
socket    = /Applications/MAMP/tmp/mysql/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 64M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
lower_case_table_names = 2

...我没有发现错误,端口似乎很好。

我发现 1 个错误,其中:

# thread_concurrency = 8

...服务器是绿色的。但是这个命令 lower_case_table_names = 2 仍然不能解决小写问题。

我再次运行:工具:检查/修复/升级具有较小数据库的数据库表,但仍然说表不存在。所以,它永远不会修复它们。

因为我把这个“lower_case_table_names = 2”,我创建的表给出了同样的错误。

标签: mysqlinstallationmamp

解决方案


推荐阅读