标签: percona

MariaDB vs Drizzle vs Percona Server vs MySQL

我很长一段时间以来一直是MySQL的用户.我想开始使用最流行的叉子之间的所有不同的变化.问题是我找不到它们之间的任何好的比较,我最终只会尝试所有这些.我关心的是生产,因为我不会在生产中试验所有这些叉子.

你有没有在生产中运行任何MySQL分支?

有什么好处?有什么缺点?

mysql mariadb percona drizzle

9
推荐指数
1
解决办法
5452
查看次数

MySQL致命错误:无法打开和锁定权限表:文件格式"用户"不正确

MySQL(Percona 5.6)无法启动.

这个错误发生在我身上好几次.每次,我都必须删除MySQL数据目录并重新安装MySQL.

还有另一种修复MySQL的方法吗?(特别是没有吹走数据的那个?)

/var/log/mysql/error.log

150214 16:36:39 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2015-02-14 16:36:40 0 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
2015-02-14 16:36:40 0 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
2015-02-14 16:36:40 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-02-14 …
Run Code Online (Sandbox Code Playgroud)

mysql percona

9
推荐指数
2
解决办法
2万
查看次数

安装了Mysql UDF(但不存在?)

这是一个疯狂的:

mysql> CREATE FUNCTION PREG_REPLACE RETURNS STRING SONAME 'lib_mysqludf_preg.so';
ERROR 1125 (HY000): Function 'PREG_REPLACE' already exists
mysql> DROP FUNCTION preg_replace;
ERROR 1305 (42000): FUNCTION (UDF) preg_replace does not exist
Run Code Online (Sandbox Code Playgroud)

嗯....这实际上很有趣......

真正的问题是在查询中不再识别该函数.尝试重新编译,重新安装,重新启动等 - 没有快乐.UDF来自这里:http: //www.mysqludf.org/lib_mysqludf_preg/index.php

从mysql切换到percona 5.5之后.UDF在mysql中运行良好.

问题是: 从mysql升级到percona 5.5后,如何让PREG UDF工作?

答案: 以下是基于Baron的提示的答案:

从mysql error.log:

