คำถามติดแท็ก mysql

MySQL ทุกรุ่น (ไม่ใช่ Microsoft SQL Server) โปรดเพิ่มแท็กเฉพาะเวอร์ชันเช่น mysql-5.7 หากเกี่ยวข้องกับคำถาม

6
แบบสอบถามเพื่อเปรียบเทียบโครงสร้างของสองตารางใน MySQL
เพื่อให้กระบวนการสำรองข้อมูลของฐานข้อมูล MySQL ของฉันเป็นแบบอัตโนมัติฉันต้องการเปรียบเทียบโครงสร้างของสองตาราง (เวอร์ชันปัจจุบันเทียบกับเวอร์ชันเก่า) คุณนึกถึงการสืบค้นที่สามารถเปรียบเทียบสองตารางได้หรือไม่ นี่คือตัวอย่างตารางที่คุณสามารถเปรียบเทียบได้ CREATE TABLE product_today ( pname VARCHAR(150), price int, PRIMARY KEY (pname) ); CREATE TABLE product_yesterday ( pname VARCHAR(150), price int, PRIMARY KEY (pname) ); CREATE TABLE product_2days_back ( pname VARCHAR(15), price int, PRIMARY KEY (pname) ); สองตารางแรกมีโครงสร้างเหมือนกัน อันสุดท้ายแตกต่างกัน ฉันแค่ต้องรู้ว่าสองตารางมีโครงสร้างต่างกันหรือไม่ ฉันไม่สนใจว่ามันแตกต่างกันอย่างไร

2
การเลือกหลายคอลัมน์ผ่านแบบสอบถามย่อย
ฉันพยายามเลือกคอลัมน์ 2 จากแบบสอบถามย่อยในแบบสอบถามต่อไปนี้ แต่ไม่สามารถทำได้ พยายามสร้างตารางนามแฝง แต่ยังไม่สามารถหาได้ SELECT DISTINCT petid, userid, (SELECT MAX(comDate) FROM comments WHERE petid=pet.id) AS lastComDate, (SELECT userid FROM comments WHERE petid=pet.id ORDER BY id DESC LIMIT 1) AS lastPosterID FROM pet LEFT JOIN comments ON pet.id = comments.petid WHERE userid='ABC' AND deviceID!='ABC' AND comDate>=DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 2 MONTH); …

4
mysql จะไม่เริ่มต้นหลังจากเพิ่ม innodb_buffer_pool_size และ innodb_log_file_size
ฉันกำลังติดตามโซลูชันนี้ที่นี่/programming/3927690/howto-clean-a-mysql-innodb-storage-engine/4056261#comment14041132_4056261 ในinnodb_buffer_pool_sizeภายหลังและพยายามเพิ่มเป็น 4G และ 1G ในภายหลัง (เช่น 1024M) นอกจากขนาดไฟล์บันทึกแล้ว แต่ mysql จะไม่ขึ้นต้นด้วยค่าเหล่านั้น ถ้าฉันใส่กลับไปที่ 512M mysql เริ่มต้นได้ดี ฉันจะแก้ปัญหานี้ได้อย่างไร เซิร์ฟเวอร์ของฉันเป็นรุ่น 16GB และเป็นไปตาม Webmin sysinfo: Real memory 15.62 GB total, 3.13 GB used ในขณะเดียวกันฉันก็พบบันทึกข้อผิดพลาดเช่นกัน: 120529 10:29:32 mysqld_safe mysqld จากไฟล์ pid /var/run/mysqld/mysqld.pid สิ้นสุดวันที่ 120529 10:29:33 mysqld_safe การเริ่มต้น mysqld daemon ด้วยฐานข้อมูลจาก / var / lib …

2
MySql - เปลี่ยน innodb_file_per_table สำหรับฐานข้อมูลสด
ฉันมีฐานข้อมูล MySql ขนาดใหญ่ (150GB) และตอนนี้ฉันสังเกตเห็นว่าการinnodb_file_per_tableตั้งค่าoffที่ทำให้ฐานข้อมูลทั้งหมดถูกโฮสต์ในไฟล์เดียว ( ibdata1) ฉันต้องการเปิดใช้งานinnodb_file_per_tableและให้มันแบ่งฐานข้อมูลย้อนหลังเป็นหลาย ๆ ไฟล์วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร
18 mysql  innodb  my.cnf 

