MySQL日常运维手册

news2024/9/28 5:27:45

对象创建DDL查询

-- 获取创建 database 的 DDL 
show create database_name;
-- 获取创建 表 的 DDL 
show create table table_name;
-- 获取创建 视图 的 DDL 
show create view index_name;
-- 获取创建 触发器 的 DDL 
show  create trigger trigger_name;
-- 获取创建 用户 的 DDL 
show create user user_name;

查询系统视图/表

-- MySQL 8.0+
select table_schema,table_name,table_type from information_schema.tables
where regexp_like(table_name,'table','i');

用户管理

创建用户

-- 创建超级管理员
CREATE USER 'root'@'%' IDENTIFIED BY 'rootroot';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

修改用户

-- 锁定用户
ALTER USER 'user'@'host' ACCOUNT LOCK;
-- 设置用户密码有效期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE INTERVAL 180 DAY;

-- 修改用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

更改用户密码

-- mysql 5.7以下
update user set password=password('123') where user='root' and host='localhost';

-- mysql 5.7以上
update mysql.user set authentication_string=PASSWORD('newpassword') where user='username' and host='localhost';

-- mysql 8.0以上
alter user 'root'@'localhost' identified by 'newpassword';

信息查询

-- 查看创建用户的命令
show create user '用户名'@'localhost';
-- 查看用户的权限
SHOW GRANTS FOR '用户'@'localhost';

修改用户认证方式

CREATE USER 'yaokang'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'yaokang';
GRANT ALL PRIVILEGES ON *.* TO 'new_username'@'your_host';


SELECT user, host, plugin FROM mysql.user;
ALTER USER 'yaokang'@'%' IDENTIFIED WITH 'caching_sha2_password';
FLUSH PRIVILEGES;

vim /etc/my.cnf
default_authentication_plugin=caching_sha2_password
sudo systemctl restart mysql
SHOW PLUGINS;

如果将 MySQL 用户的认证方式从 mysql_native_password 改为 caching_sha2_password 后,用户无法连接到数据库,这可能是因为用户的连接客户端(如应用程序或MySQL客户端)不支持新的认证方式。

在 MySQL 8.0 版本中,默认的认证插件是 caching_sha2_password,而在之前的版本中(如 MySQL 5.7),默认的认证插件是 mysql_native_password。因此,在 MySQL 5.7 中创建的用户默认使用的是 mysql_native_password 认证方式。

如果你将 MySQL 用户的认证方式修改为 caching_sha2_password,但用户的连接客户端不支持该认证方式,用户将无法通过客户端进行连接。在这种情况下,你有以下几个选择:

  1. 升级客户端:更新连接客户端,确保其支持 caching_sha2_password 认证方式。大多数现代的 MySQL 客户端都已经支持该认证方式。
  2. 修改用户认证方式为旧版:如果你不想升级客户端,可以将用户的认证方式修改回 mysql_native_password。这样用户就可以继续使用旧版认证方式连接数据库。

在 MySQL 5.7 中,将用户的认证方式修改为 caching_sha2_password 的步骤如下:

sqlCopy code
ALTER USER 'your_username'@'your_host' IDENTIFIED WITH 'mysql_native_password' BY 'your_password';

请根据实际情况选择适合的认证方式,并确保你已经备份了数据库,并在进行任何更改之前在测试环境进行测试。

MySQL ssl认证

mysql ssl实现的大概流程

  1. 先为MySQL服务器创建SSL证书和秘钥
  2. 在MySQL里面配置SSL,并启动服务
  3. 创建用户的时候带上SSL标签,require ssl
  4. 连接数据库的时候带上SSL
#检查数据库是否启动SSL:
mysql> show variables like '%ssl%';
+---------------+----------+
| Variable_name | Value    |
+---------------+----------+
| have_openssl  | DISABLED |
| have_ssl      | DISABLED |
| ssl_ca        |          |
| ssl_capath    |          |
| ssl_cert      |          |
| ssl_cipher    |          |
| ssl_crl       |          |
| ssl_crlpath   |          |
| ssl_key       |          |
+---------------+----------+
9 rows in set (0.00 sec)

