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
    • 最新
    • 标签
主页 / user-3119

Dimitre Radoulov's questions

Martin Hope
Dimitre Radoulov
Asked: 2012-11-29 07:07:20 +0800 CST

mysqld 在打开实例之前是否等待初始化脚本代码完成?

  • 2

我正在尝试在MySQL启动时自动执行应用程序代码。init-file服务器选项似乎很方便,我需要知道 mysqld在使实例和数据库可用之前是否等待init-file中的所有代码完成。

我试图建立一个快速测试用例,它似乎不像我预期的那样工作:

创建一个简单的测试表和一个只插入记录的过程

create table init_test_tab (x char);
delimiter $$
drop procedure init_test $$
create procedure init_test(p char(1))
begin
  do sleep(300);
  insert into init_test_tab VALUES(p);
END
$$

从初始化文件调用该过程:

$ cat /var/lib/mysql/mysql-init.sql
call xxxx.init_test('y');
$ grep init /etc/mysql/my.cnf
init-file = /var/lib/mysql/mysql-init.sql

重新启动服务器以验证时序并检查测试表的内容:

会话 1 - 表为空:

[Wed Nov 28 15:54:26 2012]> select * from init_test_tab;
Empty set (0.00 sec)

会话 2 - 重新启动 mysqld:

# time service mysql restart
mysql stop/waiting
mysql start/running, process 3031

real    0m10.116s
user    0m0.024s
sys     0m0.068s

请注意,重新启动只需 10 秒。

会话 1 - 连接丢失(如预期):

[Wed Nov 28 15:54:33 2012]> select * from init_test_tab;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR:
Can't connect to the server

[Wed Nov 28 15:54:45 2012]> select * from init_test_tab;
No connection. Trying to reconnect...
Connection id:    2
Current database: xxxxx

+------+
| x    |
+------+
| y    |
+------+
1 row in set (0.01 sec)

[Wed Nov 28 15:54:50 2012]>

请注意,该过程会自动调用(如预期的那样),因为表不再为空。但是插入应该只在 sleep(300) 调用之后执行,而不是立即执行(或者,准确地说,只是在几秒钟内)。

所以现在我试图理解:

  1. 如果我在 init 文件中放置一个过程调用(或任何应用程序代码),它是否会按预期执行(在我的测试用例中,睡眠调用似乎被跳过了)?
  2. 我可以对执行的内容进行某种记录(除了修改代码本身)吗?
  3. 如果init-file中的代码需要时间,是否会影响MySQL实例在重启后的可用性?

谢谢迪米特

mysql mysql-5.5
  • 1 个回答
  • 2175 Views
Martin Hope
Dimitre Radoulov
Asked: 2011-11-14 11:44:00 +0800 CST

我们什么时候应该为客户端设置默认字符集?

  • 2

我试图了解何时应该为客户端设置/强制默认字符集。

该文件指出:

您可以强制客户端程序使用特定字符集,如下所示:

[客户端] default-character-set=charset_name

这通常是不必要的。但是,当 character_set_system 与 character_set_server 或 character_set_client 不同时,并且您手动输入字符(作为数据库对象标识符、列值或两者兼而有之)时,这些字符可能在客户端的输出中显示不正确,或者输出本身的格式可能不正确。在这种情况下,使用 --default-character-set=system_character_set 启动 mysql 客户端(即设置客户端字符集以匹配系统字符集)应该可以解决问题。

让我们假设 charater_set_system 和 character_set_server 是不同的。

我的第一个问题:

我想当我导入由 mysqldump 生成的导出文件时,变量 default-character-set 没有效果,因为集合名称总是在导出文件的开头发出。我是对的还是可能存在极端情况?

第二个问题:

手动运行 sql 脚本呢?文档说明某些字符可能显示不正确。我如何确保正确导入数据(运行应用程序测试的一部分,即通过反复试验)?

mysql backup
  • 1 个回答
  • 10215 Views
Martin Hope
Dimitre Radoulov
Asked: 2011-10-01 06:00:03 +0800 CST

在同一主机上运行多个实例

  • 6

我需要为我们的一位客户在同一主机上设置多个 MySQL 实例。据我所知,我可以选择:

  1. mysqld_multi
  2. MySQL 沙盒

这应该是企业级生产环境的长期解决方案。

我们需要将当前使用具有主动/被动节点的 RedHat 集群的现有环境迁移到没有集群软件的新 VM(将使用 VMware HA 解决方案,我知道它会有所不同)。

有 3 个独立的 MySQL 实例/集群资源。我不知道这种分离的最初动机,但我想客户希望能够自主地停止/启动(补丁、升级......)不同的资源。

任何意见和建议 - 优点,缺点和现实世界的经验都非常欢迎!

mysql
  • 2 个回答
  • 8053 Views
Martin Hope
Dimitre Radoulov
Asked: 2011-10-01 02:46:36 +0800 CST

使用 MyISAM 和 InnoDB 引擎的数据库的一致逻辑备份

  • 10

我对同时使用 MyISAM 和 InnoDB 的 MySQL 数据库的逻辑备份有疑问。

该mysqldump实用程序支持以下两个选项:

  • --single-transaction - 通过在单个事务中转储所有表来创建一致的快照。仅适用于存储在支持多版本控制的存储引擎中的表(目前只有 InnoDB 支持)[...] 选项自动关闭 --lock-tables。

  • -x, --lock-all-tables - 锁定所有数据库中的所有表。这是通过在整个转储期间获取全局读锁来实现的。自动关闭 --single-transaction 和 --lock-tables。

    • 对于 InnoDB,我们需要--single-transaction

    • 对于 MyISAM,我们需要 - lock-tables 或 lock-all-tables(以防我们需要跨数据库一致性)。

那么,应该如何备份混合数据库(同时使用 MyISAM 和 InnoDB 引擎的数据库)?

编辑:

为了澄清,这个问题可以重新表述如下:

lock-[all-]tables 选项是否保证 InnoDB 表的一致备份?

mysql innodb
  • 2 个回答
  • 9625 Views

Sidebar

Stats

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

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve