MariaDB常见问题,同样适用于MySQL
废弃的常见问题
老版本MariaDB服务的相关旧信息
关键字via
via似乎是个关键字,但是至少在MySQL5.1文档中找不到。
create table a ( id int, via int )
在MySQL5.1中执行成功,但是会出现1064错误 (毫无疑问,用avia替代via就可以)
答 elenst
这个bug(https://bugs.launchpad.net/maria/+bug/1010351)被修复
http://bazaar.launchpad.net/~maria-captains/maria/5.2/revision/3158该修复将会发布在5.2,
5.3, 5.5.的下一个版本中。
回复 elenst
这个bug(https://bugs.launchpad.net/maria/+bug/1010351)被修复
http://bazaar.launchpad.net/~maria-captains/maria/5.2/revision/3158
修补程序将发布在5.2、5.3的下一个版本,发布的MariaDB5.5.25已经修复。
您好!
我一直在JIRA和开放的bug库中寻找,但并没有找到答案。约束检查将继续被支持吗?因为它能让我的数据库有更多一致性的选择,并且避免错误。
MySQL的bug在这里: http://bugs.mysql.com/bug.php?id=3464
已经被丢弃在那8年了,期望您们能与众不同
提前谢谢您们
txomon
答
不幸的是,在那个时候我们没有任何即时计划来实施CHECK约束
问:当我使用MySQL客户端输入mysql -u root ? p -h
答:客户端与服务器就建立连接之前。
如何得出这样的答案?
lovegood:~ byte$ mysql -uroot -p -hlocalhost
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or
\g.
Your MariaDB connection id is 1
Server version: 5.2.8-MariaDB Source distribution
This software comes with ABSOLUTELY NO WARRANTY. This is free
software,
and you are welcome to modify and redistribute it under the GPL v2
license
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> \q
Bye
lovegood:~ byte$ mysql.server stop
Shutting down MySQL
. SUCCESS!
lovegood:~ byte$ mysql -uroot -p -hlocalhost
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through
socket ‘/tmp/mysql.sock’ (2)
亚马逊关系数据库服务(Amazon RDS)是亚马逊云服务的一部分。目前,它支持MySQL数据库。
Listia的Gee-Hwan
Chuang曾经写了一个指南:最小停机时间移植MySQL数据库到亚马逊RDS,他推荐使用mysqldump。
两天前 我把我的MySQL升级到Maria 5.5.23,负载从0.5飙到20+ 网站慢的几乎到了停机。我跟踪了下查询,之前小于0.001秒的现在需要14-15秒。我猜测是没有走索引而是全表扫描引起的。设置ptimizer_switch=”index_condition_pushdown=off” 后就没问题了。
所以我的问题是:这是一个bug还是在某些地方需要谨慎?
谢谢 John
SELECT SQL_NO_CACHE human_id, first_name, last_name,
nationality, dob,
residence_id, stance, r, RD, residence.towncity_name AS
residence_towncity_name,
residence.country_code AS residence_country_code,
residence.region_name AS residence_region_name
FROM humans LEFT JOIN towncities AS residence ON
residence.towncity_id = residence_id WHERE division =
“Minimumweight”
AND is_boxer = “3″ AND sex = “m” ORDER BY r DESC LIMIT 275 , 25
Status Time
starting 0.000064
checking permissions 0.000011
checking permissions 0.000011
Opening tables 0.000020
System lock 0.000011
Table lock 0.000012
init 0.000037
optimizing 0.000023
statistics 0.000157
preparing 0.000035
executing 0.000011
Sorting result 0.000011
Sending data 14.437780
end 0.000027
query end 0.000014
closing tables 0.000018
freeing items 0.000034
logging slow query 0.000016
logging slow query 0.000057
cleaning up 0.000019
id select_type table type possible_keys key key_len ref rows
Extra
1 SIMPLE humans ref is_boxer,division_boxer_sex_r
division_boxer_sex_r 3 const,const,const 1258 Using index
condition; Using where
1 SIMPLE residence eq_ref PRIMARY PRIMARY 2 v3.humans.residence_id
1 Using where
答
谢谢您的数据,它对于重现问题是有帮助的,请允许我代表您在launchpad上提交bug:https://bugs.launchpad.net/maria/+bug/1000051,您可以进一步跟踪这个进展。
回复
elenst
嗨,
能够提供humans和towncities的表结构吗(SHOW CREATE TABLE输出)?
谢谢。
回复 JohnShep
CREATE TABLE `humans` (
`human_id` mediumint(6) unsigned NOT NULL AUTO_INCREMENT,
`first_name` varchar(24) CHARACTER SET latin1 COLLATE
latin1_general_ci NOT NULL DEFAULT ”,
`first_name_soundex` varchar(4) CHARACTER SET ascii COLLATE
ascii_bin NOT NULL,
`last_name` varchar(24) CHARACTER SET latin1 COLLATE
latin1_general_ci NOT NULL DEFAULT ”,
`last_name_soundex` varchar(4) CHARACTER SET ascii COLLATE
ascii_bin NOT NULL,
`birth_name` varchar(64) NOT NULL DEFAULT ”,
`company_name` varchar(30) DEFAULT NULL,
`dob` date NOT NULL DEFAULT ’0000-00-00′,
`tel` varchar(32) DEFAULT NULL,
`fax` varchar(32) DEFAULT NULL,
`email` varchar(64) DEFAULT NULL, `
aaprp` enum(‘Y’,'N’) NOT NULL DEFAULT ‘N’,
`ipro` enum(‘Y’,'N’) NOT NULL DEFAULT ‘N’,
`division` enum(”,’Heavyweight’,'Cruiserweight’,'Light
Heavyweight’,'Super Middleweight’,'Middleweight’,'Light
Middleweight’,'Welterweight’,'Light
Welterweight’,'Lightweight’,'Super
Featherweight’,'Featherweight’,'Super
Bantamweight’,'Bantamweight’,'Super Flyweight’,'Flyweight’,'Light
Flyweight’,'Minimumweight’) NOT NULL DEFAULT ”,
`ranking` double unsigned NOT NULL DEFAULT ’0′,
`nationality`
enum(”,’AF’,'AL’,'DZ’,'AS’,'AD’,'AO’,'AI’,'AQ’,'AG’,'AR’,'AM’,'AW’,'AU’,'AT’,'AZ’,'BS’,'BH’,'BD’,'BB’,'BY’,'BE’,'BZ’,'BJ’,'BM’,'BT’,'BO’,'BA’,'BW’,'BV’,'BR’,'IO’,'BN’,'BG’,'BF’,'BI’,'KH’,'CM’,'CA’,'CV’,'KY’,'CF’,'TD’,'CL’,'CN’,'HK’,'CX’,'CC’,'CO’,'KM’,'CG’,'CD’,'CK’,'CR’,'CI’,'HR’,'CU’,'CY’,'CZ’,'DK’,'DJ’,'DM’,'DO’,'TP’,'EC’,'EG’,'SV’,'GQ’,'ER’,'EE’,'ET’,'FK’,'FO’,'FJ’,'FI’,'FR’,'GF’,'PF’,'TF’,'GA’,'GM’,'GE’,'DE’,'GH’,'GI’,'GR’,'GL’,'GD’,'GP’,'GU’,'GT’,'GN’,'GW’,'GY’,'HT’,'HM’,'HN’,'HU’,'IS’,'IN’,'ID’,'IR’,'IQ’,'IE’,'IL’,'IT’,'JM’,'JP’,'JO’,'KZ’,'KE’,'KI’,'KR’,'KP’,'KW’,'KG’,'LA’,'LV’,'LB’,'LS’,'LR’,'LY’,'LI’,'LT’,'LU’,'MO’,'MK’,'MG’,'MW’,'MY’,'MV’,'ML’,'MT’,'MH’,'MQ’,'MR’,'MU’,'YT’,'MX’,'FM’,'MD’,'MC’,'MN’,'MS’,'ME’,'MA’,'MZ’,'MM’,'NA’,'NR’,'NP’,'AN’,'NL’,'NC’,'NZ’,'NI’,'NE’,'NG’,'NU’,'NF’,'MP’,'NO’,'OM’,'PK’,'PW’,'PA’,'PG’,'PY’,'PE’,'PH’,'PN’,'PL’,'PT’,'PR’,'QA’,'RE’,'RO’,'RU’,'RW’,'SH’,'KN’,'LC’,'PM’,'VC’,'WS’,'SM’,'ST’,'SA’,'SN’,'RS’,'SC’,'SL’,'SG’,'SK’,'SI’,'SB’,'SO’,'ZA’,'GS’,'ES’,'LK’,'SD’,'SR’,'SJ’,'SZ’,'SE’,'CH’,'SY’,'TW’,'TJ’,'TZ’,'TH’,'TG’,'TK’,'TL’,'TO’,'TT’,'TN’,'TR’,'TM’,'TC’,'TV’,'UG’,'UA’,'AE’,'UK’,'US’,'UM’,'UY’,'UZ’,'VU’,'VA’,'VE’,'VN’,'VG’,'VI’,'WF’,'EH’,'YE’,'YU’,'ZM’,'ZW’,'SP’)
NOT NULL,
`height` tinyint(4) unsigned DEFAULT NULL,
`reach` smallint(3) unsigned NOT NULL,
`time_stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
`human_editor` varchar(8) CHARACTER SET utf8 NOT NULL DEFAULT
‘johnshep’,
`alias` varchar(32) NOT NULL DEFAULT ”,
`residence_id` mediumint(6) unsigned NOT NULL DEFAULT ’1′,
`birthplace_id` mediumint(8) unsigned NOT NULL,
`r` double unsigned NOT NULL DEFAULT ’0′,
`RD` double unsigned NOT NULL DEFAULT ’0′,
`sex` enum(‘F’,'M’) NOT NULL DEFAULT ‘M’,
`birthplace` varchar(64) CHARACTER SET utf8 NOT NULL,
`stance` enum(”,’O',’S') NOT NULL DEFAULT ”,
`died` date NOT NULL DEFAULT ’0000-00-00′,
`license` varchar(12) NOT NULL DEFAULT ”,
`fed_id` mediumint(6) unsigned zerofill DEFAULT NULL,
`fed_state` char(2) CHARACTER SET ascii DEFAULT NULL,
`career_start` date NOT NULL DEFAULT ’0000-00-00′,
`career_end` date NOT NULL DEFAULT ’0000-00-00′,
`is_boxer` enum(’0′,’1′,’2′,’3′) NOT NULL DEFAULT ’0′,
`is_manager` enum(’0′,’1′,’3′) NOT NULL DEFAULT ’0′,
`is_promoter` enum(’0′,’1′,’3′) NOT NULL DEFAULT ’0′,
`is_matchmaker` enum(’0′,’1′,’3′) NOT NULL DEFAULT ’0′,
`is_referee` enum(’0′,’1′,’3′) NOT NULL DEFAULT ’0′,
`is_judge` enum(’0′,’1′,’3′) NOT NULL DEFAULT ’0′,
`is_supervisor` enum(’0′,’1′,’3′) NOT NULL DEFAULT ’0′,
`is_doctor` enum(’0′,’1′,’3′) NOT NULL DEFAULT ’0′,
`is_inspector` enum(’0′,’1′,’3′) NOT NULL DEFAULT ’0′,
PRIMARY KEY (`human_id`),
KEY `r` (`r`),
KEY `nationality` (`nationality`),
KEY `license` (`license`),
KEY `last_name_soundex` (`last_name_soundex`),
KEY `first_last` (`first_name`,`last_name`),
KEY `last_first` (`last_name`,`first_name`),
KEY `ranking` (`ranking`),
KEY `is_supervisor` (`is_supervisor`),
KEY `is_boxer` (`is_boxer`),
KEY `is_doctor` (`is_doctor`),
KEY `is_judge` (`is_judge`),
KEY `full_name_boxer`
(`first_name_soundex`,`last_name_soundex`,`is_boxer`),
KEY `division_boxer_sex_r` (`division`,`is_boxer`,`sex`,`r`),
KEY `is_manager` (`is_manager`),
KEY `towncity_id` (`residence_id`),
KEY `fed_id` (`fed_id`),
KEY `birthplace_id` (`birthplace_id`),
FULLTEXT KEY `first_name_fulltext` (`first_name`),
FULLTEXT KEY `last_name_fulltext` (`last_name`)
) ENGINE=MyISAM AUTO_INCREMENT=603120 DEFAULT CHARSET=latin1
PACK_KEYS=1
CREATE TABLE `towncities` (
`towncity_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`country_code`
enum(”,’AF’,'AL’,'DZ’,'AS’,'AD’,'AO’,'AI’,'AQ’,'AG’,'AR’,'AM’,'AW’,'AU’,'AT’,'AZ’,'BS’,'BH’,'BD’,'BB’,'BY’,'BE’,'BZ’,'BJ’,'BM’,'BT’,'BO’,'BA’,'BW’,'BV’,'BR’,'IO’,'BN’,'BG’,'BF’,'BI’,'KH’,'CM’,'CA’,'CV’,'KY’,'CF’,'TD’,'CL’,'CN’,'HK’,'CX’,'CC’,'CO’,'KM’,'CG’,'CD’,'CK’,'CR’,'CI’,'HR’,'CU’,'CY’,'CZ’,'DK’,'DJ’,'DM’,'DO’,'TP’,'EC’,'EG’,'SV’,'GQ’,'ER’,'EE’,'EN’,'ET’,'FK’,'FO’,'FJ’,'FI’,'FR’,'GF’,'PF’,'TF’,'GA’,'GM’,'GE’,'DE’,'GH’,'GI’,'GR’,'GL’,'GD’,'GP’,'GU’,'GT’,'GN’,'GW’,'GY’,'HT’,'HM’,'HN’,'HU’,'IS’,'IN’,'ID’,'IR’,'IQ’,'IE’,'IL’,'IT’,'JM’,'JP’,'JO’,'KZ’,'KE’,'KI’,'KR’,'KP’,'KW’,'KG’,'LA’,'LV’,'LB’,'LS’,'LR’,'LY’,'LI’,'LT’,'LU’,'MO’,'MK’,'MG’,'MW’,'MY’,'MV’,'ML’,'MT’,'MH’,'MQ’,'MR’,'MU’,'YT’,'MX’,'FM’,'MD’,'MC’,'MN’,'ME’,'MS’,'MA’,'MZ’,'MM’,'NA’,'NR’,'NP’,'AN’,'NL’,'NC’,'NZ’,'NI’,'ND’,'NE’,'NG’,'NU’,'NF’,'MP’,'NO’,'OM’,'PK’,'PW’,'PA’,'PG’,'PY’,'PE’,'PH’,'PN’,'PL’,'PT’,'PR’,'QA’,'RE’,'RO’,'RU’,'RW’,'SH’,'KN’,'LC’,'PM’,'VC’,'WS’,'HI’,'SM’,'ST’,'CS’,'SA’,'SN’,'RS’,'SC’,'SL’,'SG’,'SK’,'SI’,'SB’,'SO’,'ZA’,'GS’,'ES’,'LK’,'SD’,'SR’,'SJ’,'SZ’,'SE’,'CH’,'SY’,'TW’,'TJ’,'TZ’,'TH’,'TG’,'TK’,'TO’,'TT’,'TN’,'TR’,'TM’,'TC’,'TV’,'UG’,'UA’,'AE’,'UK’,'US’,'UM’,'UY’,'UZ’,'VU’,'VA’,'VE’,'VN’,'VG’,'VI’,'WA’,'WF’,'EH’,'YE’,'YU’,'ZM’,'ZW’,'SP’,'PS’,'TL’)
CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
`towncity_name` varchar(64) NOT NULL,
`region_name` varchar(3) NOT NULL,
`latitude` float NOT NULL DEFAULT ’0′,
`longitude` float NOT NULL DEFAULT ’0′,
PRIMARY KEY (`towncity_id`),
KEY `country_city` (`country_code`,`region_name`)
) ENGINE=MyISAM AUTO_INCREMENT=41464 DEFAULT CHARSET=utf8
回复
elenst
谢谢。
我试着用您的表结构并填充数据去重现这个问题,并且我得到了同样的执行计划。单数查询只用了很少的时间(0.01秒
600K表`humans` 和40K表 `towncities`的记录)
如果在您的数据上依然可以重现,能否上传一份您的数据到我们的FTP服务器(ftp://ftp.askmonty.org/)?如果可以的话,一并上传您的cnf/ini文件。
谢谢。
回复
JohnShep
注意条件是LIMIT 275,25 只运行查询并没有返回数据
回复
JohnShep
您好Elena,文件上传到私有目录下的elena.tar.gz
John
回复
elenst
你好John,
感谢您的数据,它帮助重现该问题。我代表您提出一个bug在:https://bugs.launchpad.net/maria/+bug/1000051,您可以进一步跟踪这个进展。
回复
JohnShep
谢谢你John
回复
psergey
FYI:这个问题已经修复,修补程序将包含在未来的5.3版本,在5.5系列发布后的下一个(5.5.23已经构建,所以没能修复到5.5.23)
回复
psergey
修复在5.5.24之后版本
嗨 大家好,
运行Ubuntu10.04(meerkat)。
我的是很新的Unix,并且,有一件事我不大有把握。
我创建一个用户mysql,并给了他一个主目录/home/mysql
现在,我已经配置了一个环境变量当我登录的时候,我想把这个环境变量带到mysql中,当切换到mysql用户时候。
切换后什么也没有,我在google上发现su -l mysql。这样就可以
_sort of_* ? my prompt is a mess, i.e. \[\e]0;\u@\h: \w\a\]\u@\h:\w$,但是我没有这些命令历史。
我似乎是调用/bin/sh,而不是/bin/bash,谁能告诉我怎么样才能在切换到mysql用户时调用bash
shell。
先谢谢了。
Ellen
答
dbart
编辑/etc/passwd文件 添加你mysql的环境变量,并且改变他们的shell路径从/bin/sh
到/bin/bash.
然后拷贝你的 .bashrc文件到mysql用户主目录中
做完之后当你切换到mysql用户就可能得到你期望的内容了
我要解决的问题很简单:我想通过索引快速读取数千行数据(假如快速随机读MyISAM)。
在MySQL早期版本中(如5.1,我使用的),有一个选项myisam_use_mmap能很大(2倍以上)的提升从myisam的随机读。
现在的问题是,如果我创建一个空表,然后执行大量(70万行)插入(使用INSERT INTO… SELECT * FROM …或LOAD DATA LOCAL INFILE)但它并没有mmap插入的行(它应该remmap每1000行插入)
最坏的结果是:即使这个索引设置为主键 InnoDB的性能也会比它好。
表的任何改动,例如OPTIMIZE TABLE都会使MySQL/MariaDB正确的remmap表。
答
sergii
您说得对。
我在本手册中找不到,但我在源码中看到。
它似乎是个bug。我建议你在http://bugs.mysql.com提交bug(这在文档中没有公开,是文档的第二个bug。)
我敢肯定,这也是mariaDB的bug,但我们仍然期望bugs被在上游修复。如果在合理时间内Oracle没有给出回应,可以提交bug到https://bugs.launchpad.net/maria/(并且引用MySQL的bug号)
回复 sergii
为什么你认为MyISAM应该remap成每1000条的插入?
回复 youROCK
比如,可以在这里找到:
http://www.mysqlperformanceblog.com/2006/05/26/myisam-mmap-feature-51/
回复 youROCK
对不起,我的意思不是“mmap 它应该插入的行数”而是“它没有mmap应该插入的行数”
MariaDB的所有版本基于MySQL5.1或以上,所以table_cache 选项应该被丢弃,新的选项是table_open_cache,这里也记录了mysqld Options (full list)。
更多阅读可以参照MySQL手册:How MySQL Opens and Closes Tables.
用法举例:
MariaDB [(none)]> show global status like
‘opened_tables’;
+———————-+———-+
| Variable_name | Value |
+———————-+———-+
| Opened_tables | 354858 |
+———————+————+
1 row in set (0.00 sec)
MariaDB [(none)]> select @@table_open_cache;
+——————————-+
| @@table_open_cache |
+——————————-+
|
400
|
+——————————-+
1 row in set (0.00 sec)
译者注: