MySQL数据库无法启动怎么办?
本文适用于,mysql无法启动,但数据文件未丢失的情况。
Mysql因意外情况,导致无法启动,数据库未做备份的情况下,如何将数据迁移至其他数据库中。
原数据库地址:192.168.1.100(以下简称A服务器)
新数据库地址:192.168.2.100(以下简称B服务器)
数据恢复流程:
进入A服务器,输入命令
cat /etc/my.cnf
(如文件不在当前位置,可使用find / -name my.cnf 命令查询文件位置)找到
datadir
路径通过
cd /www/server/data
命令,进入数据文件夹。当前文件夹里面就是mysql中所有库的数据文件存放位置。
下面以bus文件夹中文件,演示具体如何恢复文件。
进入B服务器,创建与A服务器bus库,用户名,密码相同的库。创建成功后,通过上面方法,进入数据文件目录,也会出现一个bus文件夹。
停止B服务器mysql服务,将A服务器中bus文件夹中,除db.opt文件外的其他文件打包,发送至B服务器数据目录的bus文件夹中。解压。
通过命令行,将/www/server/data/bus文件夹的所有者和组,更改成mysql
更改所有者
更改组
更改成功后,启动B服务器数据库,进入数据库后,如提示
error: 1146: Table doesn't exist,
还需将A服务器,数据文件夹中ibdata1 文件,拷贝至B服务器相应位置,同时更改相应的所有者和组权限。至此,数据文件恢复数据库工作完成,
注1:如未改动数据文件夹所有者和组,启动数据库后,进入bus库点击相应表名会出现 ERROR #1017 :Can't find file: '/xxx.frm' 错误或ERROR #1036 Table '表名' is read only
注2:如数据库较多,可能会发现,部分数据库文件中有.frm .MYD .MYI这三种文件,部分数据库中只有.frm文件,这是因为MySQL存储表的时候,使用的默认数据库存储引擎是InnoDB,而使用InnoDB存储引擎的时候,是不生成.MYD 和.MYI文件的。
sqlserver2008和mysql区别?
数据类型支持:MySQL 和 SQL Server 2008 支持的数据类型有所不同。MySQL 包括了 INT、DOUBLE、CHAR、VARCHAR、DATE 等数据类型。而 SQL Server 2008 支持 INT、DECIMAL、CHAR、VARCHAR、DATETIME 等更多的数据类型。
SQL Server 2008和MySQL是两种不同的关系型数据库管理系统(RDBMS),它们在设计、功能和性能等方面存在一些区别。
设计原则:SQL Server 2008是基于关系模型的设计,它采用了关系模型的概念,使用表格和关系来组织数据。而MySQL则采用了非关系模型的设计,它使用表、字段和关系来组织数据。
功能特点:SQL Server 2008提供了丰富的功能和应用,如事务处理、索引、查询优化等。它支持面向对象编程和集成开发环境(IDE),可以支持大型企业级应用开发。而MySQL则提供了强大的功能和灵活的扩展性,支持高并发访问和实时数据处理。
性能:SQL Server 2008在性能方面表现出色,它采用了分布式架构和优化技术,可以提供较高的并发访问和较快的响应时间。而MySQL在性能方面也非常出色,它支持快速的数据读写和索引查询,适合处理大量数据和实时数据处理。
社区支持:SQL Server 2008是由微软公司开发和维护的关系型数据库管理系统,拥有庞大的用户群体和丰富的社区支持。而MySQL则是由Oracle公司开发和维护的关系型数据库管理系统,同样拥有庞大的用户群体和丰富的社区支持。
总的来说,SQL Server 2008和MySQL在设计原则、功能特点、性能和社区支持等方面存在一些区别。用户可以根据自己的需求和应用场景选择适合自己的关系型数据库管理系统。