sf_*_*anb 10 mysql innodb mariadb
我正处于环境设置中,运行OSX MariaDB 10.0.12-MariaDB Homebrew
我搞砸了安装,所以我从我的设置中完全删除了MySQL和MariaDB,然后重新开始.
完成MariaDB的安装后,我innoDB通过生产服务器上的DB Dump 重新导入了我的数据库().它工作正常.重新启动后,第二天,我无法再访问数据库:
Table 'my.table' doesn't exist in engine
造成这种情况的原因是什么?解决方案是什么?我确实看到了我的数据库的结构,但是当我尝试访问它时,它给了我这个错误信息.
我确实尝试mysql-upgrade --force删除了rm ib_logfile1 ib_logfile0
这里的数据丢失不是问题,问题是我每次重启时都不能花30分钟重新安装每个数据库.
这是一些日志:
140730 9:24:13 [Note] Server socket created on IP: '127.0.0.1'.
140730 9:24:14 [Note] Event Scheduler: Loaded 0 events
140730 9:24:14 [Warning] InnoDB: Cannot open table mysql/gtid_slave_pos from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
140730 9:24:14 [Warning] Failed to load slave replication state from table mysql.gtid_slave_pos: 1932: Table 'mysql.gtid_slave_pos' doesn't exist in engine
140730 9:24:14 [Note] /usr/local/Cellar/mariadb/10.0.12/bin/mysqld: ready for connections.
Version: '10.0.12-MariaDB' socket: '/tmp/mysql.sock' port: 3306 Homebrew
140730 16:26:28 [Warning] InnoDB: Cannot open table db/site from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
Run Code Online (Sandbox Code Playgroud)
aku*_*sky 12
有些东西删除了你的ibdata1文件,其中InnoDB保存了字典.绝对不是MySQL谁做到了.
好的,我这个周末在我的OpenStack环境崩溃时遇到了这个问题。关于该问题的另一篇文章即将发布。
我找到了一个适用于我的解决方案,该解决方案可以在以Fedora 25服务器为主机的Ver 15.1 Distrib 10.1.21-MariaDB下运行的SQL Server实例中使用。 如果您完全复制了旧的mariadb服务器的/ var / lib / mysql目录,并且正在复制的数据库尚未损坏,请不要听其他所有说数据库已损坏的帖子。此过程基于操作系统已损坏但其文件仍可访问的系统。
这是我遵循的步骤。
确保仅在NEW服务器上完全卸载了任何当前版本的SQL。另外,通过运行以下命令,确保新旧服务器上的所有mysql服务器或mariadb服务器进程均已停止:
服务mysqld停止或服务mariadb停止。
在NEW SQL服务器上,进入/ var / lib / mysql目录,并确保该目录中根本没有文件。如果此目录中有文件,则您从新计算机中删除数据库服务器的过程无法正常工作,并且可能已损坏。确保将其从新计算机上完全卸载。
在OLD SQL服务器上:
mkdir / OLDMYSQL-DIR cd / OLDMYSQL-DIR tar cvf mysql-olddirectory.tar / var / lib / mysql gzip mysql-olddirectory.tar
确保在旧服务器和新服务器上都运行了sshd。确保两台服务器之间存在网络连接。
在新的SQL服务器上:
mkdir / NEWMYSQL-DIR
在OLD SQL服务器上:
cd / OLDMYSQL-DIR scp mysql-olddirectory.tar.gz @:/ NEWMYSQL-DIR
在新的SQL服务器上:
cd / NEWMYSQL-DIR gunzip mysql-olddirectory.tar.gz或tar zxvf mysql-olddirectory.tar.gz(如果tar zxvf不起作用)tar xvf mysql-olddirectory.tar.gz
现在,您应该在NEWMYSQL-DIR中有一个“ mysql”目录文件。抵制没有开关就单独运行“ cp”命令的冲动。不起作用。运行以下“ cp”命令,并确保使用与我相同的开关。
cd mysql / cp -rfp * / var / lib / mysql /
现在,您应该在NEW服务器上拥有所有旧SQL Server文件的副本,并且具有完整的权限。在新的SQL服务器上:
cd / var / lib / mysql /
非常重要的一步。请勿跳过
> rm -rfp ib_logfile*
Run Code Online (Sandbox Code Playgroud)
对于MARIADB服务器和DNF:
> dnf install mariadb-server
> service mariadb restart
Run Code Online (Sandbox Code Playgroud)
对于MYSQL-SERVER和YUM:
> yum install mysql-server
> service mysqld restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68739 次 |
| 最近记录: |