Mysql为什么启动不了?
1、mysql配置文件设置错误
A、首先查找mysql对应的配置文件my.ini
如果服务是使用指定的配置文件启动,到对应的文进行修改(文件的位置从控制面板中服务的属性中查看)
B、检查参数basedir和datadir对应的目录是否存在,如:
basedir = d:/mysql/
datadir = d:/mysql/data/
2、检查Mysql目录有没有给系统的System用户文件读写权限(一般以System用户启动mysql服务)
3、检查mysql的3306端口是否被占用,如果占用,则修改my.ini配置文件中端口参数,将端口修改为其他值。
4、其他mysql的数据库文件遭到破坏附:一、windows下使用命令启动mysql服务1、cmd进入控制台
2、net start [mysql服务名],例:
net start mysql
net start mysql_cy
(......,如果安装了多个mysql,则可以启动多个)
二、windows下使用命令停止mysql服务
net stop mysql
net stop mysql_cy
2、根据名称找到mysql服务,双击mysql的服务,弹出服务的属性窗口
3、属性的【可执行文件的路径】中显示(例子):
D:\mysql\bin\mysqld-nt defaults-file=d:\mysql\my.ini mysql,其中defaults-file指定了参数文件的位置,如果没有该参数,一般my.ini参数文件在windows的系统目录下或mysql的目录下,从my.ini的配置中可以找到mysql数据的存储位置。
MySQL数据库无法启动怎么办?
本文适用于,mysql无法启动,但数据文件未丢失的情况。
Mysql因意外情况,导致无法启动,数据库未做备份的情况下,如何将数据迁移至其他数据库中。
原数据库地址:192.168.1.100(以下简称A服务器)
新数据库地址:192.168.2.100(以下简称B服务器)
数据恢复流程:
进入A服务器,输入命令
cat /etc/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,
至此,数据文件恢复数据库工作完成,
注1:如未改动数据文件夹所有者和组,启动数据库后,进入bus库点击相应表名会出现 ERROR #1017 :Can't find file: '/xxx.frm' 错误或ERROR #1036 Table '表名' is read only

