2

我正在使用 mysql 本地数据库来存储我创建的两个 ruby​​ 脚本中的一些数据。问题是,每当我重新启动或关闭计算机时,我的数据库似乎已损坏,因为当我尝试访问它时,它会显示以下错误: Can't connect to MySQL server on 'Andres-MacBook-Air-3.local' (61) (Mysql2::Error)

然后我使用以下命令(我在谷歌搜索时发现)来恢复连接:

cd /usr/local/mysql
sudo ./bin/mysqld_safe
(Enter your password, if necessary)
(Press Control-Z)
bg

完成此操作后,我可以连接到数据库,但是当我尝试访问表时出现以下错误:

Error retrieving table information
An error occurred while retrieving the information for table 'fourCheckins'. Please try again.

MySQL said: Table 'trackpuntos.fourcheckins' doesn't exist

我认为关闭/重新启动我的计算机会导致问题,因为同样的情况发生了两次。幸运的是,在我第一次做常规 mysqldumps 之后。

有谁知道为什么会发生这种情况/如何防止它?

我在运行 OS Lion 的 macbook air 上运行 mysql 5.6.12。

谢谢

4

2 回答 2

3

过去一周我一直遇到同样的问题。当我打开与数据库的连接并关闭/重新启动计算机时,我发现 InnoDB 数据库已损坏。

我无意中在我的 Mac 上通过自制升级安装了 mysql 5.6。我只是按照以下说明将 mysql 回滚到 5.5.29。降级到 5.5 后,我再次设置了我的数据库,打开了一堆连接,然后关闭了计算机。重新启动后,我没有损坏。希望它会保持这种状态!

注意:您的系统的路径可能不同

  1. 通过自制软件卸载 5.6 mysql

    $ brew uninstall mysql
    $ rm -rf /usr/local/var/mysql
    
  2. 通过自制软件安装 5.5.29 mysql

    $ cd /usr/local/Library/Formula
    $ git checkout -b mysql-5.5.29 336c97637c5449018cde59f7d2a87a298692da08
    $ brew install mysql
    
  3. 按照mysql的所有安装后步骤...

    $ unset TMPDIR
    $ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
    $ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    $ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    
  4. 将自制软件重置为大师!重要!

    $ git checkout master 
    

最后,在 5.6 更稳定之前不要 brew upgrade mysql !

于 2013-07-24T20:08:24.033 回答
0

重新启动后我遇到了同样的问题......刚刚停止并重新启动了 MySQL,之后我的数据库工作正常。

于 2015-06-10T13:51:13.897 回答