mysql> 

创建证书并开启SSL验证

#1、查看openssl版本
[root@testos ~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013
#如果没有安装就安装以下包
yum install -y openssl

#2、安装证书
[root@testos ~]# mysql_ssl_rsa_setup --datadir=/mysql/data/3306 --user=mysql --uid=mysql
Generating a 2048 bit RSA private key
.........................................................+++
.................................+++
writing new private key to 'ca-key.pem'
-----
Generating a 2048 bit RSA private key
............................+++
.........+++
writing new private key to 'server-key.pem'
-----
Generating a 2048 bit RSA private key
............................+++
.............................................................................................................+++
writing new private key to 'client-key.pem'
-----
[root@testos ~]# ls -lst /mysql/data/3306/*.pem
4 -rw-r--r-- 1 mysql mysql  451 Jul 15 13:37 /mysql/data/3306/public_key.pem
4 -rw------- 1 mysql mysql 1675 Jul 15 13:37 /mysql/data/3306/private_key.pem
4 -rw-r--r-- 1 mysql mysql 1107 Jul 15 13:37 /mysql/data/3306/client-cert.pem
4 -rw------- 1 mysql mysql 1679 Jul 15 13:37 /mysql/data/3306/client-key.pem
4 -rw-r--r-- 1 mysql mysql 1107 Jul 15 13:37 /mysql/data/3306/server-cert.pem
4 -rw------- 1 mysql mysql 1675 Jul 15 13:37 /mysql/data/3306/server-key.pem
4 -rw-r--r-- 1 mysql mysql 1107 Jul 15 13:37 /mysql/data/3306/ca.pem
4 -rw------- 1 mysql mysql 1679 Jul 15 13:37 /mysql/data/3306/ca-key.pem
[root@testos ~]# 

public_key.pem			#公钥
private_key.pem			#私钥
client-cert.pem			#客户端的证书文件
client-key.pem			#客户端的私钥文件
server-cert.pem			#服务器的证书文件
server-key.pem			#服务器的私钥文件
ca.pem					#ca证书
ca-key.pem				#ca证书key



#3、修改my.cnf参数文件,加入以下信息
ssl-ca=/mysql/data/3306/ca.pem
ssl-cert=/mysql/data/3306/server-cert.pem
ssl-key=/mysql/data/3306/server-key.pem

#4、重启MySQL服务
service mysql restart


#5、检查ssl参数配置是否生效
mysql> show global variables like '%ssl%';
+---------------+----------------------------------+
| Variable_name | Value                            |
+---------------+----------------------------------+
| have_openssl  | YES                              |
| have_ssl      | YES                              |
| ssl_ca        | /mysql/data/3306/ca.pem          |
| ssl_capath    |                                  |
| ssl_cert      | /mysql/data/3306/server-cert.pem |
| ssl_cipher    |                                  |
| ssl_crl       |                                  |
| ssl_crlpath   |                                  |
| ssl_key       | /mysql/data/3306/server-key.pem  |
+---------------+----------------------------------+
9 rows in set (0.00 sec)

mysql> show global variables like 'tls_version';
+---------------+---------------+
| Variable_name | Value         |
+---------------+---------------+
| tls_version   | TLSv1,TLSv1.1 |
+---------------+---------------+
1 row in set (0.00 sec)

mysql> 

配置SSL用户与测试(不强制证书认证)

#1、创建普通用户
create user test@'%' identified by 'test';
grant all on *.* to test@'%';
flush privileges;
select user,host,ssl_type,ssl_cipher from mysql.user;

mysql> select user,host,ssl_type,ssl_cipher from mysql.user where user='test';
+------+------+----------+------------+
| user | host | ssl_type | ssl_cipher |
+------+------+----------+------------+
| test | %    |          |            |
+------+------+----------+------------+
1 row in set (0.00 sec)

#ssl_type支持的类型:
ANY
SPECIFIED
X509



#2、登录时的选项
#2.1 方法1:
[root@testos ~]# mysql -uroot -prootroot --ssl-mode=required
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.20-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

You are enforcing ssl conection via unix socket. Please consider       #注意这里的提示
switching ssl off as it does not make connection via unix socket
any more secure.
mysql> 

#使用status命令查看是否启动ssl
mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.7.20, for linux-glibc2.12 (x86_64) using  EditLine wrapper

Connection id:          4
Current database:
Current user:           root@localhost
SSL:                    Cipher in use is DHE-RSA-AES256-SHA				#注意这里信息
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.20-log MySQL Community Server (GPL)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql.sock
Uptime:                 7 min 32 sec

Threads: 3  Questions: 16  Slow queries: 0  Opens: 115  Flush tables: 1  Open tables: 108  Queries per second avg: 0.035
--------------

mysql> 



[root@itpuxdb ~]# mysql -uroot -prootroot --ssl-mode=disable
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.20-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.7.20, for linux-glibc2.12 (x86_64) using  EditLine wrapper

Connection id:          7
Current database:
Current user:           root@localhost
SSL:                    Not in use								#注意这里的信息
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.20-log MySQL Community Server (GPL)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql.sock
Uptime:                 9 min 18 sec

Threads: 3  Questions: 21  Slow queries: 0  Opens: 115  Flush tables: 1  Open tables: 108  Queries per second avg: 0.037
--------------

mysql> 






#2.2 方法2:
[root@itpuxdb ~]# mysql -uroot -prootroot --ssl-ca=/mysql/data/3306/ca.pem --ssl-cert=/mysql/data/3306/client-cert.pem --ssl-key=/mysql/data/3306/client-key.pem
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.20-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

You are enforcing ssl conection via unix socket. Please consider
switching ssl off as it does not make connection via unix socket
any more secure.
mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.7.20, for linux-glibc2.12 (x86_64) using  EditLine wrapper

Connection id:          9
Current database:
Current user:           root@localhost
SSL:                    Cipher in use is DHE-RSA-AES256-SHA
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.20-log MySQL Community Server (GPL)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /tmp/mysql.sock
Uptime:                 13 min 29 sec

Threads: 3  Questions: 26  Slow queries: 0  Opens: 115  Flush tables: 1  Open tables: 108  Queries per second avg: 0.032
--------------

mysql> 

使用navicat连接:

#把服务器上的这两个文件拷贝到其他终端上
[root@testos ~]# ll /mysql/data/3306/client*
-rw-r--r-- 1 mysql mysql 1107 Jul 15 13:37 /mysql/data/3306/client-cert.pem
-rw------- 1 mysql mysql 1679 Jul 15 13:37 /mysql/data/3306/client-key.pem

image-20230727011117668

image-20230727011148746

也可以把ca加进去

image-20230727011335128

配置SSL用户与测试(强制证书认证)

#1、使用 X509证书
create user test2@'%' identified by 'test2' require x509;
grant all on *.* to test2@'%';
flush privileges;
mysql> select user,host,ssl_type,ssl_cipher from mysql.user where user like 'test%';
+-------+------+----------+------------+
| user  | host | ssl_type | ssl_cipher |
+-------+------+----------+------------+
| test  | %    |          |            |
| test2 | %    | X509     |            |
+-------+------+----------+------------+
2 rows in set (0.00 sec)



#2、尝试登录
[root@testos ~]# mysql -utest2 -ptest2
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'test2'@'localhost' (using password: YES)
[root@itpuxdb ~]# 
[root@itpuxdb ~]# mysql -utest2 -ptest2 --ssl-mode=required
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'test2'@'localhost' (using password: YES)
[root@itpuxdb ~]# 
[root@itpuxdb ~]# mysql -utest2 -ptest2 -h 192.168.1.51 --ssl-mode=required
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'test2'@'192.168.1.51' (using password: YES)
[root@itpuxdb ~]# 
[root@itpuxdb ~]# mysql -utest2 -ptest2 -h localhost --ssl-mode=required
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'test2'@'localhost' (using password: YES)
[root@testos ~]# 
#如上可以看出不使用证书,不让登录



#3、使用证书登录
[root@testos ~]# mysql -utest2 -ptest2 --ssl-ca=/mysql/data/3306/ca.pem --ssl-cert=/mysql/data/3306/client-cert.pem --ssl-key=/mysql/data/3306/client-key.pem
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 26
Server version: 5.7.20-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

You are enforcing ssl conection via unix socket. Please consider
switching ssl off as it does not make connection via unix socket
any more secure.
mysql> 

#如上必须指定秘钥才可以登录,也就是你把登录选项里面的三个秘钥文件传到需要登录的客户端上,连接的时候需要指定这三个文件才能登录成功

image-20230727012149442

不使用证书普通连接不可以

image-20230727012249225

ssl连接是可以的

#4、ANY的类型(也就是不指定ssl类型)
create user test3@'%' identified by 'test3' require ssl;
grant all on *.* to test3@'%';
flush privileges;
select user,host,ssl_type,ssl_cipher from mysql.user where user like 'test%';

mysql> select user,host,ssl_type,ssl_cipher from mysql.user where user like 'test%';
+-------+------+----------+------------+
| user  | host | ssl_type | ssl_cipher |
+-------+------+----------+------------+
| test  | %    |          |            |
| test2 | %    | X509     |            |
| test3 | %    | ANY      |            |
+-------+------+----------+------------+
3 rows in set (0.00 sec)


#如下ssl_type为any的时候,也可以指定ssl_mode=required的方式登录
[root@itpuxdb ~]# mysql -utest3 -ptest3 --ssl-mode=required
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.7.20-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

You are enforcing ssl conection via unix socket. Please consider
switching ssl off as it does not make connection via unix socket
any more secure.
mysql>



[root@itpuxdb ~]# mysql -utest3 -ptest3 --ssl-ca=/mysql/data/3306/ca.pem --ssl-cert=/mysql/data/3306/client-cert.pem --ssl-key=/mysql/data/3306/client-key.pem mysql --ssl-mode=required
mysql: [Warning] Using a password on the command line interface can be insecure.
WARNING: no verification of server certificate will be done. Use --ssl-mode=VERIFY_CA or VERIFY_IDENTITY.
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 33
Server version: 5.7.20-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

You are enforcing ssl conection via unix socket. Please consider
switching ssl off as it does not make connection via unix socket
any more secure.
mysql> 

取消SSL用户认证

mysql> select user,host,ssl_type,ssl_cipher from mysql.user where user like 'test%';
+-------+------+----------+------------+
| user  | host | ssl_type | ssl_cipher |
+-------+------+----------+------------+
| test  | %    |          |            |
| test2 | %    | X509     |            |
| test3 | %    | ANY      |            |
+-------+------+----------+------------+
3 rows in set (0.00 sec)

mysql> alter user test2@'%' require none;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,ssl_type,ssl_cipher from mysql.user where user like 'test%';
+-------+------+----------+------------+
| user  | host | ssl_type | ssl_cipher |
+-------+------+----------+------------+
| test  | %    |          |            |
| test2 | %    |          |            |
| test3 | %    | ANY      |            |
+-------+------+----------+------------+
3 rows in set (0.01 sec)

取消以后普通的连接就可以连接成功了:

image-20230727013035547

取消了ssl用户认证了还可以使用ssl连接:

image-20230727013126584

其它注意事项

  • 使用ssl认证,性能会降低5%~20%
  • JDBC客户端如何连接:在url里面加入ssl=true,ssl=false

performance_schema介绍

https://www.cnblogs.com/Courage129/p/14188422.html

清理数据

  • drop

    丢弃数据,drop table 表名 ,直接将表都删除掉,在删除表的时候使用。

  • truncate

    清空数据, truncate table 表名,只删除表中的数据,再插入数据的时候自增长 id 又从 1 开始,在清空表中数据的时候使用。

  • delete

    删除数据,delete from 表名 where 列名=值,删除某一行的数据,如果不加 where 子句和truncate table 表名作用类似。

总结:

  • truncate 和不带 where 子句的 delete、以及 drop 都会删除表内的数据,但是 truncate 和 delete 只删除数据不删除表的结构(定义),执行 drop 语句,此表的结构也会删除,也就是执行 drop 之后对应的表不复存在。
  • truncate和drop属于DDL(数据定义语言)语句,不能回滚
  • delete属于DML(数据操作语言)语句,可以回滚

执行速度

drop > truncate > delete

delete命令执行的时候会产生数据库的binlog日志,而日志记录是需要消耗时间的,但是也有个好处方便数据回滚恢复。
truncate命令执行的时候不会产生数据库日志,因此比delete要快。除此之外,还会把表的自增值重置和索引恢复到初始大小等。
drop命令会把表占用的空间全部释放掉。

插件管理

connection_control

防暴力破解密码

MySQL 插件之 连接控制插件(Connection-Control)

https://blog.csdn.net/fengge55/article/details/134525572

https://dev.mysql.com/doc/refman/5.7/en/connection-control-installation.html

mysql 连接控制插件

https://blog.51cto.com/wangguishe/6194787

插件connection_control 引发 Mysql hang (SHOW PROCESSLIST出现大量 unauthenticated user进程)详尽测试

https://blog.csdn.net/m0_54619218/article/details/130334944

一个CONNECTION 插件引起的连接问题

https://www.cnblogs.com/cqdba/p/16889117.html

一个MYSQL监控与CONNECTION_CONTROL引起的问题

https://www.cnblogs.com/cqdba/p/17459657.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1909403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件架构之计算机网络

软件架构之计算机网络 第 4 章 计算机网络4.1 网络架构与协议4.1.1 网络互联模型4.1.2 常见的网络协议4.1.3 IPv6 4.2 局域网与广域网4.2.2 无线局域网4.2.3 广域网技术4.2.4 网络接入技术 4.3 网络互连与常用设备4.4 网络工程4.4.1 网络规划4.4.2 网络设计4.4.3 网络实施 4.5 …

分析逆向案例十——逗游网标准sha1加密

网址: aHR0cHM6Ly93d3cuZG95by5jbi9wYXNzcG9ydC9sb2dpbj9uZXh0PWh0dHBzOi8vd3d3LmRveW8uY24vZGFuamkvbGlzdA 分析登陆页面的加密。 返回了两个包,下面明显是登陆包,上面这个也是有用的,一般这种返回两个包的情况。前一个包返回的值一般是登…

JVM 调优常用命令

文章目录 前言JVM 调优常用命令1. JPS2. jmap3. jstat4. jstack5. jinfo6. 常用配置: 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实…

C++技能基础:提升C++程序运行效率的方法总结

以下是一些编程方面的建议,目的是为了提升C程序的效率(这里的效率以时间为评判标准),欢迎指正和补充 场景:当设计方法时,将方法设计成值传递还是引用或者指针传递建议:当变量所占内存大小与指针…

浏览器出现 502 Bad Gateway的原理分析以及解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法 前言 此类问题主要作为疑难杂症 1. 问题所示 2. 原理分析 502 Bad Gateway 错误表示服务器作为网关或代理时,从上游服务器收到了无效的响应 通常出现在充当代理或网关的网络服务器上,例如 Nginx、Apache…

学校同步时钟系统实现考场时间统一协调

在学校的教育教学活动中,考试是一项至关重要的环节。而确保考场时间的统一协调,对于保障考试的公平性、准确性和严肃性具有不可忽视的意义。学校同步时钟系统的出现,为解决这一问题提供了高效而可靠的解决方案。 一、学校同步时钟系统是一种通…

新版Android Studio中设置gradle的JDK版本

旧版android studio 在旧版(具体哪个版本号之前搞不清了)中设置JDK版本在>File——>Project Structure——>SDK location——>Gradle Setting——>Gradle SDK 新版android studio 某次更新后发现SDK location下找不到Gradle Setting选项…

kei5l中不能跳转到函数定义的原因和个人遇到的问题

快捷键 CTRLK或F12,在选择要查看的函数定义时按下可以查看到(文件没问题的情况下) 出现不能查看的原因 1,没有设置生成文件信息(第一次打开工程常遇到问题) 2, 定义函数的代码没有加入工程 解决方式如下…

1.DDR3 SO-DIMM 内存条硬件总结

最近在使用fpga读写DDR3,板子上的DDR3有两种形式与fpga相连,一种是直接用ddr3内存颗粒,另一种是通过内存条的形式与fpga相连。这里我们正好记录下和ddr3相关的知识,先从DDR3 SO-DIMM 内存条开始。 1.先看内存条的版本 从JEDEC下载…

在idea中查看某个接口的所有实现类图

一、选中某个接口右键 ---> Diagrams ---> show Diagrams,然后就会进入一个新的 tab 页; 二、然后在出来的图上选中某个接口右键 ---> show Implementations,就会显示选中接口的所有实现类列表; 三、最后 ctrl A 全部选…

苍穹外卖--完善登录功能:进行MD5加密

目标 TODO:使用MD5加密方式对明文密码。 实现 password DigestUtils.md5DigestAsHex(password.getBytes());

CEPH 硬盘读写慢问题影响

ceph使用时经常会碰到起不来的情况 第一种就是服务器负载高,这个基本都会觉察到 还有一种就是硬盘问题 硬盘写问题 初始化时ceph会自己进行填充操作 ceph-volume lvm zap /dev/sdx --destroy 我就碰到过没初始化问题 看着一切正常 但看写入速度才几百KB/s 正常都100…

五款神奇的工作效率工具

大家好呀,今天我要来种草几款让我工作效率翻倍的神器啦!🎈如果你也经常感叹时间不够用,那这些小帮手绝对能让你事半功倍哦!🚀 1️⃣ 亿可达 — 软件连接器🔗 作为一款自动化工具,亿…

运营商如何与第三方服务商合作,共同建设PCDN网络?

运营商与第三方服务商合作,共同建设PCDN(P2P CDN)网络,是一个涉及技术、资源、运营等多方面的复杂过程。以下是一些建议的操作步骤: 一.明确合作目标与业务模式: 1.运营商与第三方服务商首先需…

如果你想手写Linux系统

哈喽,我是子牙老师。今天咱们聊聊这个话题吧,Linux作为当今科技世界的地基,我们越来越接近真理了,有木有? 这个文章的角度,你可能全网都很难找到第二篇如此系统讲透这个问题的文章 你可能想问&#xff1a…

论文辅导 | 基于模态分解的Transformer-GRU联合电池健康状态估计

辅导文章 模型描述 提出一种基于变分模态分解(variational mode decomposition,VMD)与粒子群优化(particle swarm optimization,PSO)的变换神经网络(Transformer)和门控循环单元(gate recurrent unit,GRU)的联合方法。首先将锂电池容量信息通…

科普文:一文搞懂jvm实战(四)深入理解逃逸分析Escape Analysis

概叙 Java 中的对象是否都分配在堆内存中? 好了太抽象了,那具体一点,看看下面这个对象是在哪里分配内存? public void test() { Object object new Object(); }这个方法中的object对象,是在堆中分配内存么&#xff1…

城市地下综合管廊物联网远程监控

城市地下综合管廊物联网远程监控 城市地下综合管廊,作为现代都市基础设施的重要组成部分,其物联网远程监控系统的构建是实现智慧城市建设的关键环节。这一系统集成了先进的信息技术、传感器技术、通信技术和数据处理技术,旨在对埋设于地下的…

免费无限白嫖阿里云服务器

今天,我来分享一个免费且无限使用阿里云服务器的方法,零成本!这适用于日常测试学习,比如测试 Shell 脚本、学习 Docker 安装、MySQL 等等。跟着我的步骤,你将轻松拥有一个稳定可靠的服务器,为你的学习和实践…

数字化打破传统,引领企业跨界经营与行业生态盈利

在当今数字化时代,传统的赚货差思路正面临着巨大的挑战。然而,数字化的崛起为企业提供了突破传统束缚的机会,促使其转向跨界经营,并通过行业生态经营获取利润。 首先,数字化打破了传统赚货差思路的局限性。以往&…