由于给别的项目组帮忙,为了开发方便想搞个本地数据库,发现同事给的sql脚本执行不了。根据报错信息查了下发现是版本问题。我本机装的是mysql5.5,同事用的库是5.7。
因此,还是重装个5.7吧。。
卸载
在控制面板-》卸载或更改程序 里卸载mysql后,再手动将mysql的安装目录删除。
然后cmd输入regedit,打开注册表编辑器,在HKEY_LOCAL_MACHINE下的system下的ControlSet001和ControlSet002中的service下的Mysql目录全部删除,就可以了。如果不删注册表的话,我试过重新装msi的会卡在最后一直成功不了。。
mysql5.7压缩版安装
这里本来是到mysql官网上下载的,但是下载速度太慢了,就让旁边的同事发了个压缩版的给我。安装过程中遇到了很多坑。。
以下是步骤:
1.首先将my-defalut.ini复制一份为my.ini
2.删除my.ini中的信息,并将以下配置拷贝到my.ini中,并根据自己的路径修改basedir和datadir(可能data此时不存在)
[mysqld]
basedir=D:\\software\mysql-5.7.17-winx64
datadir=D:\\software\mysql-5.7.17-winx64\data
port = 3306
skip-grant-tables
sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
#代码结束
3.以管理员身份运行cmd,进入到mysql的bin目录下(或配置环境变量)
4.生成data文件夹
mysqld --initialize
5.服务安装,安装失败是由于没有卸载干净,cmd输入sc delete mysql,再重新尝试install
mysqld –-install
6.启动服务
net start mysql
7.直接使用navicat连接mysql,密码为空。新建查询输入语句
update mysql.user set authentication_string=password('你想输入的密码') where user='root' and Host ='localhost';
flushprivileges;
8.注释my.ini中的skip-grant-tables,前面加#即可。
9.重新启动mysql服务,使配置生效
net stop mysql
net start mysql
10.尝试使用密码登录。
11.如果出现密码过期问题,就把skip-grant-tables重新加上。重启服务。
12.用navicat或者cmd窗口连接mysql,讲user表的password_expired改为N就行。
13.再注释skip-grant-tables,重启服务,发现可以登录。
有疑问请留言,共同进步。谢谢!