phpStudy下替换mysql5.7.16

phpStudy中的mysql版本是5.5,而mysql5.5在执行`createTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '数据插入时间'时(也就是默认值为CURRENT_TIMESTAMP),mysql会报错。解决办法是将phpStudy中mysql的版本替换为5.6及以上。

安装完phpStudy后将MySQL下的所有文件删除,解压mysql5.7.16的版本。安装过程如下:

#特别重要
1.修改my-default.ini

在其中修改或添加配置: 

[mysqld] 

basedir=E:\WAMP\MySql(mysql所在目录) 

datadir=E:\WAMP\MySql\data (mysql所在目录\data)

2.以管理员身份运行cmd(win10右键左下角开始按钮选择以管理员身份运行cmd即可)

以管理员身份运行cmd(一定要用管理员身份运行,不然权限不够),

输入:cd C:\Program Files\MySQL\MySQL Server 5.6\bin 进入mysql的bin文件夹(不管有没有配置过环境变量,也要进入bin文件夹,否则之后启动服务仍然会报错误2)

输入mysqld -install(如果不用管理员身份运行,将会因为权限不够而出现错误:Install/Remove of the Service Denied!) 

安装成功

3.运行mysqld  --initialize(若没有init则不存在data目录,自然无法启动成功)

4.安装成功后就要启动服务了,继续在cmd中输入:net start mysql,服务启动成功!

服务启动成功之后,就可以登录了,输入mysql -u root -p(此时你并不知道密码是什么,请查看追加内容),登录成功!

追加内容:

在安装mysql5.7版本时,经常会遇到mysql -u root -p直接回车登陆不上的情况,原因在于5.7版本在安装时自动给了一个随机密码,
坑爹的是在init步骤的时候不像linux系统会给出命令行提示,需要手动在mysql目录下搜索*.err,以文本形式打开才能看到如下内容:
"A temporary password is generated for root@localhost: >mso<k70mrWe"


每个人的密码都不一样,所以直接搜素这句话找不到,这句话中root@localhost:后面的是密码
root@localhost:是固定的,所以搜索root@localhost:能找到类似的语句

修改数据库密码

SET PASSWORD = PASSWORD('root');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;

在安装的过程中,*.err文件下并没有找到。如果出现这种情况,则用如下解决办法:

1、以管理员身份运行cmd,输入net stop mysql

停止MySQL服务

2、打开一个cmd窗口输入mysqld --skip-grant-tables,注意这个cmd命令窗口不要关闭

3、

重新打开一个cmd窗口,运行下面命令

C:\Users\Administrator>mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 4

Server version: 5.7.19 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql

Database changed

mysql> update user set authentication_string=password('123456') where user='root';

Query OK, 0 rows affected, 1 warning (0.06 sec)

Rows matched: 1  Changed: 0  Warnings: 1

mysql>

将mysql的root密码重置为123456

4、继续以管理员身份运行cmd,输入net start mysql

启动MySQL服务

5、以重置后的root密码登录测试,如下图mysql -uroot -p123456

再次执行`createTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '数据插入时间',这时就不会报错了。

猜你喜欢

转载自blog.csdn.net/huihuikuaipao_/article/details/83688014