搭建SQL测试平台

时间:2018-11-15 17:12:48  来源:igfitidea点击:

在windows上安装mysql

  1. 转到https://dev.mysql.com/downloads/mysql/下载最新的mysql,现在最新的社区版是8.0.18
    MySQL Community Server 8.0.18

其中Other Downloads 中的ZIP Archive是免安装压缩包,直接解压配置就可以使用了。

这里我们使用安装包MSI文件,比较方便。

  1. 如果选择Windows(x86 32&64-bit) MySQL Installer MSI Go to Dowanload Page使用安装包安装,可能会找不到MySQL 8.0,只有5.7
The packages included in the current bundle that match the following were not found:
* The selected setup type: Server only
* The operating system architecture: 32-bit
* The MySQL Installer license type: Community

可能和最新版本和系统有关。

  1. 所有这里我们选择便携版压缩包 mysql-8.0.18-winx64.zip, 进入下载页面提示你注册和登录, 下面有个No thanks,just start my download。 下载后运行。
    (但是我们下载的只是MySQL Server, 如果你还想安装 MySQL Shell、MySQL路由器、MySQL工作台、MySQL连接器、文档和示例等, 还是可以到Windows(x86 32&64-bit) MySQL Installer MSI Go to Dowanload Page下载安装程序的)

  2. 解压到一个目录(我选择D:\MySQL)

  3. 配置文件的读取顺序是:
    C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf D:\MySQL\mysql-8.0.18-winx64\my.ini D:\MySQL\mysql-8.0.18-winx64\my.cnf

所以我们在D:\MySQL\mysql-8.0.18-winx64\下创建一个my.ini文件,并创建一个目录data
my.ini

[mysqld]
basedir=D:\MySQL\mysql-8.0.18-winx64
datadir=D:\MySQL\mysql-8.0.18-winx64\data
port=3306
  1. 按Win+X,在菜单中选择命令提示符(管理员)以管理员身份启动cmd。

  2. 创建默认数据库并退出。创建一个具有随机过期密码的超级用户,并将其存储到日志中。

C:\WINDOWS\system32> cd /d D:\MySQL\mysql-8.0.18-winx64\bin
D:\MySQL\mysql-8.0.18-winx64\bin> mysqld  --initialize
  1. 安装Mysql服务,默认服务名mysql
D:\MySQL\mysql-8.0.18-winx64\bin>mysqld -install

如果你已经安装有其他版本的mysql,服务名可以更换一个 MySQL8

D:\MySQL\mysql-8.0.18-winx64\bin>mysqld -install 
The service already exists!
The current server installed: "D:\mysql\MySQL Server 5.0\bin\mysqld-nt" MySQL

D:\MySQL\mysql-8.0.18-winx64\bin>mysqld -install MySQL8
Service successfully installed.
  1. 启动服务, 根据服务名执行net start mysqlnet start MySQL8
D:\MySQL\mysql-8.0.18-winx64\bin>net start MySQL8
MySQL8 服务正在启动 .
MySQL8 服务已经启动成功。

查看mysql 端口和进程,最后面是进程号

D:\MySQL\mysql-8.0.18-winx64\bin>netstat -ano | findStr 3306
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       15620
  TCP    0.0.0.0:33060          0.0.0.0:0              LISTENING       15620
  TCP    [::]:3306              [::]:0                 LISTENING       15620
  TCP    [::]:33060             [::]:0                 LISTENING       15620
  TCP    [::1]:3306             [::1]:10886            ESTABLISHED     15620
  TCP    [::1]:10886            [::1]:3306             ESTABLISHED     6352
  TCP    [::1]:10945            [::1]:3306             TIME_WAIT       0
  1. D:\MySQL\mysql-8.0.18-winx64\data目录中找到一个.err文件(你的计算机名.err)。
    使用编辑器打开,在A temporary password is generated for root中找到密码,复制。

  2. 登录数据库, 按右键粘贴密码。

D:\MySQL\mysql-8.0.18-winx64\bin>mysql -u root -P 3306 -p
Enter password:
  1. 修改密码,下次就可以使用新密码登录了。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'theitroad_password';
