背景
最近学Java需要使用JDBC(Java Database Connectivity,是Java语言中规范了客户端操作数据库的一套应用程序接口),从廖雪峰的Java教程处了解到需要下载Mysql 5.x版本1,而带有引导的安装程序提供8+版本。所以从官网下载提供的Archive(源代码、程序、文档等软件相关资源的备份存档)进行配置2。
因为只是在本地进行数据库操作,且仅是完成课程作业,所以此流程仅代表个人理解,仅供参考。
操作流程
下载Archive包
打开脚注1的链接,选择软件版本、操作系统,并下载适合的ZIP包到本地。此处以5.7.31版本的Windows64位环境为例。
完整性校验(可选)
为安全起见,校验下载到的zip包。此处使用自带的certutil工具3。在zip包所在目录处运行certutil -hashfile .\mysql-5.7.31-winx64.zip md5
并等待计算完成。查看输出的哈希值是否和官网给出的相同b606d1dd2a0a2c06e7d9b9ffc7b4dc94
。
配置Mysql
定义配置文件
解压下载的zip包。
在解压出的文件夹下新建配置文件my.ini
(换用其他名字将不会被系统识别)
[mysql]
# 设置mysql客户端默认字符集,5.5.3版本后支持utf8mb4,其兼容utf8并且支持emoji
default-character-set=utf8mb4
[mysqld]
#设置3306端口,此处使用默认的3306端口即可
port = 3306
# 设置mysql的安装目录,根据实际路径进行修改
basedir=E:\mysql\mysql-5.7.31-winx64
# 设置mysql数据库的数据的存放目录,在basedir后面添加\data即可。这个目录可能不存在,但不需要手动创建
datadir=E:\mysql\mysql-5.7.31-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集,此处修改为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
安装Mysql服务
以管理员模式(方便之后的步骤)打开cmd4,并进入zip解压后文件夹下的bin目录
使用.\mysqld install
安装Mysql服务。如果之前安装过,则可以使用.\mysqld remove mysql
卸载。
截图没有加.\
是因为已经将bin目录添加入系统PATH,此处略去不表5
补充命令(仅供参考):
.\mysqld install 安装
.\mysqld remove 卸载
net start mysql 启动服务
net start mysql 卸载服务
数据库初始化
(此时仍然处于管理员cmd下)
使用.\mysqld --initialize-insecure
进行数据库初始化。注意这里使用insecure是创建一个空密码的超级用户。(如果不加insecure选项,生成的超级用户会带有随机密码,这个密码会被保存到log中。
这一命令需要等待较长时间,其将创建一个data目录,里面保存了数据库初始数据文件(约120MB)
此后建立了一个用户名为root,密码为空的super user
启动Mysql服务
(此时仍然处于管理员cmd下)
使用net start mysql
启动数据库
net stop mysql 停止Mysql服务
登陆Mysql
使用mysql -uroot
直接登录数据库
关于SQL的使用以及用户名密码等更新操作此处略去不表,可自行搜索其他文章。
结语
初次使用Mysql时经常遇到奇奇怪怪的问题。去年使用Mysql的时候用的客户端程序,也不知道哪里配置出了问题一直无法连接,似乎是设定密码后修改了密码等级导致无法登陆(或者是规定不能使用空密码但是实际上密码就是空的,产生了矛盾),删了配置反复卸载也不行。
后来一气之下在Ubuntu虚拟机上装了个Mysql,没出啥问题。
如果和流程稍有不同,都可能导致Mysql登录失败