5
MySQL นั้นเป็นโมฆะ / ไม่เป็นโมฆะ?
โปรดดูตารางนี้: mysql> desc s_p; +-------------------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | s_pid | int(10) unsigned | YES | MUL | NULL | | | sm_id | int(10) …
18 mysql  count 

2
เราสามารถทำอะไรใน MySQL 5.0 Replication เพื่อจัดการกับปัญหาแบนด์วิดท์?
ฉันกำลังพัฒนาแอพพลิเคชั่นให้ทำงานบนไคลเอนต์พีซี (Win) ซึ่งได้รับการกำหนดค่าด้วยอินสแตนซ์ของเซิร์ฟเวอร์ MySQL 5.1 ที่จะทำหน้าที่เป็นสลาฟแบบอ่านอย่างเดียวไปยังต้นแบบระยะไกล ต้นแบบระยะไกลมีสกีมาหลายสิบ แต่ฉันต้องการเพียงหนึ่งต่อไคลเอนต์ดังนั้นฉันให้การตั้งค่าการจำลองแบบ - do-dbใน my.ini เพื่อทำซ้ำสคีมาที่ลูกค้าต้องการเท่านั้น การจำลองแบบใช้งานได้ แต่เมื่อลูกค้าของเราเข้าสู่ภูมิภาคต่างๆของโลกที่มีการเข้าถึงอินเทอร์เน็ตผ่านเครือข่ายไร้สาย 3G เท่านั้นซึ่งเรียกเก็บตามการใช้ข้อมูลลูกค้าจะเกินขีด จำกัด แผนข้อมูลของพวกเขาอย่างรวดเร็วและประสบปัญหาราคาแพง ดังที่ฉันเข้าใจแล้ว MySQL จะเขียนธุรกรรมทั้งหมดสำหรับสกีมาทั้งหมดลงในไฟล์ binlog ไฟล์เดียวซึ่งหมายความว่าไคลเอนต์แต่ละคนจะต้องดาวน์โหลดธุรกรรมทั้งหมดที่ดำเนินการกับทุกสกีมาบนมาสเตอร์แล้วดาวน์โหลดเมื่อใช้ตัวกรองฐานข้อมูลต่อการจำลองแบบการตั้งค่าdo-dbในไฟล์ my.ini ของลูกค้า เพื่อลดความไร้ประสิทธิภาพนี้ฉันได้ใช้การตั้งค่าslave_compressed_protocol = 1ซึ่งดูเหมือนว่าจะลดข้อมูลที่ส่งลง 50% แต่ก็ยังทำให้ลูกค้าของเราเกินขีด จำกัด ข้อมูลที่รวดเร็วขึ้นในบิล 3G ฉันไม่สามารถจินตนาการได้ว่าฉันเป็นเพียงคนเดียวที่พบสิ่งนี้ดังนั้นฉันแน่ใจว่าฉันจะได้รับคำตอบมากมายเกี่ยวกับวิธีการบรรลุเป้าหมายนี้โดยการตั้งค่า x = y อย่างไรก็ตามฉันไม่พบเอกสารของการตั้งค่าดังกล่าวหรือวิธีการที่แนะนำให้ใช้ จนถึงตอนนี้นี่เป็นความคิดของฉันในการแก้ปัญหาที่เป็นไปได้โปรดให้ข้อเสนอแนะหรือเส้นทางอื่น: ตั้งค่าทาส "พร็อกซี" สำหรับแต่ละสคีมา (ในกล่องอื่นหรือกล่องเดียวกันกับอินสแตนซ์ / พอร์ต MySQL อื่น) กำหนดค่าพร็อกซี slave เพื่อทำซ้ำ-do-db …

