搭建SQL测试平台
在windows上安装mysql
- 转到
https://dev.mysql.com/downloads/mysql/
下载最新的mysql,现在最新的社区版是8.0.18
MySQL Community Server 8.0.18
其中Other Downloads 中的ZIP Archive是免安装压缩包,直接解压配置就可以使用了。
这里我们使用安装包MSI文件,比较方便。
- 如果选择
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
可能和最新版本和系统有关。
所有这里我们选择便携版压缩包
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
下载安装程序的)解压到一个目录(我选择D:\MySQL)
配置文件的读取顺序是:
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
按Win+X,在菜单中选择
命令提示符(管理员)
以管理员身份启动cmd。创建默认数据库并退出。创建一个具有随机过期密码的超级用户,并将其存储到日志中。
C:\WINDOWS\system32> cd /d D:\MySQL\mysql-8.0.18-winx64\bin D:\MySQL\mysql-8.0.18-winx64\bin> mysqld --initialize
- 安装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.
- 启动服务, 根据服务名执行
net start mysql
或net 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
在
D:\MySQL\mysql-8.0.18-winx64\data
目录中找到一个.err文件(你的计算机名.err)。
使用编辑器打开,在A temporary password is generated for root
中找到密码,复制。登录数据库, 按右键粘贴密码。
D:\MySQL\mysql-8.0.18-winx64\bin>mysql -u root -P 3306 -p Enter password:
- 修改密码,下次就可以使用新密码登录了。
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,可以导入对应的数据库进行学习。
- 打开
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 | $AALTER 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@localhost5$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | root | $AERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client5$-.wfs9Ev6u)YsgHMdimpH5CpgPICTkIpCQSFnV1qXfLh4aVjONqHWhvNSH. | caching_sha2_password | +-----------+------------------+------------------------------------------------------------------------+-----------------------+ 4 rows in set (0.00 sec) mysql>
修改密码加密插件
##代码##现在就可以连接上了。
- 双击MySQL8打开连接
- 右键选择
Execute
- 先后执行
iBATIS_JPetStore-4.0.5\ddl\mysql
目录下的jpetstore-mysql-schema.sql
和jpetstore-mysql-dataload.sql
执行时遇到这个错误可以不管,因为语句使用的是Mysql 5.x版本语法。(文件04年创建。。)
##代码##jpetstore-mysql-create-user.sql
是创建mysql用户用的,语句是针对Mysql 5.x版本,我们使用的是mysql8 执行的话,会报错。如果你想创建用户,需要把语句改成下面这样再执行:
在左侧Mysql8上右键刷新一下,将出现数据库
jpetstore
。双击,然后选择Tables
可以看到很多表。
我们将使用这些表来学习SQL语法。执行SQL语句,点击右边的Query>New Query.
在窗口中输入SQL语句,点击Run
运行即可
Message
提示命令是否允许成功,影响行数以及所花时间。
如果是SELECT语句,Result
则是查询结果。
- 为了测试演示,我们再导入一些数据表, 这些都是带有测试数据的表,和宠物店没有关系。
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 ,如果你的版本比较新,是支持加密插件设置的。