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 '数据插入时间',这时就不会报错了。