Questions tagged «mysql»

MySQL的所有版本(不是Microsoft SQL Server)。如果与此问题相关,还请添加特定于版本的标记,例如mysql-5.7。


1
在MySQL中如何实现INFORMATION_SCHEMA?
从理论上讲,INFORMATION_SCHEMA是SQL标准中指定的一组视图,允许用户检查系统的元数据。如何在MySQL中实现? 连接到全新安装时,我会看到两个数据库:mysql和information_schema。在数据库SHOW CREATE TABLE上使用语句后information_schema,看起来它并未实现为一组视图,而是使用了基本表。这个假设正确吗?还是有其他对用户隐藏的系统表?

5
在MySQL中将单列与多个值匹配而不使用自联接表
我们有一个表,用于存储问题的答案。我们需要能够找到对特定问题有特定答案的用户。因此,如果我们的表包含以下数据: user_id question_id answer_value Sally 1 Pooch Sally 2 Peach John 1 Pooch John 2 Duke 并且我们想找到对问题1回答“ Pooch”而对问题2回答“ Peach”的用户,则以下SQL(显然)不会起作用: select user_id from answers where question_id=1 and answer_value = 'Pooch' and question_id=2 and answer_value='Peach' 我的第一个想法是针对需要的每个答案自行加入表格: select a.user_id from answers a, answers b where a.user_id = b.user_id and a.question_id=1 and a.answer_value = …

3
当表中的字段接近最大有符号或无符号32位整数时该怎么办?
在任何以唯一的自动增量字段形式保存用户记录的给定数据库中(为方便起见,示例中为用户间消息)...当时间到了并且接近最大有符号数或无符号数时该怎么办当前数据类型?(一个32位INT)?我猜数据库服务器在尝试将(2∧32)-1数字分配给下一个条目时将溢出,因此,如何避免这种情况发生(出于问题的原因,不更改数据类型)和继续添加记录?你会怎么做? 为什么我要使用INT,而不要使用VARCHARS? 自问了这个假设问题已经好几天了,我想知道专业人员会做什么。
14 mysql 



1
MySQL GRANT PROXY-是什么意思?
我跑: show grants for root@localhost; 我看到 GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION 从mysql文档: https://dev.mysql.com/doc/refman/5.5/zh-CN/proxy-users.html 这使外部用户可以成为第二个用户的代理。即具有第二个用户的特权。换句话说,外部用户是“代理用户”(可以模仿或成为另一个用户的用户),第二个用户是“代理用户”(其身份可以由代理用户使用的用户) 。 但是我不明白他们的意思。我是从另一个下班的工人那里得到的系统,他想确保一切都安全,甚至不知道是否需要这项补助。但是,如果它没有造成任何安全问题,我可以保留。 有人可以用更简单的方式解释吗? 更新: 如何以其他用户身份连接?我尝试使用用户名密码的各种组合,但无法使其连接。 例如,我使用root用户,但使用了另一个用户的密码,该密码不起作用。尝试了另一个用户和root密码,也无法正常工作。 更新: 还是这意味着root用户可以作为其他用户连接?至少例如,如何这样做?
14 mysql  proxy 

4
Ansible:如何通过重新配置服务器来更改MySQL服务器根密码
我已为服务器配置了Ansible剧本。我使用过root / bedrock-Ansible剧本。 任务之一是与mysql root用户密码一起设置mysql服务器。 现在,我急需更改此密码。我采取的步骤: 我更新了Ansible角色的变量 我执行了命令ansible-playbook -i hosts/staging server.yml以重新配置服务器 所有任务均按预期执行(无更改),但是脚本失败, [mariadb | Set root user password]并显示以下消息: msg: unable to connect to database, check login_user and login_password are correct or ~/.my.cnf has the credentials 我的猜测是,一旦设置了MySQL根密码,重新配置服务器就无法更改该密码。 是否可以通过用Ansible重新配置服务器来更改MySQL根密码?我有什么选择?
14 mysql 

1
最佳的mysqldump设置是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 经过一番搜索后,我得到了以下设置: mysqldump\ --host=localhost\ --port=3306\ --databases ****\ --user=****\ --password=****\ --default-character-set=utf8\ --add-drop-database\ --add-drop-table\ --add-locks\ --complete-insert\ --extended-insert\ --lock-all-tables\ --create-options\ --disable-keys\ --quick\ --order-by-primary\ --set-charset\ --tz-utc\ > dump/test.sql 到目前为止,还不错,但是我对参数以及执行有一些疑问。 关于我的第一个问题,我只想确保所有这些都是必需的,并且一起使用时不会引起任何冲突。最终,我想制作一个非常健壮和一致的转储文件,其中包含数百万条记录,用于创建表,数据库和插入数据。好处是,使数据库暂时不可用对我来说不是问题。我唯一的目标是制作一个健壮且一致的转储文件。 关于我的第二场音乐会,我想知道如何在命令出错时得到通知,如果出错,则抛出异常。 有任何想法吗? 编辑 这是我根据RolandoMySQLDBA的反馈更新的mysqldump命令。 mysqldump\ --host=localhost\ --port=3306\ --databases ****\ --user=****\ --password=****\ --default-character-set=utf8\ --opt\ --single-transaction\ --routines\ --triggers\ --events\ --add-drop-database\ --add-drop-table\ --complete-insert\ --delayed-insert\ --tz-utc\ …

4
如何为两个表的MySQL建模
我有一些表用于存储数据,并取决于完成工作的人的类型(工人,民事人员),我想将其存储在event表中,现在这些人抢救出了一只动物(有一个animal表)。 最后,我想有一张桌子来存储一个人(工人,土木工人)救了一只动物的事件,但是弓箭我应该添加一个外键或者如何知道id完成这项工作的土木工人或工人的价值? 现在,在这种设计中,如果我只有一个人(又称民事人员),我不知道如何关联哪个人做这项工作,我只会将这个civil_id谷值存储person在最后一张表中的列中……但是如何知道是土木还是工人,我是否需要其他“中级​​”表? 如何在MySQL中反映下图的设计? 额外细节 我通过以下方式对其进行建模: DROP TABLE IF EXISTS `tbl_animal`; CREATE TABLE `tbl_animal` ( id_animal INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(25) NOT NULL DEFAULT "no name", specie VARCHAR(10) NOT NULL DEFAULT "Other", sex CHAR(1) NOT NULL DEFAULT "M", size VARCHAR(10) NOT NULL DEFAULT "Mini", edad VARCHAR(10) NOT …

2
如何在MySQL中使用REGEXP使用SUBSTRING
我有以下情况。我必须使用MySQL对描述中的正则表达式进行细分。描述: Lorem D9801 ipsum dolor坐在amet 其中D9801是REGEXP。每个强文本描述都有不同的内容,但我的正则表达式应类似于:REGEXP'D [[:digit:]] {4}' REGEXP的开头始终为“ D”,结尾始终为“ xxxx”-4位数字:Dxxxx 我知道REGEXP仅返回true / false值,但是如何进行查询以仅返回'D9801'值? 我尝试过这样的事情: SELECT SUBSTRING (description, LOCATE(REGEXP 'D[[:digit:]]{4}', description), 5) FROM ( SELECT "Lorem D9801 ipsum dolor sit amet" AS description ) temp 我知道这是错误的,因此我尝试使用此方法: SELECT id, SUM(description REGEXP 'D[[:digit:]]{4}') AS matches, CASE WHEN (SUM(description REGEXP 'D[[:digit:]]{4}') > 0) …

2
是否有“自定义数据类型”之类的东西?
MySQL是否支持自定义数据类型?例如,邮政编码可以存储在一个varchar(10)字段中,但可以压缩为一个int,其中带有空白选项,并带有一个有关5位或5 + 4位邮政编码的标志。 有没有办法为这些事情安装无缝数据类型?就应用程序而言,它将是字符串类型,如果应用程序传递了无效数据,则将只是数据截断(带有或不带有警告)。 可以使用自定义函数(例如,有一个INET_ATON用于IPv4地址的内置函数。但这不允许zip LIKE '12345%'进行正确索引的事情。对自定义数据类型的良好书写支持将允许标记数据类型因此,紧凑型zip int在排序时会像是一样进行排序zip varchar(10)。 这将允许该列为固定宽度,这将允许将6或10字节的变量存储空间缩减为4 byby固定宽度。 有几种适用的用途 邮递区号 IPv6地址 自定义时间戳字段,具有分钟级别的精度和容量2038,且存储使用量少于datetime,但无需支持实施年份之前的日期(例如,如果这些日期是系统中最早的日期,则最小值可以是2007年) 实现DST的时间戳(似乎不存在) 两个字母的美国状态可以存储在一个字节中 ENUM可以将long s分隔为自定义数据类型,这样,DESCRIBE在所有包装中,输出都不会显得那么混乱。 我希望数据类型处理程序的存储方式类似于函数的存储方式。 任何数据库引擎上是否都存在类似的远程功能?我主要使用MySQL,但是我很好奇它是否曾经实现过,没有让应用程序调用类似于INET_ATON函数的函数。 MS SQL确实具有这种性质,但是我想知道它是否仅仅是同义词。(例如,boolean可以是tinyint(1)或或或或postal_code之一的同义词)同义词不是我要问的。charvarchar (5910)

9
有哪些数据屏蔽工具?(MySQL,Linux)
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 5年前关闭。 我正在寻找(理想情况下是免费的,开源的)数据屏蔽工具。有这样的存在吗? 注意:这个相关问题涉及用于生成测试数据的工具,但是在这个问题中,我对从真实数据开始并对其进行遮罩以便在测试中使用更感兴趣,而不会丢失任何使其出于测试目的变得有趣的特殊关系。生成的数据可以用于某些测试目的,但是实际数据会带来您从未想到的问题。 生成测试数据大型数据集的工具
14 mysql  linux  testing 

2
为什么在解释知道答案时count(*)慢?
这个查询:select count(*) from planner_event需要很长时间才能运行-这么长的时间,我放弃并杀死了它。但是,当我运行时explain select count(*) from planner_event,我可以在输出中看到一列带有行数(14m)的列。 为什么解释可以立即获得行数,但是count(*)需要很长时间才能运行?
14 mysql  count  explain 

4
如何在CONCAT MySQL中排除NULL值?
如果我有这个-tadd是Address表: CONCAT(tadd.street_number, ' ', tadd.street_name,', ', tadd.apt_number,', ', tadd.city,', ', tadd.postal_code,', ', tadd.country) AS 'Address' 如果apt_number不存在,是否可以排除它? 我在想: WHERE tadd.apt_number IS NOT NULL 但是它将只返回带有的行apt_number,即使某些方法有效,我该如何处理该多余的逗号。 如果重复,请在评论中发布链接。
14 mysql  null  concat 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.