AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[mysql8](server)

Martin Hope
user61917
Asked: 2022-03-23 18:30:06 +0800 CST

Fortify Software Security Center 21.2.0 在初始设置期间无法处理 Fortify_Process_Seed_Bundle-2021_Q4_0001.zip

  • 0

我正在尝试为演示设置 Fortify SSC 21.2.0,但在获取数据库种子时遇到了一些麻烦。

以下描述了我的设置规范和到目前为止的进展。显然,据我所知,此时的问题是 SSC 正在尝试用实际值“播种”SSC 数据库,但似乎缺少必需的表。

任何有关此事的帮助将不胜感激!!!谢谢!!!!

规格:

  • 视窗 2016 服务器
  • 以完全管理权限运行所有应用程序
  • Fortify SSC 21.2.0 部署包
  • Apache Tomcat 9.0.5
  • MySQL 8.0.28
  1. Fortify SSC 部署成功
  • 导航到 http://localhost:8000/ssc
  • Fortify SSC 维护启动页面
  • 通过管理员链接强化软件安全中心设置
  1. 初始化令牌
  • 安装脚本生成的令牌
  • 使用生成的令牌成功登录“Fortify Software Security Center Setup”
  1. 上传的 fortify.licence 文件
  • 配置文件目录:
    • C:\Users\myusername.fortify\ssc
  1. Fortify 软件安全中心 URL
  • http://localhost:8000/ssc
  • HTTP 主机标头验证:关闭
  • 全局搜索:关闭
  1. 数据库设置
  • jdbc:mysql://localhost:3306/ssc?sessionVariables=collat​​ion_connection=utf8_bin
  • 最大空闲连接数:50
  • 最大活动连接数:100
  • 最大等待时间(毫秒):60000
  • 从 Fortify SSC 到数据库的测试连接成功
  • 跑 create-tables.sql
  • create-tables.sql 的第 2323 行失败:
  • 创建过程 updateExistingWithLatest(p_scan_id INT p_projectVersion_Id INT, p_engineType varchar(20)) .....“已经存在”
  • 数据库播种:
    • Fortify_Process_Seed_Bundle-2021_Q4_001.zip
  • 播种结果:
    • 无法处理 Fortify_Process_Seed_Bundle-2021_Q4_0001.zip 播种失败:无法播种所有初始化种子包
windows-server-2016 mysql8 tomcat9
  • 1 个回答
  • 255 Views
Martin Hope
Houman
Asked: 2020-12-06 11:29:33 +0800 CST

如何在 Mysql8 中跳过名称解析并改用 IP?

  • 1

我正在尝试禁用 DNS 名称解析,因为我有许多其他服务器连接到中央数据库。DNS解析很慢,显然可以像这样禁用:

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
log-error       = /var/log/mysql/error.log
port=3412
max_connections=500
skip-name-resolve

但是我仍然可以通过 localhost 连接到它,这对我来说没有意义。

mysql -h localhost -u root -p -P 3412

我在这里做了一些研究:

如果您选择使用 skip-name-resolve,请确保您的 MYSQL 连接权限设置为允许 IP,而不是主机。

在大多数系统上,对于本地 MySQL 服务器,您需要对 ipv4 使用 host=127.0.0.1,对 ipv6 网络使用 host=::1,而不是经典的“host=localhost”。

如果 DNS 解析被禁用,为什么我仍然可以通过 localhost 连接?

mysql mysql8
  • 1 个回答
  • 5107 Views
Martin Hope
JimmyBanks
Asked: 2020-06-27 06:20:45 +0800 CST

在 Ubuntu 18.04 上安装 MySQLDump for MySQL 8.0

  • 7

我正在尝试在 Azure 托管的 Ubuntu VM 上安装 mysqldump。

在构建过程中,我尝试以下命令:

sudo apt-get update
sudo apt-get install -y --no-install-recommends mysql-client-8.0

这会导致以下错误:

Unable to locate package mysql-client-8.0

当我查看 packages.ubuntu.com 上的包时,它列在 Ubuntu Focal 20.04LTS 下(https://packages.ubuntu.com/focal/mysql-client-8.0)

如果我将安装命令更改为:

sudo apt-get update
sudo apt-get install -y --no-install-recommends mysql-client

它安装了运行不正常的 mysql-client-5.7。相应数据库的 mysql-client 版本是否与 Ubuntu 服务器相关联?5.7 客户端是否应该与 MySQL 8.0 一起正常工作?

ubuntu mysql mysqldump mysql8
  • 2 个回答
  • 20722 Views
Martin Hope
ErikPerik
Asked: 2020-06-26 00:58:31 +0800 CST

MySQL 8 撤消日志在过度增长后不会被截断

  • 4

显然我在SELECT20 天前开始了一个从未完成的查询。即使客户端断开连接,它也会继续运行,并且运行时间很长,以至于其中一个撤消日志的大小增加到 230 GB。(有问题的数据库是 320 GB 的数据)。我已经强制终止查询,但撤消日志不会缩小到正常大小,导致磁盘已满。

作为记录,这是磁盘上的大小:

root@the-db:/var/lib/mysql# du -h undo_00* erik_*
11G undo_001
244G    undo_002
1.5G    erik_temporary_undo_004.ibu
22G erik_undo_003.ibu

一件有趣的事情是所有撤消日志都非常庞大?

我试图理解文档,但无法让它工作:https ://dev.mysql.com/doc/refman/8.0/en/innodb-undo-tablespaces.html

运行版本:

root@the-db:/var/lib/mysql# mysql --version
mysql  Ver 8.0.18 for Linux on x86_64 (MySQL Community Server - GPL)

自动截断

如果我理解正确,要让清除线程自动截断撤消日志,需要满足三个条件:

Step 1. undo log需要大于@@innodb_max_undo_log_size,即:

mysql> SELECT @@innodb_max_undo_log_size;
+----------------------------+
| @@innodb_max_undo_log_size |
+----------------------------+
|                 1073741824 |
+----------------------------+

步骤 2.@@innodb_undo_log_truncate需要ON

mysql> select @@innodb_undo_log_truncate;
+----------------------------+
| @@innodb_undo_log_truncate |
+----------------------------+
|                          1 |
+----------------------------+

第 3 步。 总共需要有 2 个活动的撤消日志Automated truncation of undo tablespaces requires a minimum of two active undo tablespaces(不确定这些是否意味着 2 个活动,然后再将一个从轮换中取出以进行截断)。

mysql> SELECT NAME, SPACE_TYPE, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE = 'Undo' ORDER BY NAME;
+-------------------------+------------+----------+
| NAME                    | SPACE_TYPE | STATE    |
+-------------------------+------------+----------+
| erik_temporary_undo_003 | Undo       | active   |
| erik_temporary_undo_004 | Undo       | active   |
| innodb_undo_001         | Undo       | active   |
| innodb_undo_002         | Undo       | inactive |
+-------------------------+------------+----------+

根据上面,我们有 3 个活动日志和 4 个总撤消日志。

然而,似乎什么都没有发生。

手动截断

还有一个用于截断日志的手动过程,该过程具有另一组先决条件。

步骤 1 和 2 与自动截断相同。

步骤 3 的不同之处在于Manual truncation of undo tablespaces requires a minimum of three active undo tablespaces(仍然不确定这是否意味着 3 在一个被取消旋转之前处于活动状态)。为了解决我的不确定性,我创建了 2 个额外的撤消表空间。

CREATE UNDO TABLESPACE erik_temporary_undo_003 ADD DATAFILE 'erik_undo_003.ibu';
CREATE UNDO TABLESPACE erik_temporary_undo_004 ADD DATAFILE 'erik_temporary_undo_004.ibu';

第 4 步是停用需要截断的表空间:

ALTER UNDO TABLESPACE innodb_undo_002 SET INACTIVE;

如果我理解正确,这将触发截断,完成STATUS后将是empty. 同样,这是当前状态:

mysql> SELECT NAME, SPACE_TYPE, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE = 'Undo' ORDER BY NAME;
+-------------------------+------------+----------+
| NAME                    | SPACE_TYPE | STATE    |
+-------------------------+------------+----------+
| erik_temporary_undo_003 | Undo       | active   |
| erik_temporary_undo_004 | Undo       | active   |
| innodb_undo_001         | Undo       | active   |
| innodb_undo_002         | Undo       | inactive |
+-------------------------+------------+----------+

大约 3 天前它被设置为非活动状态,此后一直没有改变。

一件奇怪的事情是,根据以下查询,只有 2 个活动撤消日志,而上一个查询显示 3。我错过了什么吗?

mysql> SHOW STATUS LIKE 'Innodb_undo_tablespaces%';
+----------------------------------+-------+
| Variable_name                    | Value |
+----------------------------------+-------+
| Innodb_undo_tablespaces_total    | 4     |
| Innodb_undo_tablespaces_implicit | 2     |
| Innodb_undo_tablespaces_explicit | 2     |
| Innodb_undo_tablespaces_active   | 2     |
+----------------------------------+-------+

Innodb_undo_tablespaces_active至少不应该是3吗?

频率

文档提到innodb_purge_rseg_truncate_frequency了一种让清除线程更频繁地运行的方法。默认值为128,示例显示将其设置为32. 就时间而言,这实际上意味着什么还不清楚。它只是提到“每 32 次运行”。

To increase that frequency, decrease the innodb_purge_rseg_truncate_frequency setting. For example, to have the purge thread look for undo tabespaces once every 32 timees[sic] that purge is invoked, set innodb_purge_rseg_truncate_frequency to 32.

为了更好地衡量,我将其设置为 1。

mysql> show variables like "%truncate%";
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| innodb_purge_rseg_truncate_frequency | 1     |
| innodb_undo_log_truncate             | ON    |
+--------------------------------------+-------+

指标

我最近才了解如何获取 InnoDB 指标:

mysql> set global innodb_monitor_enable = all;

并且会在指标可用时更新。

相关配置

mysql> show variables like "%undo%";
+--------------------------+------------+
| Variable_name            | Value      |
+--------------------------+------------+
| innodb_max_undo_log_size | 1073741824 |
| innodb_undo_directory    | ./         |
| innodb_undo_log_encrypt  | OFF        |
| innodb_undo_log_truncate | ON         |
| innodb_undo_tablespaces  | 2          |
+--------------------------+------------+

mysql> show variables like "%truncate%";
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| innodb_purge_rseg_truncate_frequency | 1     |
| innodb_undo_log_truncate             | ON    |
+--------------------------------------+-------+

为了让 MySQL 截断撤消日志大小,我缺少什么?

我只是假设截断意味着磁盘上的实际文件会缩小。或许还有别的意思?

mysql mysql8
  • 1 个回答
  • 3020 Views
Martin Hope
Tolsadus
Asked: 2020-06-19 00:07:08 +0800 CST

在 MySQL 8 中摆脱 debian-sys-maint 而不是 root

  • 0

我们最近从 MySQL Percona 5.7 升级到 8,我们正处于mysql_native_password从caching_sha2_password.

据我了解,升级的唯一方法Plugin是使用以下查询,如果未提供密码,则将使用空密码。

mysql> ALTER USER 'user'@'host' IDENTIFIED WITH caching_sha2_password BY 'password';

我的两个问题如下。

但是之前的任何更改,debian-sys-maint在 Stretch - MySQL 8 中仍然相关吗?删除该帐户意味着什么?考虑到root多年来它已经取代了它,并且在另一个 Stretch 上进行了全新安装,它不再存在。

与升级过程中没有迁移到的mysql.session类似的情况,在caching_sha2_password不设置任何密码的情况下更改他的插件可以吗?

+-----------+---------------+-----------------------+-------------------------------------------+
| Host      | User          | plugin                | authentication_string                     |
+-----------+---------------+-----------------------+-------------------------------------------+
| localhost | mysql.session | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-----------------------+-------------------------------------------+
mysql mysql8 percona
  • 1 个回答
  • 168 Views
Martin Hope
mr.zog
Asked: 2020-02-26 17:25:18 +0800 CST

如何在 MySQL 8 中授予或更改现有用户以允许远程身份验证?

  • 0

最终目标是让最新的 Zabbix 版本在容器中运行,监控一堆交换机。

Zabbix 想要一些 MySQL(或 postgres),所以我想我会设置使用官方(Oracle)MySQL 8.0.19 MySQL FOSS 映像。我有一个正在运行的 MySQL 容器,但我不小心将我的 zabbix db 用户设置为只有本地连接权限。

mysql> SELECT user,host FROM mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
| zabbix           | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)

我似乎无法更改此用户,以便它可以从组中的其他容器 zabbix-server-mysql 和 zabbix-web-apache-mysql 连接。
也许有某种方法可以启动一个新容器,以便用户 zabbix 可以通过网络使用数据库“zabbix”。
而且我对 docker 的了解还不够,不知道我是否真的需要让容器通过网络相互通信,或者是否有一些神奇的 docker 功能,它们可以在没有 IP 网络的情况下进行通信。

请指教。

docker mysql8 zabbix
  • 1 个回答
  • 297 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve