mysqld --initialize 命令创建了date文件之后还是不能启动mysql的解决办法(win10,mysql5.7)
今天因为测试的原因,关掉了本机的mysql数据库服务?然后启动报错
然后就开始了为期两小时的寻找之路
第一种方法:重装mysql简单粗暴,下面的各位看官可以不用看了~~~~~
~~~~~~~~~~~~~~~~~<分隔符~~~~~~~~~~~~~~~~~~~~~
第二种方法删除data文件,然后初始化数据库信息,重新启动就可以了
简单来说: mysqld remove
mysqld --initialize (执行中会卡一下,然后data文件夹中会生成文件)
mysqld install
net start mysql
网上的方法一般到这里就可以解决了.
遇到mysql -u root -p直接回车登陆不上的情况,原因在于5.7版本在安装时自动给了一个随机密码,坑爹的是在init步骤的时候不像linux系统会给出命令行提示,需要手动在mysql目录下搜索*.err,以文本形式打开才能看到如下内容(红色为密码):
016-02-25T15:09:43.033062Z 1 [Note] A temporary password is generated for [email protected]: >mso<k70mrWe
第二种方法中的mysqld --initialize命令稍微再详细一点,各位凑合着理解吧
之前修改mysql安装文件夹下面的my.ini文件为
其中basedir为安装目录,datadir是安装目录下的data文件,这个文件夹其实可以不用我们手动去创建
在e:/mysql安装目录/bin下面以管理员的方式启动cmd命令符执行mysqld --initialize方法
mysql会自动去读取安装目录下的my.ini文件,然后找到datadir,帮我们创建这个data文件夹,并生成如下文件

~~~~~~~~~~~~~~~~~/分隔符>~~~~~~~~~~~~~~~~~~~~~
出现下图的请继续往下看
~~~~~~~~~~~~~~~~~终极分隔符~~~~~~~~~~~~~~~~~~~~~
终极方法:(可以使用脚本来修复)但是我们不用~就是这么皮,因为不会
我遇到的情况就是上面无法启动的状况,更有时候执行mysqld --initialize 命令
会报错.解决办法就是清空data文件,但我清空了,执行mysqld --initialize 命令也不报错了
data下面的文件也生成了,net start mysql 的时候还是无法启动,有木有很崩溃???????
解决办法:
cd 到D:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld -nt --skip-grant-tables 以管理员身份运行这段命令,相当于在my.ini中[mysqld]下加入skip-grant-tables,就可以跳过登录校验,此时命令窗口不会动啦,
重开一个窗口 ,直接接登录
mysql (前提:mysql加入环境变量)
mysql> use mysql
下面是5.7以后更新账户密码的新语句,
update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
5.7以后password字段不在存在,变成了authentication_string,否则
会报如下错误:ERROR 1054 (42S22): Unknown column 'password' in 'field list'
ok,愉快的登陆吧!
商业转载请联系作者获得授权,非商业转载请注明出处