120319  9:32:06 Percona XtraDB (http://www.percona.com) 1.1.8-rel24.1 started; log sequence number 1547303885
120319  9:32:06 [ERROR] Can't open shared library 'lib_mysqludf_preg.so' (errno: 0 /usr/lib/plugin/lib_mysqludf_preg.so: cannot open shared object file: No such file or directory)
Run Code Online (Sandbox Code Playgroud)

Percona似乎与我的标准MySql安装位于不同的目录中.

MySql查找/ …

mysql user-defined-functions percona

8
推荐指数
1
解决办法
1759
查看次数

开始交易或开始工作

我不知道使用Start Transaction OR Begin Work有什么好处,有什么区别.

mysql percona

8
推荐指数
1
解决办法
6597
查看次数

MySQL 5.6死锁用于锁定相同的行两次?

我看到MySQL 5.6的死锁,因为似乎试图锁定同一行/两次.

从下面的代码段中,id =(11,12,13,14,15)的行已经锁定.当另一个事务试图获取对这些的锁定时,MySQL无法检测到死锁的事务.

我的阅读是否正确?如果是这样,MySQL 5.6中有什么可以克服这个问题吗?FWIW,5.5中的相同代码工作得很好(几百次迭代).

------------------------
LATEST DETECTED DEADLOCK
------------------------
2013-07-25 11:46:05 13a515000
*** (1) TRANSACTION:
TRANSACTION 2333130, ACTIVE 0 sec fetching rows
mysql tables in use 1, locked 1
LOCK WAIT 31 lock struct(s), heap size 6960, 6 row lock(s)
MySQL thread id 2944, OS thread handle 0x13ae88000, query id 184533 localhost 127.0.0.1 root Sending data
SELECT id FROM table_meta WHERE id IN (11, 12, 13, 14, 15) FOR UPDATE
*** (1) WAITING FOR THIS LOCK TO BE …

mysql deadlock database-deadlocks percona

8
推荐指数
1
解决办法
1623
查看次数

使用innobackupex远程备份

我正在尝试使用innobackupex从远程计算机进行备份.

./innobackupex --host=<mysql_server> --user=<username> <backup_dir>.
Run Code Online (Sandbox Code Playgroud)

它失败了,因为它无法在服务器中找到目录.

 (Errcode: 2 - No such file or directory)
Run Code Online (Sandbox Code Playgroud)

我假设它正在本地机器中搜索目录.请告诉我们如何远程运行备份?

mysql percona innobackupex

8
推荐指数
1
解决办法
3071
查看次数

如何使用Percona的`pt-online-schema-change`工具进行`CREATE INDEX`?

我如何CREATE INDEX使用Percona的pt-online-schema-change工具?我想做的事情如下:

CREATE UNIQUE INDEX idx_name ON table_name (col_1, col_2, ...) USING BTREE

根据文档,我必须使用--alter参数,然后使用适当的ALTER TABLE语句,减去前面的ALTER TABLE table_name短语.但是,CREATE INDEX不是从开头ALTER TABLE,并且表名嵌入在CREATE INDEX语句中.那么我该如何前进呢?

mysql sql percona

7
推荐指数
2
解决办法
6097
查看次数

管道进程5(迭代)导致错误:sprintf中的冗余参数位于/ usr/bin/pt-query-digest行2556

我使用percona-toolkit来分析mysql-slow-query(logs).所以命令非常基本:

pt-query-digest slowquery.log

现在结果(错误)是:

18.2s用户时间,100ms系统时间,35.61M rss,105.19M vsz

当前日期:2016年7月7日星期四17:18:43

主机名:Jammer

文件:slowquery.log

管道进程5(迭代)导致错误:sprintf中的冗余参数位于/ usr/bin/pt-query-digest行2556.将重试管道进程4(迭代)2次.

.. ..(相同的结果打印两次)..

管道导致错误:管道进程5(迭代)导致错误:sprintf中的冗余参数位于/ usr/bin/pt-query-digest第2556行.由于进程4(迭代)导致过多错误,因此终止管道.

现在有关环境的细节,我使用的是Ubuntu 16.04,MariaDB 10.1.14,Percona-Toolkit 2.2.16

我在这里发现了bug报告,但它就像一个解决方法,并没有真正解决错误.即使在应用补丁之后,命令结果看起来也不够令人满意.


我在ubuntu 16.04 MySql上面临同样的问题.我的慢查询日志的内容如下.

/ usr/sbin/mysqld,版本:5.7.16-0ubuntu0.16.04.1-log((Ubuntu)).开始于:Tcp端口:3306 Unix套接字:/var/run/mysqld/mysqld.sock时间Id命令参数/ usr/sbin/mysqld,版本:5.7.16-0ubuntu0.16.04.1-log((Ubuntu)).开始于:Tcp端口:3306 Unix套接字:/var/run/mysqld/mysqld.sock时间Id命令参数时间:2016-12-08T05:13:55.140764Z User @ Host:root [root] @ localhost [] Id: 20 Query_time:0.003770 Lock_time:0.000200 Rows_sent:1 Rows_examined:2 SET timestamp = 1481174035; SELECT COUNT(*)FROM INFORMATION_SCHEMA.TRIGGERS;

错误是一样的:

管道导致错误:管道进程5(迭代)导致错误:sprintf中的冗余参数位于/ usr/bin/pt-query-digest第2556行.

Ubuntu 16.04 MySql Ver 14.14 Distrib 5.7.16 pt-query-digest 2.2.16

toolkit mariadb percona ubuntu-16.04

7
推荐指数
1
解决办法
1345
查看次数

解决来自const的无效转换

我正在我的Raspberry Pi上编译Percona(MySQL变体),它有一个ARM处理器.

我在报告的编译过程中遇到了一个问题,但是没有人愿意修复,因为ARM是一个不受支持的平台.

https://bugs.launchpad.net/percona-server/+bug/1002848

我已经设法解决这个问题并成功编译,但我对c ++的了解有些缺乏,而且我不完全理解我是否真的破坏了某些东西.

我已经阅读了很多关于SO的const char*到char*问题的无效转换,这是我对此解决方法的想法.

错误如下:

error: invalid conversion from 'const pthread_mutex_t*' to 'pthread_mutex_t*'
Run Code Online (Sandbox Code Playgroud)

(它实际上不在pthread_mutex_t我的平台上,但问题是相同的 - 实际类型丢失到无限深渊,即回滚缓冲区)

违规代码是:

  uint32 count(uint index) const
  {
    my_atomic_rwlock_rdlock(&time_collector_lock);
Run Code Online (Sandbox Code Playgroud)

我改为:

  uint32 count(uint index) const
  {
    my_atomic_rwlock_t dummy = time_collector_lock;
    my_atomic_rwlock_rdlock(&dummy);
Run Code Online (Sandbox Code Playgroud)

time_collector_lock定义为:

private:
  my_atomic_rwlock_t time_collector_lock;
Run Code Online (Sandbox Code Playgroud)

由于这应该是一个互斥体,我有一种感觉,我可能已经使这个非线程安全.或者这样可以吗?

有更好的解决方案吗?

c++ mysql arm percona raspberry-pi

6
推荐指数
1
解决办法
1274
查看次数

优化 my.cnf 配置,适用于 1 GB 内存、100 多个在线用户

我的mysql老是崩溃。我认为这是因为 my.cnf 配置不当。这是我的 my.cnf 当前配置。请帮我优化一下。我使用的是 1GB 内存和 30GB 固态硬盘。我想优化分配的内存和内存。

我通过 percona 创建了这个配置。

[mysql]

# CLIENT #
port                           = 3306
socket                         = /var/lib/mysql/mysql.sock

[mysqld]

# GENERAL #
user                           = mysql
default-storage-engine         = InnoDB
socket                         = /var/lib/mysql/mysql.sock
pid-file                       = /var/lib/mysql/mysql.pid
performance_schema             = off

# 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

# DATA STORAGE #
datadir                        = /var/lib/mysql/

# BINARY LOGGING # …
Run Code Online (Sandbox Code Playgroud)

mysql my.cnf percona

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