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为例:
- 关闭正在运行的MySQL服务。
- 打开DOS窗口,转到mysql\bin目录。
- 输入mysqld --skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
- 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
- 输入mysql回车,如果成功,将出现MySQL提示符 >。
- 连接权限数据库: use mysql; 。
- 改密码:update user set password=password(“123”) where user=“root”;(别忘了最后加分号) 。
- 刷新权限(必须步骤):flush privileges; 。
- 退出 quit。
- 注销系统,再进入,使用用户名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主题颜色分为三种:idea原始颜色,高亮色,黑色 设置方法:Settings–Appearance&Behavior–Appearance ⒉.mysql中,没有my.ini,只有…...

一文速学-让神经网络不再神秘,一天速学神经网络基础(七)-基于误差的反向传播
前言 思索了很久到底要不要出深度学习内容,毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新,很多坑都没有填满,而且现在深度学习的文章和学习课程都十分的多,我考虑了很久决定还是得出神经网络系列文章,…...
C++ 异常处理——学习记录007
1. 概念 程序中的错误分为编译时错误和运行时错误。编译时出现的错误包括关键字拼写出错、语句分号缺少、括号不匹配等,编译时的错误容易解决。运行时出现的错误包括无法打开文件、数组越界和无法实现指定的操作。运行时出现的错误称为异常,对异常的处理…...
【BIM+GIS】“BIM+”是什么? “BIM+”技术详解
对于我们日常生活影响最大的是信息化和网络化给我们的日常生活带来革命性的变化。“互联网+“在建筑行业里可以称为“BIM+”。“BIM+”"即是通过BIM与各类技术(互联网、大数据等)结合去完成不同的任务。将产品的全生命周期和全制造流程的数字化以及基于信息通信技术的模块…...
Flink算子如何限流
目录 使用方法 调用类图 内部源码 GuavaFlinkConnectorRateLimiter RateLimiter 使用方法 重写AbstractRichFunction中的open()方法,在处理数据前调用limiter.acquire(1); 调用limiter.open(getRuntimeContext())的源码,实际内部是RateLimiter,根据并行度算出subTask…...
垃圾分代收集的过程是怎样的?
垃圾分代收集是Java虚拟机(JVM)中一种常用的垃圾回收策略。该策略将堆内存分为不同的代(Generation),通常分为年轻代(Young Generation)和老年代(Old Generation)。不同代的对象具有不同的生命周期和回收频率。 下面是Java中垃圾分代收集的一般过程: 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版本与电脑对应的位长选择具体的版本,例如python3.9选择cp39,64位电脑选择64 下载地址:资源地址 若是不确定自己虚拟环境对应的python版本,可以输入下列命令&…...

Linux设备驱动程序
一、设备驱动程序简介 图1.1 内核功能的划分 可装载模块 Linux有一个很好的特性:内核提供的特性可在运行时进行扩展。这意味着当系统启动 并运行时,我们可以向内核添加功能( 当然也可以移除功能)。 可在运行时添加到内核中的代码被称为“模块”。Linux内核支持好几…...
mybatis <if>标签判断“0“不生效
原if标签写法 <if test"type 0"><!--内部逻辑--> </if> 这种情况不生效,原因是mybatis是用OGNL表达式来解析的,在OGNL的表达式中,0’会被解析成字符(而我传入的type却是string),java是强类型的,cha…...
企业数据的存储形式与方案选择
企业数据的存储形式 DAS(直接附加存储):企业初期银行规模不大,企业的数据存储需求也比较简单,因此对企业数据存储的要求就是安全保存并可以随时调用。而DAS的之间连接可以解决单台服务器的存储空间扩展,高…...

图像处理简介
目录 基本术语 1 .图像(image) 1.1 像素(Pixel) 1.2 颜色深度(Color Depth) 1.3 分辨率(Resolution) 1.4 像素宽高比(Pixel Aspect Ratio) 1.5 帧率(FPS) 1.6 码率(BR) 1. …...
adb server version (19045) doesn‘t match this client (41); killing.的解决办法
我是因为安装了360手机助手,导致adb版本冲突。卸载之后问题解决 根据这个思路,如果产生"adb server version (19045) doesn’t match this client (41); killing."的错误,检查一下是否有多个版本的adb服务。...

实验室的服务器和本地pycharm怎么做图传
提前说一个 自认为 比较重要的一点: 容器中安装opencv,可以先试试用 apt install libopencv-dev python3-opencv 我感觉在图传的时候用的不是 opencv-python 而是ubuntu的opencv库 所以用 apt install 安装试一下 参考 远程调试 qt.qpa.xcb: coul…...

Vue + Element UI 前端篇(五):国际化实现
Vue Element UI 实现权限管理系统 前端篇(五):国际化实现 国际化支持 1.安装依赖 执行以下命令,安装 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 运行: roscore roslaunch usb_cam usb_cam-test.launch 如果一运行报错,首先确认是否存在/dev/video0 可以使用ls /dev/video*查看,如果没有就是没有连接摄像头,…...
常用通讯协议比较
dubbo与http1.0的区别 二进制协议:Dubbo使用自定义的二进制协议,而HTTP 1.0使用文本,发送一条相同的消息,http1.0会有更大的网络开销。 连接复用:Dubbo采用单一的多路复用NIO长链接,每个请求都有一个对应的…...

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

【ALM工具软件】上海道宁与Perforce为您带来用于整个生命周期的应用程序生命周期管理软件
Helix ALM是 用于整个生命周期的 应用程序生命周期管理的ALM软件 具有专用于 需求管理(Helix RM)、测试用例管理(Helix TCM) 问题管理(Helix IM)的功能模块 Helix ALM提供了 无与伦比的可追溯性 您将…...
Android图形-架构2
目录 引言 组件概述 底层组件: 上层组件: 引言 Android图形架构主要涉及些什么呢? 1)Android 系统级图形架构的基本元素? 2)应用框架和多媒体系统如何使用这些元素? 3)图形数据…...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

Spring AOP代理对象生成原理
代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】,这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...