生活与成长
发表于|更新于|生活与成长
|浏览量:
生活与成长
文章作者: Johnson Lin
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Johnson Lin!
相关推荐
2022-06-10
Ubuntu 20.04 安装 MySQL 5.7
Ubuntu 20.04 对应的 MySQL 版本是 8.0,如果要安装 5.7 版本,有以下三种安装方式: 下载 MySQL 二进制压缩包,解压并设置相关的参数即可运行。 通过命令 apt install 进行安装,先下载 MySQL 5.7 对应的源,然后执行安装命令 apt install mysql-server=5.7.37-1ubuntu18.04 。 通过命令 dpkg -i 的方式安装,下载 MySQL 5.7 对应的 deb 文件,然后执行安装命令即可。 这里只说明第三种方式的安装过程,即通过命令 dpkg -i 的方式。具体步骤如下: 下载从 MySQL 官网 下载文件 mysql-server_5.7.37-1ubuntu18.04_amd64.deb-bundle.tar : 1wget https://cdn.mysql.com/archives/mysql-5.7/mysql-server_5.7.37-1ubuntu18.04_amd64.deb-bundle.tar 解压将下载好的文件解压到相应的目录,这里是解压到目录 /mnt/d/opt/...

2019-10-12
关于MySQL数据库自增主键,说几个容易被忽略的点
自增主键是什么自增主键是指在自增列上定义的主键。自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,索引也更紧凑。 在建表语句中一般是这么定义的: 1NOT NULL PRIMARY KEY AUTO_INCREMENT 如: 12345CREATE TABLE `t` ( `id` int(11) NOT NULL AUTO_INCREMENT, `step` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB; 自增值保存在哪里不同的数据库引擎对于自增值的保存策略不同: MyISAM 引擎:自增值保存在数据文件中; InnoDB引擎: 在 MySQL 5.7 及之前的版本,自增值保存在内存里,并没有持久化。每次重启后,第一次打开表的时候,都会去找自增值的最大值 max(id),然后将 max(id)+1 作为这个表当前的自增值。 在 MySQL 8.0 版本,将自增值的变更记录在了 redo log 中,重启的时候依靠 redo log 恢复重启之前的值。 自增值修改机制假设数据表当前的自增...
2022-04-13
CentOS安装MySQL 5.7失败:GPG Key验证不通过
问题描述在 CentOS 系统,通过 yum 命令安装 MySQL 5.7 时,出现如下错误: 1234Public key for mysql-community-server-5.7.37-1.el7.x86_64.rpm is not installed Failing package is: mysql-community-server-5.7.37-1.el7.x86_64 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql yum 命令如下: 1sudo yum install mysql-server 解决方法从错误信息可以确认这是由 GPG Key 验证没有通过引起的。解决方法如下: 方法一: yum 安装命令加上参数 --nogpgcheck,即绕过 GPG Key 验证: 1sudo yum install mysql-server --nogpgcheck 方法二(推荐): 导入 GPG KEY: 1sudo rpm --import https://repo.mysql...

2019-08-18
MySQL多表更新(关联表更新)
在开发过程中,有时会遇到需要将某张表的字段值根据条件动态地更新到另一张表字段的问题,即通过一张表的字段修改另一张关联表中的内容。比如,存在两张表A(表名:test_a)、B(表名:test_b),他们的表结构如下: 表A(test_a): id user_id dept_id update_time 1 34242 313 2 35322 320 3 35639 321 表B(test_b): id user_id patient_id dept_id create_time 1 34242 342 0 2018-05-23 09:33:45 2 35322 365 0 2018-05-24 00:13:05 3 35639 398 0 2018-05-24 00:43:18 现在我们需要将表A的 dept_id 字段值根据 user_id 字段同步到表B的 dept_id 字段中,即用表A中的 dept_id 字段数据去更新表B中的 dept_id 字段,条件是表A的 user_id 字段值与表B的 user...

2022-07-31
生产环境MySQL慢查询问题定位
本文根据实际项目经验,详细描述 MySQL 慢查询问题的发现及排查解决过程。在不影响读者阅读理解的前提下,对部分原始数据进行脱敏处理。 背景生产环境 MySQL 硬件配置:32C/64G/2T ESSD MySQL 版本:5.7.28 存储数据主要来源:主要是 Flink 实时计算的指标,少部分 Presto 准实时计算的指标,同时还有部分离线数仓模型也会每天同步一份至该 MySQL,用于加速客户端查询和提升并发查询能力。 发现问题之前收到运维的反馈,生产环境上用于存放 Flink 实时计算指标的 MySQL 有告警——每分钟慢查询数超过告警阈值,需及时跟进。当时通过 MySQL 监控面板查看到部分关键指标如下: 慢查询数 QPS TPS 网络流量(流入、流出) 表锁 慢日志明细部分 SQL(当时只拉取一小部分的慢 SQL,以下这些语句是 Flink SQL 写入 MySQL 的) 12345678910111213141516# Time: 2022-07-28T01:16:52.760142Z# User@Host: bigdata[bigdata] @ [...

2023-09-26
解决MySQL 8中“Public Key Retrieval is not allowed”问题
问题从 MySQL 8 开始,身份验证插件更改为“caching_sha2_password”。因此,使用 JDBC 或其他客户端工具连接 MySQL 时,可能会遇到“Public Key Retrieval is not allowed”的问题。 1Public Key Retrieval is not allowed 解决方案一在连接 MySQL 时,设置以下参数,允许客户端自动向服务器请求公钥。1allowPublicKeyRetrieval=true如:1jdbc:mysql://localhost:3306/mysql_database?useSSL=false&allowPublicKeyRetrieval=true 解决方案二我们可以将身份验证插件更改回“mysql_native_password”来解决该问题。 在终端中执行以下命令以使用 root 用户登录 MySQL: 1$ mysql -u root -p 进入mysql数据库: 1mysql> use mysql; 查看当前用户表中的 host 和用户信息: 1mysql>...
