摘要
-
基于windows下mysql 8.0.*版本安装以及配置等操作介绍
- 基本安装
- 初始化
- 密码重置
- 创建数据库
- 创建列表
-
以及书本《Java简明教程》实列代码的采坑

安装
配置
-
进入myql的安装目录(就是你放加压后文件夹的地方),找到里面的bin文件夹。
在该文件夹下点击窗体左上方文件 -> 找到“打开powershell” -> 选择“以管理员身份打开powershell” -> 运行如下命令
mysqld --initialize-insecure --console
-
—initialize-insecure参数是为了初始化一个没有初始密码的数据库
-
—console参数显示初始化结果,方便出现问题后应对。
-
如果你初始化失败,请把错误信息给你想要请教的人看,而不是直接告诉别人你安装不了,掌握问问题的方法也很关键。
-
坑:出现缺少XXX140.dll,请安装这个
-
类似问题安装c++运行库解决
-
坑:初始化提示无法读写文件,创建文件问题。确保你是管理员权限的命令行
-
坑:初始化失败,可以尝试删除mysql安装文件夹下的data文件夹重试
-
你也可以使用这个命令初始化mysql
mysqld --initialize --console这个命令在初始化过程中(如果成功)会输出一个随机密码,请务必记住他,否则你就得尝试重置密码了。
-
安装服务
在上一步执行没有报错之后,继续输入
mysqld install安装mysql的系统服务,再次重申,请确保你的命令行具有管理员权限!!!
-
启动服务
net start mysql坑:提示启动失败请尝试删除mysql服务
mysqld remove并回到第一步重新初始化(这个过程中可能还需要删除mysql安装目录中的data文件夹) -
第一次启动数据库修改密码
-
如果你是使用了—initialize-insecure参数初始化的数据库的话,那么数据库默认没有密码,直接在命令行输入
mysql -u root -p出现输入密码提示后按下回车即可。
-
使用—initialize参数初始化的请输入初始化过程中输出的随机密码
-
-
修改密码
ALTER user 'root'@'local' IDENTIFIED BY 'your_password你的密码';坑:数据库命令大小写其实无所谓,可以都是小写。别忘了末尾的分号
-
数据库的基本操作:
- 新建数据库
create database 你要新建的数据库的名字;- 展示所有数据库
show databases;- 切换数据库
use 你要切换的数据库的名字坑:这里有没有分号无所谓,其他数据库语句必须分号结尾
- 新建表
create table 表名(key1 key_type,key2 key_type,key3 key_type);实例:create table student(no VARCHAR(20,name VARCHAR(20),math INT,average DOUBLE);- 展示表中所有数据:
select * from 表名;- 打印表内数据格式:
desc 表名;坑:数值类型详解
坑:请先切换到你要创建表的数据库再执行创建表明操作
java连接数据库
-
在mysql官网下载mysql connector的java sdk.请按照你的数据库版本下载对应的connector 下载地址
“Select Operating System”选项请选择“Platform Independent”.
下载第一个还是第二个只是压缩包格式的不同
下载点击进去之后请点击“No thanks, just start my download.”开始下载
-
下载完成之后解压,打开解压后的文件夹,找到一个*.jar后缀的文件列如:
mysql-connector-java-8.0.13.jar将该文件复制到你的eclipse中的java项目里
坑:什么你不知道你的eclipse项目目录在哪里???默认就在c:\用户\你的用户名\eclise-workplace里,对,打开哪个文件夹,找到你写的那个项目的名字,把这个jar文件放进去!!!
-
将jar文件加入你的java项目
在eclipse里右键你写的项目,选择new->选择Sourse Folder,随便起个名字你开心就好->把你的那个jar文件再放进去(别问我怎么放,打开你的电脑) 百度知道图解(百度知道没有选择创建source folder文件夹,我建议你这里选择这个)
-
书本范例代码的问题
- 新版的mysql数据库connector驱动包全名:
com.mysql.cj.jdbc.Driver- 数据库连接url格式:
jdbc:mysql://localhost:3306/数据库名称?serverTimezone=UTC
-
坑
.0.x新版在java调用时要增加参数化serverTimezone=UTC,设置数据库时间为世界标准时间,否则会报以下错误 Caused by: java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.- 连接数据库出现access deny字样
DriverManger.getConnection(DB_URL,USER,PASS)DB_URL就是上面提到的url格式内容。
USER默认”root”,PASS如果为空则使用空字符串即可,有密码请确保密码正确
数据库连接代码示例
请确保已经将mysqlconnector加入项目构建目录,参照将jar文件加入你的java项目
public class MySQLDemo {
// JDBC 驱动名及数据库 URL static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";//RUNOOB为数据库(database)名称
// 数据库的用户名与密码,需要根据自己的设置 static final String USER = "root"; static final String PASS = "123456";
public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ // 注册 JDBC 驱动 Class.forName("com.mysql.cj.jdbc.Driver");
// 打开链接 System.out.println("连接数据库..."); conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询 System.out.println(" 实例化Statement对象..."); stmt = conn.createStatement(); String sql; sql = "SELECT id, name, url FROM websites";//构建sql语句 id name url均为字段名 websites表名 ResultSet rs = stmt.executeQuery(sql);//执行sql语句并获取返回结果
// 展开结果集数据库 while(rs.next()){ // 通过字段检索 int id = rs.getInt("id"); String name = rs.getString("name"); String url = rs.getString("url");
// 输出数据 System.out.print("ID: " + id); System.out.print(", 站点名称: " + name); System.out.print(", 站点 URL: " + url); System.out.print("\n"); } // 完成后关闭 rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ // 处理 JDBC 错误 se.printStackTrace(); }catch(Exception e){ // 处理 Class.forName 错误 e.printStackTrace(); }finally{ // 关闭资源 try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ }// 什么都不做 try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } System.out.println("Goodbye!"); }}分享文章
生成精美分享图或复制链接,与更多人分享本文。
继续阅读
换条路线
从其他文章中稳定抽取
最后更新于 ,距今已过 2825 天
部分内容可能已过时