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)图形数据…...

文字验证码:简单有效的账号安全守卫!
前言 文字验证码不仅是一种简单易懂的验证方式,同时也是保护您的账号安全的重要工具。通过输入正确的文字组合,您可以有效地确认自己的身份,确保只有真正的用户才能访问您的账号。 HTML代码 <script src"https://cdn6.kgcaptcha.…...

Shell 运算符及语法结构
目录 一、Shell运算符 1.1 表达式expr 1.2 运算操作 1.3 操作实例 二、Shell条件判断 2.1 基本语法 2.2 值、权限、类型、多条件判断 三、Shell流程控制 3.1 if 流程语法 3.2 case 流程语法 3.3 for 流程语法 3.4 内部运算符 3.5 while循环流程语法 四、Shell读…...

为什么要建前缀索引?
分析&回答 有一种与索引选择性有关的索引优化策略叫做前缀索引,就是用列的前缀代替整个列作为索引key,当前缀长度合适时,可以做到既使得前缀索引的选择性接近全列索引,同时因为索引key变短而减少了索引文件的大小和维护开销。…...

vite介绍
vite vite是一种新的前端构建工具,vite借助了浏览器对ESM的支持,采用和传统webpack打包完全不一致的unbundle打包机制; vite的快主要体现在两个方面,快速的冷启动和快速的热更新 快速的冷启动:vite只需启动一台静态页…...

2023年软件测试常见面试题
测试花费的成本,要深入在那个环节上,(前提准备上,需求理解上,业务逻辑,排错上,业务名词上理解,通过什么样的方法,有谁能解决这样的问题) 软性热身题 1.自我…...

关于const指针的一个常见误区
关于const,我曾因为其在C和C中的不同,还有一些编译器对未定义的处理不同,搞得晕头转向… 后来有次在阅读《C primer plus》中我终于梳理了有关const的结论。 1.const基础知识 首先要明白const的难点在于修饰指针的时候,对于con…...

@alilclowcode-engine-ext@1.0.5 不支持安装react@^16.3.0
alilclowcode-engine-ext1.0.5 不支持安装react^16.3.0 https://github.com/alibaba/lowcode-demo https://lowcode-engine.cn/site/docs/demoUsage/intro https://github.com/alibaba/lowcode-engine https://docs.appsmith.com/getting-started/setup/installation-guides?…...

Python之列表操作和内存模型
Python之列表操作和内存模型 列表list 一个排列整齐的队伍,Python采用顺序表实现 列表内的个体称作元素,由若干元素组成 列表 元素可以是任意对象(数字、字符串、对象、列表等) 列表内元素有顺序,可以使用索引 线性的数据结构 使用 [ ] …...

实习面试记录
湖南某操作系统中厂(9月) 首先是科研项目相关的问题,然后是其他问题如下: STL中,vector,map和unorded_map底层是怎么实现的? 在C标准库中,vector和map都是基于模板类实现的容器。 vector底层…...

总结/笔记-vue中的插槽(默认插槽、具名插槽、作用域插槽)
问题: 遇到了一个插槽,写法为 #default ”{ row }“ 插槽知识点: 定义 插槽,用于 在组件中 引用外部组件或自定义组件的内容。 即 子组件中提供给父组件使用的一个占位符,父组件可以在这个占位符中填充任何模板代…...