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

MySQL เป็นโอเพ่นซอร์สระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ที่ใช้ภาษาคิวรีเชิงโครงสร้าง (SQL) ห้ามใช้แท็กนี้สำหรับฐานข้อมูลอื่น ๆ เช่น SQL Server, SQLite เป็นต้นฐานข้อมูลเหล่านี้เป็นฐานข้อมูลที่แตกต่างกันซึ่งทั้งหมดใช้ภาษาของ SQL เพื่อจัดการข้อมูล

30
MySQL Error 1215: ไม่สามารถเพิ่มข้อ จำกัด foreign key
ฉันพยายามที่จะส่งต่อสคีมาใหม่ของฉันไปยังเซิร์ฟเวอร์ db ของฉัน แต่ฉันไม่สามารถหาสาเหตุที่ฉันได้รับข้อผิดพลาดนี้ ฉันพยายามค้นหาคำตอบที่นี่ แต่ทุกสิ่งที่ฉันพบได้กล่าวว่าตั้งค่าเอ็นจิน db เป็น Innodb หรือเพื่อให้แน่ใจว่าคีย์ที่ฉันพยายามใช้เป็น foreign key เป็นคีย์หลักในตารางของตัวเอง . ฉันได้ทำสิ่งเหล่านี้ทั้งสองถ้าฉันไม่ผิด มีความช่วยเหลืออื่น ๆ ที่คุณเสนอให้อีกไหม? Executing SQL script in server ERROR: Error 1215: Cannot add foreign key constraint -- ----------------------------------------------------- -- Table `Alternative_Pathways`.`Clients_has_Staff` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `Alternative_Pathways`.`Clients_has_Staff` ( `Clients_Case_Number` INT NOT NULL , …

13
ตั้งค่าคีย์ต่างประเทศใน phpMyAdmin หรือไม่
ฉันกำลังตั้งค่าฐานข้อมูลโดยใช้ phpMyAdmin ฉันมีสองตาราง ( fooและbar) การจัดทำดัชนีในคีย์หลักของพวกเขา ฉันพยายามสร้างตารางสัมพันธ์ ( foo_bar) ระหว่างพวกเขาโดยใช้คีย์หลักเป็นคีย์ต่างประเทศ ฉันสร้างตารางเหล่านี้เป็น MyISAM แต่หลังจากนั้นทั้งสามเปลี่ยนเป็น InnoDB เนื่องจากฉันอ่านว่า MyISAM ไม่สนับสนุนคีย์ต่างประเทศ ทุกเขตข้อมูลidINT(11) เมื่อฉันเลือกfoo_barตารางให้คลิกลิงก์ "มุมมองที่เกี่ยวข้อง" และพยายามตั้งค่าคอลัมน์ FK ให้เป็นdatabase.foo.idและจะมีdatabase.bar.idข้อความระบุว่า"ไม่ได้กำหนดดัชนี!" ข้างแต่ละคอลัมน์ ฉันพลาดอะไรไป ชี้แจง / อัปเดต เพื่อความเรียบง่ายฉันต้องการใช้ phpMyAdmin ต่อไป ฉันกำลังใช้ XAMPP ซึ่งเป็นเรื่องง่ายพอที่จะให้ฉันจดจ่อกับ PHP / CSS / Javascript และมันมาพร้อมกับ phpMyAdmin นอกจากนี้แม้ว่าฉันจะไม่สามารถตั้งค่าคีย์ต่างประเทศที่ชัดเจนได้ แต่ฉันมีตารางสัมพันธ์และสามารถรวมเข้าด้วยกันเช่นนี้: SELECT * FROM foo INNER JOIN foo_bar …
336 mysql  phpmyadmin 

18
เปลี่ยนชุดอักขระเริ่มต้นของ MySQL เป็น UTF-8 ใน my.cnf หรือไม่
ขณะนี้เรากำลังใช้คำสั่งต่อไปนี้ใน PHP เพื่อตั้งค่าชุดอักขระเป็นUTF-8ในแอปพลิเคชันของเรา เนื่องจากนี่เป็นค่าใช้จ่ายเล็กน้อยเราจึงต้องการตั้งค่านี้เป็นค่าเริ่มต้นใน MySQL เราสามารถทำได้ใน /etc/my.cnf หรือในสถานที่อื่นได้หรือไม่? SET NAMES 'utf8' SET CHARACTER SET utf8 ฉันค้นหาชุดอักขระเริ่มต้นใน /etc/my.cnf แต่ไม่มีอะไรเกี่ยวกับชุดอักขระ ณ จุดนี้ฉันทำต่อไปนี้เพื่อตั้งค่า MySQL charset และ collation variables เป็น UTF-8: skip-character-set-client-handshake character_set_client=utf8 character_set_server=utf8 นั่นเป็นวิธีที่ถูกต้องในการจัดการกับสิ่งนี้หรือไม่?

4
ฉันควรใช้ ORM ใดสำหรับ Node.js และ MySQL [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันกำลังเขียนโครงการเพื่อใช้ Node.js ฉันต้องการใช้ MySQL เป็นฐานข้อมูลต่อไป (แม้ว่าฉันจะไม่สนใจเขียนสคีมาใหม่) ฉันกำลังมองหา ORM ประสิทธิภาพที่ใช้งานง่ายและสมเหตุสมผลซึ่งสนับสนุนการแคชความสัมพันธ์แบบหนึ่งต่อหนึ่งและหลายต่อหลายคน จาก ORMs MySQL ที่ฉันสามารถหาpersistencejsและsequelizeดูเหมือนส่วนใหญ่เป็นผู้ใหญ่ คุณมีประสบการณ์อย่างใดอย่างหนึ่งหรือไม่? ฉันควรทราบถึงข้อดีและข้อเสียที่เกี่ยวข้องในการตัดสินใจของฉันอย่างไร
326 mysql  orm  node.js 

6
อัพเดตค่าคอลัมน์แทนที่ส่วนหนึ่งของสตริง
ฉันมีตารางที่มีคอลัมน์ต่อไปนี้ในฐานข้อมูล MySQL [id, url] และ URL เป็นเช่น: http://domain1.com/images/img1.jpg ฉันต้องการอัปเดต URL ทั้งหมดไปยังโดเมนอื่น http://domain2.com/otherfolder/img1.jpg การรักษาชื่อของไฟล์ตามที่เป็นอยู่ ฉันต้องเรียกใช้แบบสอบถามอะไร
325 mysql  sql 

13
รูปแบบวันที่ PHP () เมื่อแทรกเข้าสู่ datetime ใน MySQL
รูปแบบที่ถูกต้องในการส่งผ่านไปยังdate()ฟังก์ชันใน PHP คืออะไรถ้าฉันต้องการแทรกผลลัพธ์ลงในdatetimeคอลัมน์ประเภทMySQL ? ฉันพยายามแล้วdate("Y-M-D G:i:s")แต่ก็แค่แทรก "0000-00-00 00:00:00" ทุกครั้ง
324 php  mysql 

13
เพิ่ม Foreign Key ไปยังตารางที่มีอยู่
ฉันต้องการเพิ่ม Foreign Key ไปยังตารางชื่อ "katalog" ALTER TABLE katalog ADD CONSTRAINT `fk_katalog_sprache` FOREIGN KEY (`Sprache`) REFERENCES `Sprache` (`ID`) ON DELETE SET NULL ON UPDATE SET NULL; เมื่อฉันพยายามทำสิ่งนี้ฉันได้รับข้อความแสดงข้อผิดพลาดนี้: Error Code: 1005. Can't create table 'mytable.#sql-7fb1_7d3a' (errno: 150) ข้อผิดพลาดในสถานะ INNODB: 120405 14:02:57 ข้อผิดพลาดในข้อ จำกัด foreign key ของ table mytable # sql-7fb1_7d3a: FOREIGN KEY …

14
เชื่อมต่อ Java กับฐานข้อมูล MySQL
คุณเชื่อมต่อกับฐานข้อมูล MySQL ใน Java ได้อย่างไร เมื่อฉันลองฉันได้ java.sql.SQLException: No suitable driver found for jdbc:mysql://database/table at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:247) หรือ java.lang.ClassNotFoundException: com.mysql.jdbc.Driver หรือ java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
322 java  mysql  jdbc 

30
ข้อผิดพลาด: 'ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ภายในผ่านซ็อกเก็ต' /var/run/mysqld/mysqld.sock '(2)' - หายไป /var/run/mysqld/mysqld.sock
ปัญหาของฉันเริ่มต้นโดยที่ฉันไม่สามารถเข้าสู่ระบบในฐานะ root ได้อีกต่อไปในการติดตั้ง mysql ของฉัน ฉันพยายามรัน mysql โดยไม่เปิดรหัสผ่าน ... แต่ทุกครั้งที่ฉันรันคำสั่ง # mysqld_safe --skip-grant-tables & ฉันจะไม่ได้รับการตอบกลับ ผมพยายามที่จะทำตามคำแนะนำเหล่านี้ในการกู้คืนรหัสผ่าน หน้าจอมีลักษณะดังนี้: root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables 120816 11:40:53 mysqld_safe Logging to syslog. 120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql และฉันไม่ได้รับพรอมต์ให้เริ่มพิมพ์คำสั่ง SQL เพื่อรีเซ็ตรหัสผ่าน เมื่อฉันฆ่ามันโดยกดCTRL+ Cฉันได้รับข้อความต่อไปนี้: error: 'Can't connect to local MySQL server through socket …
322 mysql  linux  ubuntu 

7
MySQL กับ MongoDB 1,000 อ่าน
ฉันตื่นเต้นเป็นอย่างมากกับ MongoDb และได้ทำการทดสอบเมื่อไม่นานมานี้ ฉันมีตารางที่เรียกว่าโพสต์ใน MySQL ที่มีประมาณ 20 ล้านบันทึกการจัดทำดัชนีเฉพาะในเขตข้อมูลที่เรียกว่า 'id' ฉันต้องการเปรียบเทียบความเร็วกับ MongoDB และฉันทดสอบซึ่งจะได้รับและพิมพ์ 15 รายการแบบสุ่มจากฐานข้อมูลขนาดใหญ่ของเรา ฉันใช้แบบสอบถามประมาณ 1,000 ครั้งสำหรับ mysql และ MongoDB และฉันประหลาดใจที่ฉันไม่ได้สังเกตเห็นความแตกต่างของความเร็ว บางที MongoDB อาจเร็วขึ้น 1.1 เท่า มันน่าผิดหวังมาก มีบางอย่างที่ฉันทำผิดหรือเปล่า? ฉันรู้ว่าการทดสอบของฉันไม่สมบูรณ์แบบ แต่ MySQL นั้นเทียบเท่ากับ MongoDb เมื่อพูดถึงการอ่านงานบ้านที่เข้มข้น บันทึก: ฉันมี dual core + (2 กระทู้) i7 cpu และ 4GB ram ฉันมีพาร์ติชั่นบน MySQL จำนวน 20 …

30
PDOException SQLSTATE [HY000] [2002] ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
ฉันเชื่อว่าฉันได้ติดตั้งไซต์ (ขั้นพื้นฐาน) ของฉันไปยัง fortrabbit ได้สำเร็จ แต่ทันทีที่ฉันเชื่อมต่อกับ SSH เพื่อเรียกใช้คำสั่งบางอย่าง (เช่นphp artisan migrateหรือphp artisan db:seed) ฉันได้รับข้อความแสดงข้อผิดพลาด: [PDOException] SQLSTATE[HY000] [2002] No such file or directory เมื่อถึงจุดหนึ่งการโยกย้ายต้องทำงานเพราะตารางของฉันอยู่ที่นั่น - แต่นี่ไม่ได้อธิบายว่าทำไมตอนนี้มันจึงไม่ทำงานสำหรับฉัน
319 php  mysql  laravel  pdo 

4
ฉันควรใช้ประเภท / ความยาวคอลัมน์ใดในการจัดเก็บรหัสผ่านที่แฮช Bcrypt ในฐานข้อมูล
ฉันต้องการเก็บรหัสผ่านที่แฮช (โดยใช้ BCrypt) ในฐานข้อมูล อะไรคือสิ่งที่ดีสำหรับสิ่งนี้และความยาวที่ถูกต้องคืออะไร? รหัสผ่านถูกแฮชด้วย BCrypt ยาวเท่ากันหรือไม่ แก้ไข ตัวอย่างแฮช: $2a$10$KssILxWNR6k62B7yiX0GAe2Q7wwHlrzhF3LqtVvpyvHZf0MwvNfVu หลังจากแฮชรหัสผ่านบางส่วนดูเหมือนว่า BCrypt จะสร้างแฮช 60 ตัวเสมอ แก้ไข 2 ขออภัยที่ไม่ได้กล่าวถึงการใช้งาน ฉันใช้jBCrypt
318 mysql  hash  types  storage  bcrypt 

12
วิธีเปลี่ยนขนาด max_allowed_packet
ฉันมีปัญหากับฟิลด์ BLOB ในฐานข้อมูล MySQL ของฉัน - เมื่ออัปโหลดไฟล์ที่มีขนาดใหญ่กว่าประมาณ 1MB ฉันได้รับข้อผิดพลาด Packets larger than max_allowed_packet are not allowed. นี่คือสิ่งที่ฉันได้ลอง: ใน MySQL Query Browser ฉันใช้งานได้show variables like 'max_allowed_packet'ซึ่งให้ฉัน 1048576 จากนั้นฉันเรียกใช้คิวรีset global max_allowed_packet=33554432ตามด้วยshow variables like 'max_allowed_packet'- มันให้ฉัน 33554432 ตามที่คาดไว้ แต่เมื่อฉันรีสตาร์ทเซิร์ฟเวอร์ MySQL มันกลับไปที่ 1048576 อย่างน่าอัศจรรย์ฉันทำอะไรผิดที่นี่ คำถามโบนัสเป็นไปได้หรือไม่ที่จะบีบอัดเขตข้อมูล BLOB
317 mysql 

9
วิธีรับจำนวนการนับด้วยแบบสอบถาม SQL หนึ่งรายการ
ฉันสงสัยว่าจะเขียนคำค้นหานี้อย่างไร ฉันรู้ว่าไวยากรณ์ที่แท้จริงนี้เป็นของปลอม แต่มันจะช่วยให้คุณเข้าใจสิ่งที่ฉันต้องการ ฉันต้องการมันในรูปแบบนี้เพราะมันเป็นส่วนหนึ่งของแบบสอบถามที่ใหญ่กว่ามาก SELECT distributor_id, COUNT(*) AS TOTAL, COUNT(*) WHERE level = 'exec', COUNT(*) WHERE level = 'personal' ฉันต้องการสิ่งนี้ทั้งหมดกลับมาในแบบสอบถามเดียว นอกจากนี้ต้องอยู่ในแถวเดียวดังนั้นสิ่งต่อไปนี้จะไม่ทำงาน: 'SELECT distributor_id, COUNT(*) GROUP BY distributor_id'
316 mysql  sql  join  count  group-by 

4
ชุดอักขระและการเปรียบเทียบหมายถึงอะไรอย่างแน่นอน
ฉันสามารถอ่านเอกสารMySQLและมันค่อนข้างชัดเจน แต่เราจะตัดสินใจได้อย่างไรว่าจะใช้อักขระตัวใด การเปรียบเทียบการจัดเรียงข้อมูลมีผลอย่างไร ฉันขอคำอธิบายของทั้งสองและวิธีการเลือกพวกเขา

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