4
แปลงตารางแถว 66,862,521 จาก MyISAM เป็น InnoDB โดยไม่ต้องออฟไลน์เป็นเวลาหลายชั่วโมงได้อย่างไร
เป็นไปได้ (และวิธี) ในการแปลงตาราง MyISAM ขนาดใหญ่เป็น InnoDB โดยไม่ต้องสมัครออฟไลน์ ต้องมีการแทรกสองแถวลงในตารางนั้นทุกวินาที แต่สามารถระงับได้ประมาณ 2 นาที เห็นได้ชัดว่าเปลี่ยนแปลงตาราง ... engine = innodb จะไม่ทำงาน ดังนั้นฉันจึงวางแผนที่จะสร้างตารางใหม่พร้อมกับเครื่องยนต์ innodb และคัดลอกเนื้อหาลงไป และในท้ายที่สุดระงับเธรดแอปพลิเคชันเธรดและ RENAME TABLE น่าเสียดายที่แม้แต่การทำสำเนาในแบทช์ขนาดเล็กจำนวน 100 แถวก็สร้างความล่าช้าอย่างมากหลังจากผ่านไประยะหนึ่ง แก้ไข : แถวที่มีอยู่จะไม่เปลี่ยนแปลงตารางนี้ใช้สำหรับการบันทึก
18 mysql  innodb 

6
การรักษารหัสผ่านฐานข้อมูล
ดูโครงสร้างของเว็บไซต์ที่ใช้ PHP / MySQL ส่วนใหญ่ที่ฉันเห็นมันไม่ยากที่จะแยกแยะรหัสผ่านฐานข้อมูลถ้าคุณขุดบิตเนื่องจากมีไฟล์ติดตั้งหรือการกำหนดค่าบางอย่างที่เก็บข้อมูลสำหรับบันทึก ลงในฐานข้อมูล นอกเหนือจากข้อควรระวังเบื้องต้นของการทำให้แน่ใจว่าสิทธิ์ของฐานข้อมูลของฉันถูก จำกัด อย่างเหมาะสมสำหรับการร้องขอระยะไกลตัวเลือกใดบ้างที่ฉันสามารถนำไปใช้ในโครงการของตัวเองเพื่อปกป้องข้อมูลนี้
18 mysql  security 

2
ฉันควรเพิ่ม max_connections ใน AWS RDS t1-micro สำหรับ MySQL หรือไม่
ฉันมี AWS RDS t1-micro ที่ใช้งาน MySQL 5.5 มันทำให้ฉันมีข้อผิดพลาดในการเชื่อมต่อมากเกินไป ฉันตรวจสอบแล้วและอนุญาตการเชื่อมต่อสูงสุด 34 รายการพร้อมกัน สิ่งที่ฉันได้อ่านคือฉันสามารถเพิ่มค่าสูงสุดนี้ได้โดยการสร้างกลุ่มพารามิเตอร์ DB สำหรับอินสแตนซ์ Micro นี้ ความสับสนของฉันคือ ฉันควรเพิ่มค่าการเชื่อมต่อสูงสุดสำหรับไมโครในกลุ่มพารามิเตอร์ DB หรือไม่ หรือฉันควรพิจารณาอัปเกรดเป็นระดับ RDS ถัดไปซึ่งให้การเชื่อมต่อสูงสุด (125)? ฉันควรเพิ่ม max_connections บน micro RDS เป็น 125 เทียบกับการอัพเกรดเป็นอินสแตนซ์ขนาดเล็ก RDS หรือไม่? เหตุใดและปัจจัยใดที่ฉันควรตัดสินใจ ขอบคุณ

4
ฉันจะรู้ได้อย่างไรว่ามีกระบวนการหรือฟังก์ชั่นอยู่ในฐานข้อมูล mysql หรือไม่?
ฉันจะรู้ได้อย่างไรว่ามีกระบวนการหรือฟังก์ชั่นอยู่ในฐานข้อมูล MySQL หรือไม่? และมีตัวเลือกการค้นพบใด ๆ ชอบshow procedures;(เช่นชอบshow tables;)

4
ฉันจะได้รับมูลค่าปัจจุบันและมูลค่าที่มากกว่าในการเลือกได้อย่างไร?
ฉันมีตาราง InnoDB 'idtimes' (MySQL 5.0.22-log) พร้อมคอลัมน์ `id` int(11) NOT NULL, `time` int(20) NOT NULL, [...] ด้วยคีย์เฉพาะแบบผสม UNIQUE KEY `id_time` (`id`,`time`) ดังนั้นจึงอาจมีการประทับเวลาหลายรายการต่อ ID และหลาย ID ต่อการประทับเวลา ฉันพยายามตั้งค่าแบบสอบถามที่ฉันได้รับรายการทั้งหมดรวมถึงเวลาที่มากขึ้นสำหรับแต่ละรายการถ้ามีอยู่ดังนั้นควรส่งคืนเช่น: +-----+------------+------------+ | id | time | nexttime | +-----+------------+------------+ | 155 | 1300000000 | 1311111111 | | 155 | 1311111111 | 1322222222 | | …
18 mysql  innodb  select 

2
ฉันจะแทรกใบหน้าที่ยิ้มเข้าไปใน MySQL ได้อย่างไร (😊)
ฉันใช้ MySQL 5.5.21 และพยายามที่จะแทรกอักขระ '\ xF0 \ x9F \ x98 \ x8A' แต่สำหรับชีวิตของฉันฉันไม่สามารถหาวิธีที่จะทำ ตามฟอรัมต่าง ๆ ที่ฉันได้อ่านมันเป็นไปได้ แต่เมื่อใดก็ตามที่ฉันลองข้อมูลก็จะถูกตัดทอน mysql> INSERT INTO hour ( `title`, `content`, `guid` , `published` , `lang` , `type` , `indegree` , `lon` , `lat` , `state` , `country` , `hour` ) VALUES ( "title" , "content 😊 …

1
ดูว่าอาร์เรย์ JSON ใน MySQL มีวัตถุที่มีคีย์เก็บวันที่ที่ระบุหรือไม่
ฉันกำลังพยายามหาว่ามีแถวที่มีวันที่ที่ระบุในอาร์เรย์ JSON หรือไม่ สมมติว่าข้อมูลของฉันมีลักษณะดังนี้: การใช้งานตาราง: id | application_id | data # Rows 1 | 1 | [{"data" : ["some", "data#1"], "date": "2016-04-21"}, {"data" : ["other", "data#1"], "date" : "2016-04-22"}] 2 | 2 | [{"data" : ["some", "data#2"], "date": "2016-04-21"}, {"data" : ["other", "data#2"], "date" : "2016-04-26"}] 3 | 1 | …
18 mysql  json 

1
MySQL open_files_limit - ไม่สามารถเปลี่ยนตัวแปรนี้ได้
ฉันทำงานเป็นปัญหาเพราะฉันopen_files_limitMySQL 1024สำหรับเป็นเพียง Centos 7, MySQL Community Server 5.6.22-log จริงๆแล้วมันเป็น vps ที่อุทิศให้กับ mysql สำหรับเซิร์ฟเวอร์ WHM (mysql ระยะไกล) แต่นั่นควรอยู่ด้านข้าง กำหนดค่าไฟล์ my.cnf: [mysqld] open_files_limit = 100000 open-files-limit = 100000 #I've read that the dashes are required on older versions, but I threw it in anyway. innodb_buffer_pool_size = 600M ... # and the same …
17 mysql 

7
“ ไม่พบไฟล์ mysql / plugin.frm” เมื่อเริ่มต้น MySQL
เมื่อฉันเริ่มเซิร์ฟเวอร์ MySQL ฉันได้รับข้อผิดพลาดนี้: /usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13) [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. InnoDB: The error means mysqld does not have the access rights to InnoDB: the directory. InnoDB: File name ./ibdata1 InnoDB: File operation call: 'create'. InnoDB: Cannot continue operation. …
17 mysql 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.