当前位置: 首页 > news >正文

IDEA爪哇操作数据库

少小离家老大回,乡音无改鬓毛衰

⒈.IDEA2018设置使用主题颜色

IDEA2018主题颜色分为三种:idea原始颜色,高亮色,黑色

设置方法:Settings–Appearance&Behavior–Appearance

 

⒉.mysql中,没有my.ini,只有my-defaule.ini,查找修改并保存my.ini

因为mysql5.7中文乱码的原因,所以需要找到my.ini文件修改编码,但进入mysql安装目录,找不到my.ini,只有my-default.ini。

在Windows 10中,MySQL5.7的my-default.ini和my.ini不是同一个文件,在不同的文件路径下!在隐藏文件夹C:\ProgramData\中,先进入C盘,点左上角的查看,然后勾选隐藏的项目,此时会出现ProgramData文件夹,进入找到mysql

里面就有my.ini
然后用记事本打开my.ini 修改 保存。


⒊.[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

解决方法
1、在windows环境下,MySQL的安装路径中有一个my.ini文件,在里面加入以下内容:
(一定要在[mysqld] 下面添加)

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

2、在虚拟机环境下的/etc/my.cnf配置文件的[mysqld] 下添加以下内容:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

重启MySQL即可


⒋.登入MySQL数据库grant无法授权 1044 - Access denied for user 'root'@'%' to database 'blog'

一、检查user表中root@'%'grant的权限

select HOST,USER,Grant_priv,Super_priv from mysql.`user`;

 

可以看到现在这两个权限都是N
二、更新它们为Y,然后重启mysql

update mysql.user set Grant_priv='Y',Super_priv='Y' where user = 'root' and host = '%';
#加载授权
flush privileges;

三、重启mysql

service mysqld restart

测试一下再执行grant语句就成功了


 

⒌.MySQL 用户权限说明

客户端执行 SQL 语句查看权限列表:

DESC mysql.user;

权限说明如下:

  • Select_priv:通过 SELECT 命令选择数据
  • Insert_priv:通过 INSERT 命令插入数据
  • Update_priv:通过 UPDATE 命令修改现有数据
  • Delete_priv:通过 DELETE 命令删除现有数据
  • Create_priv:通过 CREATE 命令创建新的数据库和表
  • Drop_priv:通过 DROP 命令删除现有数据库和表
  • Reload_priv:使用 FLUSH 语句或与之等效的 mysqladmin 命令刷新主机、刷新日志、刷新特权、刷新状态、刷新表、刷新线程
  • Shutdown_priv:关闭服务器。将此权限提供给 root 账户之外的任何用户时,都应当非常谨慎
  • Process_priv:使用 SHOW PROCESSLIST 语句查看服务的线程信息
  • File_priv:使用 LOAD DATA 、SELECT ... INTO OUTFILE 语句和 LOAD_FILE 函数在服务器主机上读写任意文件
  • Grant_priv:将该用户自己的权限授予其他用户
  • References_priv:创建/删除外键,创建/删除外键时需要操作者有此特权
  • Index_priv:创建/删除索引
  • Alter_priv:使用 ALTER 语句重命名或修改表结构
  • Show_db_priv:使用 SHOW DATABASES 语句查看服务器上所有数据库的名字。无此特权的用户只能看到自己权限内的数据库的名字
  • Super_priv:超级用户(待补充)
  • Create_tmp_table_priv:使用 CREATE TEMPLATE TABLE 语句创建临时表。服务器不会对临时表做任何权限检查,操作者可以对临时表执行任意操作
  • Lock_tables_priv:使用 LOCK TABLES 语句锁定操作者拥有 SELECT 权限的数据表。锁定数据表后,其他会话暂无对该表的读写操作权
  • Execute_priv:执行存储操作(待补充)
  • Repl_slave_priv:复制服务器。在查询操作量巨大的使用场景下,需要一台或多台从属服务器来分担主服务器的查询工作。创建从属服务器通常采用复制的方法,执行复制操作的用户需要此权限
  • Repl_client_priv:查询复制服务器操作的执行状况。执行 SHOW MASTER STATUS 、SHOW SLAVE STATUS 和 SHOW BINARY LOGS 语句查看复制得到的从属服务器的状态,拥有复制服务器权限的用户默认拥有执行这三个语句的权限
  • Create_view_priv:创建视图
  • Show_view_priv:查看视图
  • Create_routine_priv:创建例程。例程包括 PROCEDURE 和 FUNCTION
  • Alter_routine_priv:修改和删除例程
  • Create_user_priv:针对用户和角色的增删改查操作
  • Event_priv:针对事务的增删改查操作
  • Trigger_priv:针对触发器的增删改查操作
  • Create_tablespace_priv: 针对表空间和日志文件组的增删改查操作。表空间就是存放数据表及其数据的地方

⒍.数据库密码忘记了怎么办

方法1: 用SET PASSWORD命令

首先登录MySQL。

格式:mysql> set password for 用户名@localhost = password('新密码');  
例子:mysql> set password for root@localhost = password('123');  

方法2:用mysqladmin

格式:mysqladmin -u用户名 -p旧密码 password 新密码  
例子:mysqladmin -uroot -p123456 password 123 

方法3:用UPDATE直接编辑user表

首先登录MySQL。

mysql> use mysql;  
mysql> update user set password=password('123') where user='root' and host='localhost';  
mysql> flush privileges;  

注意,MySQL的密码字段可能变为了authentication_string

方法4:在忘记root密码的时候,可以这样

以windows为例:

  1. 关闭正在运行的MySQL服务。
  2. 打开DOS窗口,转到mysql\bin目录。
  3. 输入mysqld --skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
  4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
  5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
  6. 连接权限数据库: use mysql; 。
  7. 改密码:update user set password=password(“123”) where user=“root”;(别忘了最后加分号) 。
  8. 刷新权限(必须步骤):flush privileges; 。
  9. 退出 quit。
  10. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
    改完数据库密码还要去phpadmin的配置文件更新
    打开你安装的xampp目录,找到phpMyAdmin,打开它,找到config.inc.php ,用记事本或UE打开,可以看到它的密码是空的,加上你修改过的密码,保存,然后重启一下阿帕奇和mysql,再打开xampp的控制面板中MySQL的Admin即可

⒎mysql数据库的默认密码是多少

简介:本文主要介绍MySQL的默认密码是什么,以及如何修改默认密码。

MySQL是一种常用的关系型数据库管理系统,它是一种开源的软件,可以免费使用。在安装MySQL时,系统会要求设置root用户的密码,但是有些情况下,用户可能会忘记设置密码或者使用了默认密码,这时候就需要知道MySQL的默认密码是什么了。

MySQL的默认密码在不同版本中可能会有所不同,但是大部分情况下默认密码都是空的,也就是没有密码。如果您在安装MySQL时没有设置密码,那么您可以尝试使用空密码进行登录,也就是直接按回车键即可。

如果您无法使用空密码进行登录,那么您可以尝试使用一些常见的默认密码,例如“password”、“123456”等。但是需要注意的是,这些默认密码并不是所有版本都适用,而且使用默认密码会存在一定的安全风险,因此强烈建议您尽快修改密码。

如何修改MySQL的密码?

如果您需要修改MySQL的密码,可以按照以下步骤进行操作:

1. 进入MySQL命令行界面,输入以下命令:

ysql -u root -p

2. 系统会提示您输入密码,如果密码正确,就可以进入MySQL的命令行界面了。

3. 输入以下命令,修改root用户的密码:

ewpassword';

ewpassword是您想设置的新密码,可以根据需要进行修改。

4. 修改完成后,输入以下命令退出MySQL命令行界面:

exit;

MySQL的默认密码大部分情况下是空的,如果无法登录可以尝试使用一些常见的默认密码。建议尽快修改密码,以提高数据库的安全性。修改MySQL密码可以通过进入命令行界面,并使用ALTER USER命令进行操作。

⒏.java多线程去拷贝数据库方法

场景:
        2个数据库,一个数据库的表拷贝到另一个库里面

代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class DatabaseCopy {// 数据库连接配置private static final String SOURCE_DB_URL = "jdbc:mysql://localhost:3306/XXX";private static final String SOURCE_DB_USERNAME = "root";private static final String SOURCE_DB_PASSWORD = "root";private static final String TARGET_DB_URL = "jdbc:mysql://localhost:3306/YYY";private static final String TARGET_DB_USERNAME = "root";private static final String TARGET_DB_PASSWORD = "root";// 源表和目标表配置private static final String[] TABLE_NAMES = {"all_XXX"};private static final String TARGET_TABLE_NAME = "all_YYY";// 增加线程池大小,例如10个线程private static final int THREAD_POOL_SIZE = 10;public static void main(String[] args) {long startTime = System.currentTimeMillis(); // 记录开始时间int tablesCopied = 0; // 记录复制的表格数量try {// 连接源数据库Connection sourceConnection = DriverManager.getConnection(SOURCE_DB_URL, SOURCE_DB_USERNAME, SOURCE_DB_PASSWORD);// 连接目标数据库Connection targetConnection = DriverManager.getConnection(TARGET_DB_URL, TARGET_DB_USERNAME, TARGET_DB_PASSWORD);for (String tableName : TABLE_NAMES) {// 获取源表结构String sourceTableStructureQuery = "SHOW CREATE TABLE " + tableName;Statement structureStatement = sourceConnection.createStatement();ResultSet structureResult = structureStatement.executeQuery(sourceTableStructureQuery);if (structureResult.next()) {String createTableStatement = structureResult.getString(2);// 创建相同结构的表格在目标数据库Statement createTableStatementTarget = targetConnection.createStatement();createTableStatementTarget.execute(createTableStatement);tablesCopied++; // 增加复制的表格数量} else {System.err.println("未能获取表格结构:" + tableName);}}// 复制数据ExecutorService executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE);for (int i = 0; i < THREAD_POOL_SIZE; i++) {executorService.submit(() -> {Connection threadSourceConnection = null;Connection threadTargetConnection = null;try {threadSourceConnection = DriverManager.getConnection(SOURCE_DB_URL, SOURCE_DB_USERNAME, SOURCE_DB_PASSWORD);threadTargetConnection = DriverManager.getConnection(TARGET_DB_URL, TARGET_DB_USERNAME, TARGET_DB_PASSWORD);threadTargetConnection.setAutoCommit(false); // 禁用自动提交以使用事务for (String tableName : TABLE_NAMES) {String copyDataQuery = "INSERT INTO " + TARGET_TABLE_NAME + " SELECT * FROM " + tableName;System.out.println(copyDataQuery);Statement copyStatement = threadTargetConnection.createStatement();int rowsCopied = copyStatement.executeUpdate(copyDataQuery);System.out.println("线程 " + Thread.currentThread().getName() + " 成功复制 " + rowsCopied + " 行数据到目标数据库中的 " + TARGET_TABLE_NAME + " 来自表格 " + tableName);}// 提交事务threadTargetConnection.commit();} catch (SQLException e) {e.printStackTrace();// 回滚事务以确保数据一致性try {if (threadTargetConnection != null) {threadTargetConnection.rollback();}} catch (SQLException ex) {ex.printStackTrace();}} finally {try {if (threadTargetConnection != null) {threadTargetConnection.close();}if (threadSourceConnection != null) {threadSourceConnection.close();}} catch (SQLException e) {e.printStackTrace();}}});}// 关闭线程池executorService.shutdown();while (!executorService.isTerminated()) {Thread.sleep(100);}// 关闭连接sourceConnection.close();targetConnection.close();long endTime = System.currentTimeMillis(); // 记录结束时间long totalTime = endTime - startTime; // 计算总时间System.out.println("成功复制 " + tablesCopied + " 张表格到目标数据库,总用时:" + totalTime + " 毫秒");} catch (SQLException | InterruptedException e) {e.printStackTrace();}}
}

写的不严谨,代码里面现在有问题只能复制表,插入数据不了数据,大家自己解开问题。

⒐.注意:MySQL不支持SELECT INTO语法

        

相关文章:

IDEA爪哇操作数据库

少小离家老大回,乡音无改鬓毛衰 ⒈.IDEA2018设置使用主题颜色 IDEA2018主题颜色分为三种&#xff1a;idea原始颜色&#xff0c;高亮色&#xff0c;黑色 设置方法&#xff1a;Settings–Appearance&Behavior–Appearance ⒉.mysql中&#xff0c;没有my.ini&#xff0c;只有…...

一文速学-让神经网络不再神秘,一天速学神经网络基础(七)-基于误差的反向传播

前言 思索了很久到底要不要出深度学习内容&#xff0c;毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新&#xff0c;很多坑都没有填满&#xff0c;而且现在深度学习的文章和学习课程都十分的多&#xff0c;我考虑了很久决定还是得出神经网络系列文章&#xff0c;…...

C++ 异常处理——学习记录007

1. 概念 程序中的错误分为编译时错误和运行时错误。编译时出现的错误包括关键字拼写出错、语句分号缺少、括号不匹配等&#xff0c;编译时的错误容易解决。运行时出现的错误包括无法打开文件、数组越界和无法实现指定的操作。运行时出现的错误称为异常&#xff0c;对异常的处理…...

【BIM+GIS】“BIM+”是什么? “BIM+”技术详解

对于我们日常生活影响最大的是信息化和网络化给我们的日常生活带来革命性的变化。“互联网+“在建筑行业里可以称为“BIM+”。“BIM+”"即是通过BIM与各类技术(互联网、大数据等)结合去完成不同的任务。将产品的全生命周期和全制造流程的数字化以及基于信息通信技术的模块…...

Flink算子如何限流

目录 使用方法 调用类图 内部源码 GuavaFlinkConnectorRateLimiter RateLimiter 使用方法 重写AbstractRichFunction中的open()方法,在处理数据前调用limiter.acquire(1); 调用limiter.open(getRuntimeContext())的源码,实际内部是RateLimiter,根据并行度算出subTask…...

垃圾分代收集的过程是怎样的?

垃圾分代收集是Java虚拟机(JVM)中一种常用的垃圾回收策略。该策略将堆内存分为不同的代(Generation)&#xff0c;通常分为年轻代(Young Generation)和老年代(Old Generation)。不同代的对象具有不同的生命周期和回收频率。 下面是Java中垃圾分代收集的一般过程&#xff1a; 1…...

NPM 常用命令(四)

目录 1、npm diff 1.1 描述 1.2 过滤文件 1.3 配置 diff diff-name-only diff-unified diff-ignore-all-space diff-no-prefix diff-src-prefix diff-dst-prefix diff-text global tag workspace workspaces include-workspace-root 2、npm dist-tag 2.1 常…...

Anaconda虚拟环境下导入opencv

文章目录 解决方法测试 解决方法 1、根据自己虚拟环境对于的python版本与电脑对应的位长选择具体的版本&#xff0c;例如python3.9选择cp39&#xff0c;64位电脑选择64 下载地址&#xff1a;资源地址 若是不确定自己虚拟环境对应的python版本&#xff0c;可以输入下列命令&…...

Linux设备驱动程序

一、设备驱动程序简介 图1.1 内核功能的划分 可装载模块 Linux有一个很好的特性:内核提供的特性可在运行时进行扩展。这意味着当系统启动 并运行时&#xff0c;我们可以向内核添加功能( 当然也可以移除功能)。 可在运行时添加到内核中的代码被称为“模块”。Linux内核支持好几…...

mybatis <if>标签判断“0“不生效

原if标签写法 <if test"type 0"><!--内部逻辑--> </if> 这种情况不生效,原因是mybatis是用OGNL表达式来解析的&#xff0c;在OGNL的表达式中&#xff0c;0’会被解析成字符(而我传入的type却是string)&#xff0c;java是强类型的&#xff0c;cha…...

企业数据的存储形式与方案选择

企业数据的存储形式 DAS&#xff08;直接附加存储&#xff09;&#xff1a;企业初期银行规模不大&#xff0c;企业的数据存储需求也比较简单&#xff0c;因此对企业数据存储的要求就是安全保存并可以随时调用。而DAS的之间连接可以解决单台服务器的存储空间扩展&#xff0c;高…...

图像处理简介

目录 基本术语 1 .图像(image) 1.1 像素(Pixel) 1.2 颜色深度&#xff08;Color Depth&#xff09; 1.3 分辨率&#xff08;Resolution&#xff09; 1.4 像素宽高比&#xff08;Pixel Aspect Ratio&#xff09; 1.5 帧率(FPS) 1.6 码率&#xff08;BR&#xff09; 1. …...

adb server version (19045) doesn‘t match this client (41); killing.的解决办法

我是因为安装了360手机助手&#xff0c;导致adb版本冲突。卸载之后问题解决 根据这个思路&#xff0c;如果产生"adb server version (19045) doesn’t match this client (41); killing."的错误&#xff0c;检查一下是否有多个版本的adb服务。...

实验室的服务器和本地pycharm怎么做图传

提前说一个 自认为 比较重要的一点&#xff1a; 容器中安装opencv&#xff0c;可以先试试用 apt install libopencv-dev python3-opencv 我感觉在图传的时候用的不是 opencv-python 而是ubuntu的opencv库 所以用 apt install 安装试一下 参考 远程调试 qt.qpa.xcb: coul…...

Vue + Element UI 前端篇(五):国际化实现

Vue Element UI 实现权限管理系统 前端篇&#xff08;五&#xff09;&#xff1a;国际化实现 国际化支持 1.安装依赖 执行以下命令&#xff0c;安装 i18n 依赖。 yarn add vue-i18n $ yarn add vue-i18n yarn add v1.9.4 warning package-lock.json found. Your project …...

[ROS]虚拟机ubuntu18.04系统里面运行usb_cam

首先安装usb_cam sudo apt-get install ros-melodic-usb-cam 运行&#xff1a; roscore roslaunch usb_cam usb_cam-test.launch 如果一运行报错&#xff0c;首先确认是否存在/dev/video0 可以使用ls /dev/video*查看&#xff0c;如果没有就是没有连接摄像头&#xff0c;…...

常用通讯协议比较

dubbo与http1.0的区别 二进制协议&#xff1a;Dubbo使用自定义的二进制协议&#xff0c;而HTTP 1.0使用文本&#xff0c;发送一条相同的消息&#xff0c;http1.0会有更大的网络开销。 连接复用&#xff1a;Dubbo采用单一的多路复用NIO长链接&#xff0c;每个请求都有一个对应的…...

鼠标键盘管理 ShareMouse for Mac最新

软件“ShareMouse”允许您通过单个鼠标和键盘控制多台计算机&#xff1a; 将鼠标移动到您想要控制的计算机的监视器上&#xff0c;指针会神奇地跳转到该计算机。任何鼠标和键盘输入都会传输到相应的计算机。 与网络KVM类似&#xff0c;ShareMouse通过本地LAN传输鼠标移动和点…...

【ALM工具软件】上海道宁与Perforce为您带来用于整个生命周期的应用程序生命周期管理软件

Helix ALM是 用于整个生命周期的 应用程序生命周期管理的ALM软件 具有专用于 需求管理&#xff08;Helix RM&#xff09;、测试用例管理&#xff08;Helix TCM&#xff09; 问题管理&#xff08;Helix IM&#xff09;的功能模块 Helix ALM提供了 无与伦比的可追溯性 您将…...

Android图形-架构2

目录 引言 组件概述 底层组件&#xff1a; 上层组件&#xff1a; 引言 Android图形架构主要涉及些什么呢&#xff1f; 1&#xff09;Android 系统级图形架构的基本元素&#xff1f; 2&#xff09;应用框架和多媒体系统如何使用这些元素&#xff1f; 3&#xff09;图形数据…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...