最近才注意到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. 获取当前AppDelegate 正在显示的UIViewController

    UIWindow+PazLabs.h (header file) #import <UIKit/UIKit.h> @interface UIWindow (PazLabs) - (UIVi ...

  2. 怎样利用JDBC启动Oracle 自己主动追踪(auto trace)

    有时我们须要对运行SQL的详细运行过程做一个追踪分析,特别是在应用程序性能优化的时候.Oracle两个工具能够帮助我们做好性能分析,一个是SQL_TRACE,一个是SESSION_EVENT.SQL_ ...

  3. php简单工厂模式

    工厂类中有一个创建对象的方法,根据传入参数的不同来生成不同的对象 class Operation extends Model{ private $numberA; private $numberB; ...

  4. staitc_cast,const_cast....

    #include <iostream> using namespace std; int main() { //1.const_cast //const int a = 10; //int ...

  5. vip视频网站爬虫

    vip视频网站爬虫 电影网站:http://www.08ge.com/play/?make=dianying&id=fqvlYhH5QHb3Sh.html 找到<iframe>的i ...

  6. CAS单点登录------未认证授权服务

    问题背景:之前我使用的127.0.0.1进行CAS 直接url 进行过滤! 后来我用nginx 进行反向代理 出现问题:  如下图 第一眼,就在内心想,草这什么鬼! 麻蛋!     ON! 调试了五分 ...

  7. mock数据(模拟后台数据)

    mock数据(模拟后台数据) - Emily恩 - 博客园 https://www.cnblogs.com/enboke/p/vue.html Mock.js http://mockjs.com/ 前 ...

  8. 数字雨(Javascript使用canvas绘制Matrix,效果很赞哦)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. springboot集成h2

    h2数据库是常用的开源数据库,与HSQLDB类似,十分适合作为嵌入式数据库使用,其他的数据库大部分都需要安装独立的客户端和服务器端 h2的优势: (1)h2采用纯java编写,因此不受平台的限制 (2 ...

  10. Jquery添加元素append及阻止表单提交submit

    HTML代码: <td><input name="duration[]" value="" type="text" /&g ...