热门标签 | 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)

译者注:


推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 如何在PHPcms网站中添加广告
    本文详细介绍了在PHPcms网站后台添加广告的方法,涵盖多种常见的广告形式,如百度广告和Google广告,并提供了相关设置的步骤。同时,文章还探讨了优化网站流量的SEO策略。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
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社区 版权所有