小编Rol*_*DBA的帖子

如何在 MySQL 上切换主从,反之亦然?

我有两个 MySQL 实例,一个 master 和一个 slave。

如何在避免停机的同时切换它们以使从站成为主站,反之亦然?

mysql replication failover

3
推荐指数
1
解决办法
3990
查看次数

错误 1046 Mariadb:未选择数据库

GRANT ALL ON my-database.* TO my-user@10.0.0.1 IDENTIFIED BY 'password';
ERROR 1046 (3D000): No database selected
Run Code Online (Sandbox Code Playgroud)

好的,我创建了一个名称上带有“-”的数据库(对用户做了同样的事情)……然后当我尝试在其上设置授权时,数据库将无法工作。

如果我使用基础错误是不同的

MariaDB [(none)]> use my-base
Database changed
MariaDB [my-base]> GRANT ALL ON 'my-base'.* TO 'my-user'@'10.0.0.1' IDENTIFIED BY 'password';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''my-base'.* TO 'my-user'@'10.0.0.1' IDENTIFIED BY 'password'' at line 1
MariaDB [my-base]> 
Run Code Online (Sandbox Code Playgroud)

mariadb

3
推荐指数
1
解决办法
9832
查看次数

MySQL / Percona Server 插入性能很差

我正在从 Ubuntu 服务器安装运行 Percona-Server 实例。我正在使用一个需要访问这个数据库的应用程序,它的性能非常差。一旦建立了数据库,应用程序就会进入(安装时)并创建模式。它将所有内容默认为 MyISAM,但是我已将表引擎转换回 InnoDB。我遇到的问题是插入性能非常差。这个应用程序的写入量非常大,似乎它一次将每一行 1 写入磁盘,而不使用任何类型的缓冲区,但是我不确定如何检查或验证这一点。即使从其中一个表中选择(*)也需要 2.4 秒,并且只有 163,000 行。我有点不知所措,我还能做什么。

服务器有 8GB 的​​内存,在发生这种情况时 CPU 几乎完全空闲。

我的.cnf:

[mysql]

# CLIENT #
port                           = 3306
socket                         = /var/run/mysqld/mysqld.sock

[mysqld]

# GENERAL #
user                           = mysql
default_storage_engine         = InnoDB
socket                         = /var/run/mysqld/mysqld.sock
pid_file                       = /var/run/mysqld/mysqld.pid

# MyISAM #
key_buffer_size                = 32M
myisam_recover                 = FORCE,BACKUP

# SAFETY #
max_allowed_packet             = 16M
max_connect_errors             = 1000000
skip_name_resolve
sql_mode                       = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
sysdate_is_now                 = 1
innodb                         = FORCE
innodb_strict_mode             = 1

# DATA STORAGE # …
Run Code Online (Sandbox Code Playgroud)

mysql innodb performance percona-server xtradb

3
推荐指数
1
解决办法
8901
查看次数

MySQL 5.6 失败

我在下面RPM_UPGRADE_HISTORY/var/lib/mysql

MySQL RPM upgrade to version 5.6.10-1.linux_glibc2.5
'pre' step running at Fri Mar 15 15:41:26 EDT 2013

ERR file(s):
-rw-r----- 1 mysql root 1725 2013-03-15 13:45 /var/lib/mysql/mysql.err
Run Code Online (Sandbox Code Playgroud)

我检查了错误文件以找到以下信息:

2013-03-15 15:43:22 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2013-03-15 15:43:22 11993 [Note] Plugin 'FEDERATED' is disabled.
2013-03-15 15:43:22 11993 [Note] InnoDB: The InnoDB memory heap is disabled
2013-03-15 15:43:22 11993 [Note] InnoDB: Mutexes and rw_locks use …
Run Code Online (Sandbox Code Playgroud)

mysql mysql-5.6

3
推荐指数
1
解决办法
3万
查看次数

我应该在 mysql 的从属设备中禁用触发器、时间戳吗?

我们正在使用 MySQL。我们有一个 master,最终会有 2 个 slave。当某些表中的数据发生变化时,数据库中有触发器会执行。我想知道是否禁用奴隶中的触发器。在我看来,我应该。似乎应该在从站中禁用时间戳之类的东西,否则从站上的数据将与主站上的数据不同。

我不是 DBA,我是开发人员。我们公司没有 DBA,所以运营管理员和我正在解决这个问题。我们已经设置并复制了主站和一个从站,我们在从站上遇到了重复输入错误。

我们正在考虑不要因为重复的复制错误而停止复制,如这篇文章所示:http : //www.ducea.com/2008/02/13/mysql-skip-duplicate-replication-errors/。我们不知道这是否是个好主意。我确实觉得这掩盖了问题,但我们都不知道如何解决问题。

如果我们应该禁用触发器和/或设置从属设备不插入时间戳,我们该怎么做?还是将 db 建立为从站会自动执行这些操作?

mysql replication trigger timestamp mysql-5.5

3
推荐指数
1
解决办法
3837
查看次数

从多个字段与其他表中的选择子查询匹配的表中删除

我想删除表中的一个条目,其中多个字段与另一个选择子查询的结果相匹配,该查询从另一个表中获取数据。

这是我到目前为止所拥有的,尽管它不起作用:

DELETE FROM table1
WHERE table1.id IN
   (SELECT id
   FROM table1 a JOIN table2 b
   ON a.field1 = b.field1
   AND a.field2 = b.field2
   AND a.field3 = b.field3
   AND b.id = ?
   )
Run Code Online (Sandbox Code Playgroud)

mysql delete subquery select

3
推荐指数
1
解决办法
3万
查看次数

bulk_insert_buffer_size 和 InnoDB

我在此页面上阅读了以下内容

http://dev.mysql.com/doc/mysql/en/server-system-variables.html

bulk_insert_buffer_size MyISAM 使用特殊的树状缓存来使 INSERT ... SELECT、INSERT ... VALUES (...)、(...)、... 和 LOAD DATA INFILE 的批量插入更快。此变量以每个线程的字节数限制缓存树的大小。将其设置为 0 将禁用此优化。注意:此缓存仅在向非空表添加数据时使用。默认值为 8MB。这个变量是在 MySQL 4.0.3 中添加的。这个变量以前被命名为 myisam_bulk_insert_tree_size。

我认为这意味着 bulk_insert_buffer_size 对 InnoDB 表没有影响,只对 MyISAM 表有影响。这样对吗?

mysql innodb myisam

3
推荐指数
1
解决办法
1万
查看次数

你能从 ACID 中删除一致性吗?

CJDate 在他的“数据库系统简介”一书中写了一个关于 ACID 原则的章节,称为“丢弃 ACID”。在这一章中,他称正确性(一致性)“本质上毫无意义”,而其他原则至多是“必要条件”。

这本书是 2004 年的,我在互联网上的任何地方都将 ACID 原则视为 RDBMS 应用程序编程的指导方针。这是否意味着 Date 对 ACID 的想法不被接受?或者从理论的角度来看,ACID 不像在阅读有关数据库编程的互联网文档时那样强制性?

我希望我的问题有意义并且在正确的论坛中。

acid

3
推荐指数
1
解决办法
866
查看次数

Innodb 缓冲池和多个连接

假设我们有 10 亿条记录,并希望通过 post_type将它们存储在OneThree表中。

post_id   -> primary key  
post_type -> ( page, group, user )
user_id   -> index
date      -> index
Run Code Online (Sandbox Code Playgroud)

注意:我们有足够的 RAM 来存储缓冲池中的所有数据。( 大约 40 GB )
在我们的情况下,Reading数据库太多了

问题是:WHILE整个数据为ON缓冲池(RAM),有什么不同in performance3分离表和Join他们,或有1大表,并Select从它没有任何Join

在某些情况下,我们最好为其他类型的轻型查询使用单独的表。
但我们害怕JOINS

mysql innodb performance join

3
推荐指数
1
解决办法
2398
查看次数

MySQL:6 小时内 30GB 的二进制日志

我有一个带有钨复制器的 mysql 主/主设置。我的服务器空间不足,在 6 小时内占用了大约 30G。我不知道如何处理这个。如果有人能帮我解决这个问题,那就太好了。

谢谢,斯瓦鲁普。

mysql binlog tungsten-replicator multi-master

3
推荐指数
1
解决办法
2392
查看次数