热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MariaDB数据库常见问题

MariaDB常见问题,同样适用于MySQL废弃的常见问题老版本MariaDB服务的相关旧信息关键字viavia似乎是个关键字,但是至少在MySQL5.1文档中找不到。createtablea(idint,viaint)在MySQL5.1中执行成功,但是会出现1064错误(毫无疑问,用avia替代vi

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)

译者注:


推荐阅读
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 科研单位信息系统中的DevOps实践与优化
    本文探讨了某科研单位通过引入云原生平台实现DevOps开发和运维一体化,显著提升了项目交付效率和产品质量。详细介绍了如何在实际项目中应用DevOps理念,解决了传统开发模式下的诸多痛点。 ... [详细]
  • 本文详细探讨了不同SQL数据库管理系统(DBMS)在限制输出结果、拼接字段和日期时间处理方面的函数差异。通过具体示例,帮助读者理解并掌握如何在不同DBMS中实现相同功能。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
author-avatar
奥奥奥尼瀚
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有