最近才注意到MySQL的各个版本之间差别还挺大的,比如5.5.x版本的timestamp类型列只能有一个设置为default CURRENT_TIMESTAMP的,于是尝试了换成一个新版本是mysql,但是不想动本地原来的数据库,于是想在我的win7系统上安装两个MySQL数据,于是踩了以下好几个坑。
我安装的版本是mysql-5.7.18-winx64解压版,另外网上安装的教程很多,我就不在这里废话了。我参考了一个写的比较详细文档:MySQL安装教程,写的不错,不过这里说的my.ini放在bin下不是很准确,实际上放在和bin同级别的主目录下,当然了这个目录位置是可以配置的。
坑一:运行mysqld直接报msvcr120.dll找不到,解决方式:网上有可以下载https://www.microsoft.com/en-us/download/confirmation.aspx?id=40784,然后在开始->启动运行“regsvr32 msvcr120.dll”完成注册,很多帖子不讲这个,不知道居心何在?
坑二:由于我本地已经安装了MySQL,因此这个新安装的名字服务不能叫mysql,于是我在用mysqld -install安装的时候起名叫:mysql5.7,结果启动的时候发现说“发生系统错误 2。系统找不到文件。”。网上很多人说是因为注册表的原因,老夫查了注册表发现的确注册表的“ImagePath”属性指定的mysqld可执行文件不对,指向了C盘,我的实际上是在D盘,于是乎按照网上的要求修改了,结果不报文件找不到的错误了,但是启动还是失败,更加不幸的是这次啥错误也不报,只是报启动失败,后来我删掉重新搞,最后我仔细比较发现网友安装的时候起的服务名都没有“.”,于是我这次起名叫“mysql7”,果然搞定了,服务启动成功,很显然这是无意中碰到的一个bug,网友说的是一种情况,我遇到的又是更加复杂的一种情况,结论:服务的名称不要加“.”,我觉得最好也不要用其他的特殊符号(这里估计操作系统有要求,没有细查,若干年前遇到一个类似的问题,是因为起的服务名称过长)。
坑三:在使用“Navicat”导入的时候,报“2006 - mysql server has gone away”错误,这次是因为sql_mode设置的不对,这个原因是:MySQL5.7的默认值不兼容的问题。解决办法:在[mysqld]下面添加如下列:“sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
坑四:2006 - mysql server has gone away,这个是因为max_allowed_packet的值太小,解决办法,在[mysqld]下面添加如下列:max_allowed_packet = 256M,这样导入数据的速度也明显提高。
坑五:1265 - Data truncated for column,这是因为倒出的数据列的值不对,比如性别使用的是enum类型的,但是导入的数据值却是空。我这里用Navicat导入psc格式的备份数据,解决办法:使用Navicat备份里的“提取SQL”导出到文本文件中修改下这个列的值即可。

cd bin
mysqld --install mysql
net start mysql

下载MySQL

https://dev.mysql.com/downloads/mysql/5.1.html#downloads

个人机子是64位的,所以选择下载:Windows (x86, 64-bit), ZIP Archive 版本

解压并安装

将下载下载的包解压到指定目录,(本人)解压到:D:\Program Files (x86) 目录下。
因此,MySQL的(安装)包的完整路径为:D:\Program Files (x86)\mysql-5.7.18-winx64

解压后,配置好系统环境变量。
新增系统环境变量:
键名:MYSQL_HOME
值为:D:\Program Files (x86)\mysql-5.7.18-winx64
接着在 Path 中添加:%MYSQL_HOME%\bin

解压后,准备好 my.ini 文件。
注意:(据说)以前版本解压后,在解压目录下都会有 my-default.ini 或 my.ini 文件,不过,v5.7.18 版本中解压后,是没有这些文件的。因此,需要手动创建好 my.ini 文件,文件的具体(完整的)内容如下:
按 Ctrl+C 复制代码

[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
basedir=%MYSQL_HOME%
datadir=%MYSQL_HOME%\data
[WinMySQLAdmin]
%MYSQL_HOME%\bin\mysqld.exe
按 Ctrl+C 复制代码
编辑好 my.ini 文件后,将 my.ini 放在 bin 目录下

以管理员身份打开 cmd 命令窗口,将目录切到MySQL安装包下的bin目录下

安装MySQL数据库,执行如下命令:
mysqld.exe -install
执行命令后,提示:Service successfully installed. 表示安装成功
初始化mysql数据,并创建一个具有空密码的root用户,执行如下命令:
mysqld --initialize-insecure --user=mysql
注意:最后的参数 --user=mysql 在 windows 也可以不用添加,但在 unix 等系统下好像很重要。
执行命令后,等一会后,系统会自动生成相应的 data 目录,并自动创建好空密码的 root 用户。此时表示初始化成功。

启动 mysql 服务,执行如下命令:
net start mysql
执行后,提示:
MySQL服务正在启动..
MySQL服务已经启动成功。
注意:要想登录使用 mysql,服务是必需要先启动的。以后也一样。

在服务启动后,因为刚创建的 root 用户是空密码的,因此,需要先进行密码设定。可执行如下命令:
mysqladmin -u root -p password 此处输入新的密码
Enter password: 此处输入旧的密码
执行完以上两条命令后,只要 Enter password: 后输入的旧密码正确,则 root 用户的新密码就算设定成功了。此后,要想登录 root 用户,则都需要使用新密码。
注意:刚创建的 root 用户是空密码的,因此,在第一次修改 root 用户的密码时,在 Enter password: 后面不需要输入任何密码,直接回车即可。

至此,MySQL v5.7.18 的解压安装就已经全部完成,因此,需要把先前已经启的 MySQL 服务给停止掉,执行如下命令:
net stop mysql
登录并使用MySQL

前面已经完成对MySQL数据库的安装,只要安装成功后,就可以正常登录 root 用户,并进行数据的相关操作,如:建表、增、删、改、查等等。下面是简单的流程:

以管理员身份打开 cmd,并切到 mysql 安装目录的 bin 目录下
net start mysql // 说明:该命令是启动 mysql 服务
mysql -u root -p // 说明:该命令是登录 root 用户
Enter password: 先前设置的 root 用户的密码
正确登录后,就可以对数据进行操作了如:增、删、改、查等等。示例:
mysql> show databases; // 显示所有数据库
mysql> select 语句............
...
不再使用数据库时,要退出用户,并停止服务,执行如下命令:
mysql> quit;
net stop mysql

删除数据库

如果不再想用mysql了,则可以执行如下命令:
mysqld --remove

安装MySQL5.7.18遇到的坑的更多相关文章

  1. centos系统下安装MySQL5.7.18

    1.首先安装依赖包 yum install -y gcc gcc-c++ ncurses-devel perl openssl-devel 最最重要的是,不要忘了安装openssl-devel 2.安 ...

  2. Windows下安装MySQL5.7.18的方法

    准备: 操作系统:win7 下64位的zip版本的MySQL,路径:http://dev.mysql.com/downloads/mysql/ 我下的是最新版的MySQL,解压后,目录如下: 可以看到 ...

  3. 在Fedora10上安装MySQL5.0.18,告捷!

    又一次安MySQL了,为什么又呢,因为前面成功那次算配置,即配置Fedora10自带的MySQL,这个还不算自己安装的,所以有必要再安装一次,以后还装也有可能,换操作系统,换MySql版本都可能这样做 ...

  4. centos7安装mysql5.7.18笔记

    重装了一下系统,装了centos7,但是centos7下默认没有安装mysql,有MariaDB数据库,网上的解释是: “MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用 ...

  5. mac下安装mysql5.7.18,连接出现Access denied for user 'root'@'localhost' (using password: YES)

    mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES) ()里面的为she ...

  6. CentOs 7 安装mysql5.7.18(二进制版本)

    1.下载二进制版本安装包.搜狐开源镜像站:http://mirrors.sohu.com/mysql/MySQL-5.7/   , 找 mysql-5.7.18-linux-glibc2.5-x86_ ...

  7. centos6.9安装mysql5.7.18

    详细记录在CentOS 6.9上安装MySQL 5.7.18 过程,希望对大家有所帮助. 下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysq ...

  8. centos6.4下安装mysql5.7.18

    1.安装前工作 在安装前需要确定现在这个系统有没有 mysql,如果有那么必须卸载(在 centos7 自带的是 mariaDb 数据库,所以第一步是卸载数据库). 卸载系统自带的Mariadb: 查 ...

  9. Linux.centos安装mysql5.7.18

    一:删除已有的mysql步骤 1 卸载旧的mysql 1.1 查询有哪些mysql文件 [root@zookeeper init.d]# find / -name mysql /var/lock/su ...

随机推荐

  1. Android-ViewPagerIndicator框架使用——Circle

    前言:Circle适用于应用新功能的展示页和商品的多张图片的展示功能. 1.定义布局文件:SampleCirclesDefault中添加了一个布局:simple_circles. 布局中定义一个Lin ...

  2. 初涉Quartz

    1.首先需要导入包,必须导入的包如下:      quartz-1.8.5.jar  commons-logging.jar  spring-core-3.0.5.RELEASE.jar  sprin ...

  3. iOS-tableview【终极方案】精准获取webView内容高度,自适应高度

    关于WebView内容高度的获取,相信很多人都踩过坑,无法获取到准确高度,导致页面布局出现差错,搜到的资料很多但都无法解决问题,以下是个人经验总结: 项目需求实现H5文章&原生评论效果,文章是 ...

  4. Laravel5.1 路由 -基础

    什么是路由? 大K简单的说下,路由是用户访问我们程序的一个入口,比方说 你在浏览器输入:www.myblogs.com/create 就会打开一个页面,我们接收到这一个请求后后台需要做一些事儿来反馈给 ...

  5. PowerDesigner 建模后如何导入到数据库

    from:https://jingyan.baidu.com/article/7f766daf465e9c4101e1d0d5.html 大家都知道PowerDesigner是一个数据库建模工具,但是 ...

  6. Django项目笔记:sessions处理以及复杂对象序列化

    前言:一点题外话 我发现,不更新博客的时候,不是非常忙,就是效率非常低.最近没怎么更新博客,原因是第二种= =.惭愧惭愧. 今天效率出奇的高,一天时间把PassNote后端的接口全部写完了,Djang ...

  7. Android开发:《Gradle Recipes for Android》阅读笔记(翻译)3.5——在flavors间合并java代码

    问题: 你想要在单独的product flavors里面增加Acitivity或者其它java类. 解决方案: 创建合适的代码目录,增加java类,将它们和main代码合并. 讨论: flavors和 ...

  8. JS中的加号+运算符详解

    加号+运算符 在 JavaScript 中,加法的规则其实很简单,只有两种情况: 把数字和数字相加 把字符串和字符串相加 所有其他类型的值都会被自动转换成这两种类型的值. 为了能够弄明白这种隐式转换是 ...

  9. Fennec VS. Snuke

    Fennec VS. Snuke Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement Fenne ...

  10. 巨蟒python全栈开发linux之centos3

    1.作业讲解 (1)递归创建文件夹/tmp/oldboy/python/{alex,wusir,nvshen,xiaofeng} 下面中的路径没有必要换,在哪里创建都行,根目录下或者tmp目录下或者其 ...