FLUSH PRIVILEGES;

安装Navicat for MySQL

Navicat for MySQL是一套管理和开发MySQL或MariaDB工具,到网上下载进行安装。

下载数据库

JPetStore是sun公司为了演示自己的J2EE而编写的一个宠物店的电子商务的例子。
JPetStore就是ibatis所展示的例子,通过JPetstore可以让我们更清楚的了解ibatis的用法和优点。
随后JPetStore便成为其他一些公司为了展示自己性能而竞相模仿的例子。

https://sourceforge.net/projects/ibatisjpetstore/点击download下载 JPetStore

导入数据库

在iBATIS_JPetStore-4.0.5\ddl下提供了各个数据库的数据文件,这里我们使用的是mysql,如果后面你学习 安装了postgres,oracle,可以导入对应的数据库进行学习。

  1. 打开 Navicat for MySQL,点击Connection创建一个新连接,输入
    Connection Name 连接名(任意填写),
    Host Name/IP Address, 因为前面生成的用户是root@localhost , 所以这里添加localhost
    Port: 前面在my.ini指定的3306
    User Name: root@localhost中的root
    密码: 你新设置的密码

如果报错

ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client

那么Navicat for MySQL用的MySQL Connector比较老,直接升级MySQL Connector。
这里我们直接修改数据库处理这个问题。
查看现在的加密插件

mysql> use mysql;
Database changed
mysql> select host, user, authentication_string, plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host      | user             | authentication_string                                                  | plugin                |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| localhost | mysql.infoschema | $A
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'theitroad_password';
FLUSH PRIVILEGES;
5$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | mysql.session | $A
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--DROP INDEX IF EXISTS productCat;
5$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | mysql.sys | $A
-- Create a new user, grant her rights, and set her password.

CREATE USER jpetstore@localhost IDENTIFIED WITH mysql_native_password BY 'ibatis9977';
grant select, insert, update, delete
on jpetstore.*
to jpetstore@localhost
5$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | root | $A
ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client
5$-. wfs9Ev6u)YsgHMdimpH5CpgPICTkIpCQSFnV1qXfLh4aVjONqHWhvNSH. | caching_sha2_password | +-----------+------------------+------------------------------------------------------------------------+-----------------------+ 4 rows in set (0.00 sec) mysql>

修改密码加密插件

##代码##

现在就可以连接上了。

  1. 双击MySQL8打开连接
  2. 右键选择Execute
  1. 先后执行iBATIS_JPetStore-4.0.5\ddl\mysql目录下的jpetstore-mysql-schema.sqljpetstore-mysql-dataload.sql

执行时遇到这个错误可以不管,因为语句使用的是Mysql 5.x版本语法。(文件04年创建。。)

##代码##

jpetstore-mysql-create-user.sql是创建mysql用户用的,语句是针对Mysql 5.x版本,我们使用的是mysql8 执行的话,会报错。如果你想创建用户,需要把语句改成下面这样再执行:

##代码##
  1. 在左侧Mysql8上右键刷新一下,将出现数据库jpetstore。双击,然后选择Tables可以看到很多表。
    我们将使用这些表来学习SQL语法。

  2. 执行SQL语句,点击右边的Query>New Query.

在窗口中输入SQL语句,点击Run运行即可

Message提示命令是否允许成功,影响行数以及所花时间。
如果是SELECT语句,Result则是查询结果。

  1. 为了测试演示,我们再导入一些数据表, 这些都是带有测试数据的表,和宠物店没有关系。

employees.sql
orderdetails.sql
products.sql
categories.sql
suppliers.sql
customers.sql
orders_test.sql

问题诊断

##代码##

原因
你可能安装了其他版本的mysql,执行的是该版本的mysql。 需要把D:\MySQL\mysql-8.0.18-winx64\bin加到环境变量PATH最前面。 或者cd 到mysql8目录下执行cd /d D:\MySQL\mysql-8.0.18-winx64\bin

如果是navicat for mysql ,如果你的版本比较新,是支持加密插件设置的。