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

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

12
วิธีเข้าสู่ระบบ mysql และสืบค้นฐานข้อมูลจาก linux terminal
ฉันใช้ debian linux ฉันมีเครื่อง linux ที่ติดตั้ง mysql ฉันสามารถล็อกอินเข้าสู่เครื่อง linux ของฉันโดยใช้ผู้ใช้รูทและผู้ใช้รายอื่น ฉันสามารถเชื่อมต่อกับฐานข้อมูล mysql บนเครื่อง linux จากเครื่อง windows โดยใช้ sqlyog ตอนนี้ฉันต้องการดำเนินการค้นหาบนเครื่อง linux โดยใช้ linux terminal เท่านั้น ฉันลองทำบางอย่างต่อไปนี้บนเทอร์มินัล ฉันไปที่ไดเรกทอรีรากจากนั้นฉันไปที่ไดเร็กทอรี / var / lib ฉันรันคำสั่งต่อไปนี้บนเทอร์มินัล mysqladmin -u root -p mysqladmin -u root -ppassword ทุกครั้งที่ฉันได้รับข้อความแสดงข้อผิดพลาดดังต่อไปนี้ ข้อผิดพลาด 1045 (28000) การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'root' @ 'localhost' (โดยใช้รหัสผ่าน NO) โปรดชี้แนะฉันสำหรับการติดตาม …
104 mysql  linux  login 


7
มีประสิทธิภาพที่เพิ่มขึ้นในการสร้างดัชนีฟิลด์บูลีนหรือไม่?
ฉันกำลังจะเขียนแบบสอบถามที่มีไฟล์WHERE isok=1. ตามความหมายของชื่อisokคือฟิลด์บูลีน (อันที่จริงTINYINT(1) UNSIGNEDคือตั้งค่าเป็น 0 หรือ 1 ตามต้องการ) มีประสิทธิภาพที่เพิ่มขึ้นในการสร้างดัชนีฟิลด์นี้หรือไม่? เครื่องยนต์ (InnoDB ในกรณีนี้) จะทำงานได้ดีขึ้นหรือแย่ลงในการค้นหาดัชนี?
104 mysql  indexing  innodb 

7
ฉันควรจัดเก็บละติจูดและลองจิจูดอย่างแม่นยำเพียงใด
ฉันกำลังอ่านคำถามนี้ที่นี่: ประเภทข้อมูลใดที่จะใช้เมื่อจัดเก็บข้อมูลละติจูดและลองจิจูดในฐานข้อมูล SQL และดูเหมือนว่าฉันทามติทั่วไปคือการใช้ทศนิยม (9,6) เป็นหนทางที่จะไป คำถามสำหรับฉันคือฉันต้องการสิ่งนี้จริงๆหรือ? ตัวอย่างเช่น API ของ Google ส่งคืนผลลัพธ์ดังนี้: "lat": 37.4219720, "lng": -122.0841430 จาก -122.0841430 ต้องมีกี่หลัก? ฉันได้อ่านคู่มือหลายฉบับ แต่ฉันไม่สามารถเข้าใจได้เพียงพอที่จะคิดออก เพื่อให้คำถามของฉันแม่นยำยิ่งขึ้น: ถ้าฉันต้องการความแม่นยำในระยะ 50 ฟุตจากตำแหน่งที่แน่นอนฉันต้องจัดเก็บจุดทศนิยมกี่จุด? บางทีคำถามที่ดีกว่าอาจเป็นคำถามที่ไม่ใช่การเขียนโปรแกรม แต่จะเป็นอย่างไร: จุดทศนิยมแต่ละจุดให้ความแม่นยำมากขึ้นเพียงใด? มันง่ายขนาดนี้เลยเหรอ? รายการ x00 = 6000 ไมล์ xx0 = 600 ไมล์ xxx = 60 ไมล์ xxx.x = 6 ไมล์ xxx.xx = .6 ไมล์ …
104 mysql  geolocation 

3
การอัปเดตคีย์หลัก MySQL
ฉันมีตารางที่user_interactionsมี 4 คอลัมน์: user_1 user_2 type timestamp คีย์หลักคือ(user_1,user_2,type) และฉันต้องการเปลี่ยนเป็น(user_2,user_1,type) สิ่งที่ฉันทำคือ: drop primary key ... add primary key (user_2,user_1,type)... และ voila ... ปัญหาคือฐานข้อมูลอยู่บนเซิร์ฟเวอร์ ดังนั้นก่อนที่ฉันจะสามารถอัปเดตคีย์หลักได้มีรายการที่ซ้ำกันจำนวนมากได้พุ่งเข้ามาและมีการคืบคลานเข้ามาอย่างต่อเนื่อง จะทำอย่างไร? สิ่งที่ฉันต้องการทำตอนนี้คือลบรายการที่ซ้ำกันและเก็บรายการที่ซ้ำกันไว้ล่าสุดtimestamp(ซึ่งเป็นคอลัมน์ในตาราง) จากนั้นอัปเดตคีย์หลักอีกครั้ง
104 mysql  primary-key 

3
เหตุใดจึงมีการสร้าง“ GRANT USAGE” ในครั้งแรกที่ฉันให้สิทธิ์ผู้ใช้
ฉันเพิ่งเริ่มใช้งานด้านผู้ดูแลระบบของ DBMS และกำลังตั้งค่าฐานข้อมูลใหม่ในคืนนี้ (โดยใช้ MySQL) เมื่อฉันสังเกตเห็นสิ่งนี้ หลังจากให้สิทธิ์แก่ผู้ใช้เป็นครั้งแรกระบบจะสร้างการให้สิทธิ์อื่นขึ้นมา GRANT USAGE on *.* TO user IDENTIFIED BY PASSWORD password เอกสารระบุว่าUSAGEสิทธิ์นั้นหมายถึง "ไม่มีสิทธิ์" ดังนั้นฉันจึงอนุมานได้ว่าเป็นการให้สิทธิ์การทำงานตามลำดับชั้นและบางทีผู้ใช้อาจต้องมีสิทธิ์บางอย่างสำหรับฐานข้อมูลทั้งหมดดังนั้นสิ่งนี้จึงทำหน้าที่จับทั้งหมด? ฉันไม่เข้าใจเหมือนกันว่าทำไมบรรทัดนี้จึงมีIDENTIFIED BYอนุประโยคในเมื่อทุนที่ฉันสร้างขึ้นไม่มี (ส่วนใหญ่เป็นเพราะฉันไม่เข้าใจว่าIDENTIFIED BYประโยคนี้ทำหน้าที่อะไร) แก้ไข:ขออภัยที่ไม่ได้ระบุสิ่งนี้ในตอนแรกได้รับทุน GRANT ALL PRIVILEGES ON database.* TO admin_user GRANT SELECT, INSERT, UPDATE, DELETE ON database.* TO user

5
MIN / MAX เทียบกับ ORDER BY และ LIMIT
จากคำถามต่อไปนี้คุณจะพิจารณาวิธีใดที่ดีกว่า เหตุผลของคุณคืออะไร (ประสิทธิภาพของโค้ด, การบำรุงรักษาที่ดีขึ้น, WTFery น้อยลง) ... SELECT MIN(`field`) FROM `tbl`; SELECT `field` FROM `tbl` ORDER BY `field` LIMIT 1;
104 sql  mysql 

8
MySQL เลือกวันที่ของเมื่อวาน
ฉันจะแสดงและนับค่าของเมื่อวานนี้ได้อย่างไร? ฉันใช้time()เพื่อแทรกวันที่ในฐานข้อมูล ตัวอย่าง: URL: google.com youtube.com google.com youtube.com test.com youtube.com DateVisited: 1313668492 1313668540 1313668571 13154314 ฉันต้องการแสดงจำนวน URL ที่มีหลายรายการในตารางและจำนวน URL ที่เข้าชมเมื่อวานนี้ ตัวอย่างผลลัพธ์: LINK | timesExisted | timesVisitedYesterday Google.com | 2 | 2 youtube.com| 3 | 3 ฉันมีความคิดที่จะหาวันที่ของเมื่อวานนี้แล้ว แต่ฉันไม่มีความคิดที่จะนับจำนวนครั้งที่มี URL ในเมื่อวานนี้และนับจำนวนครั้งที่มี URL อยู่ในตาราง
104 mysql 

7
ข้อผิดพลาด MySQL / Amazon RDS:“ คุณไม่มีสิทธิ์พิเศษ…”
ฉันพยายามคัดลอกฐานข้อมูล mysql จาก Amazon EC2 ไปยัง RDS: ฉันทำmysqldumpฐานข้อมูลในโฟลเดอร์รูทสำเร็จโดยใช้สิ่งนี้: root@ip-xx-xx-xx-xx:~# mysqldump my_database -u my_username -p > my_database.sql จากนั้นฉันพยายามถ่ายโอนไฟล์. sql นี้ไปยังฐานข้อมูล RDS ใหม่ของฉัน: root@ip-xx-xx-xx-xx:~# mysql my_database -u my_username -p -h my_new_database.xxxxxxxxx.us-east-1.rds.amazonaws.com < my_database.sql ขออภัยฉันได้รับข้อความแสดงข้อผิดพลาดดังต่อไปนี้: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the …

8
ข้อใดมีประสิทธิภาพมากกว่า: ตาราง MySQL หลายตารางหรือตารางขนาดใหญ่
ฉันเก็บรายละเอียดผู้ใช้ต่างๆไว้ในฐานข้อมูล MySQL ของฉัน เดิมทีมีการตั้งค่าในตารางต่างๆซึ่งหมายความว่าข้อมูลเชื่อมโยงกับ UserIds และส่งออกผ่านการเรียกที่ซับซ้อนบางครั้งเพื่อแสดงและจัดการข้อมูลตามที่ต้องการ การตั้งค่าระบบใหม่เกือบจะเป็นเรื่องที่สมเหตุสมผลที่จะรวมตารางเหล่านี้ทั้งหมดไว้ในตารางเนื้อหาที่เกี่ยวข้องขนาดใหญ่ นี่จะเป็นการช่วยเหลือหรือขัดขวาง? ข้อควรพิจารณาเกี่ยวกับความเร็วในการโทรอัปเดตหรือค้นหา / จัดการ? นี่คือตัวอย่างโครงสร้างตารางบางส่วนของฉัน: ผู้ใช้ - UserId, ชื่อผู้ใช้, อีเมล, รหัสผ่านที่เข้ารหัส, วันที่ลงทะเบียน, ip user_details - ข้อมูลคุกกี้ชื่อที่อยู่รายละเอียดการติดต่อความร่วมมือข้อมูลประชากร user_activity - การมีส่วนร่วมออนไลน์ล่าสุดการดูครั้งล่าสุด user_settings - การตั้งค่าการแสดงโปรไฟล์ user_interests - โฆษณาตัวแปรที่กำหนดเป้าหมายได้ user_levels - สิทธิ์การเข้าถึง user_stats - hit, tallies แก้ไข:ฉันได้ให้คะแนนคำตอบทั้งหมดจนถึงตอนนี้พวกเขาทั้งหมดมีองค์ประกอบที่ตอบคำถามของฉันเป็นหลัก ตารางส่วนใหญ่มีความสัมพันธ์แบบ 1: 1 ซึ่งเป็นสาเหตุหลักในการทำให้ผิดปกติ จะมีปัญหาหรือไม่หากตารางครอบคลุมมากกว่า 100 คอลัมน์เมื่อเซลล์เหล่านี้ส่วนใหญ่น่าจะว่างเปล่า

13
รหัสข้อผิดพลาด: 1005 ไม่สามารถสร้างตาราง '…' (errno: 150)
ฉันค้นหาวิธีแก้ไขปัญหานี้บนอินเทอร์เน็ตและตรวจสอบคำถาม Stack Overflow แต่ไม่มีวิธีแก้ไขใดที่ใช้ได้กับกรณีของฉัน ฉันต้องการสร้างคีย์ต่างประเทศจากตาราง sira_no เป็น metal_kod ALTER TABLE sira_no ADD CONSTRAINT METAL_KODU FOREIGN KEY(METAL_KODU) REFERENCES metal_kod(METAL_KODU) ON DELETE SET NULL ON UPDATE SET NULL ; สคริปต์นี้ส่งคืน: Error Code: 1005. Can't create table 'ebs.#sql-f48_1a3' (errno: 150) ฉันพยายามเพิ่มดัชนีในตารางอ้างอิง: CREATE INDEX METAL_KODU_INDEX ON metal_kod (METAL_KODU); ฉันตรวจสอบ METAL_KODU บนทั้งสองตาราง (ชุดอักขระและการจัดเรียง) แต่ฉันไม่พบวิธีแก้ปัญหานี้ ฉันจะแก้ไขปัญหานี้ได้อย่างไร? …

8
จะเพิ่มคอลัมน์ใหม่ในตาราง MYSQL ได้อย่างไร?
ฉันพยายามเพิ่มคอลัมน์ใหม่ในตาราง MYSQL โดยใช้ PHP ฉันไม่แน่ใจว่าจะแก้ไขตารางของฉันอย่างไรเพื่อให้สร้างคอลัมน์ใหม่ ในตารางการประเมินของฉันฉันมี: assessmentid | q1 | q2 | q3 | q4 | q5 สมมติว่าฉันมีหน้าที่มีกล่องข้อความและฉันพิมพ์q6ในกล่องข้อความแล้วกดปุ่มจากนั้นตารางจะอัปเดตเป็น: assessmentid | q1 | q2 | q3 | q4 | q5 | q6 รหัสของฉัน: <?php include 'core/init.php'; include 'core/admininit.php'; include 'includes/overall/overall_header.php'; adminprotect_page(); include 'includes/adminmenu.php'; ?> <?php mysql_query("ALTER TABLE `assessment` ADD newq INT(1) …
103 php  mysql  add  alter 


13
เลือก mySQL ตามเดือนและปีเท่านั้น
ฉันมีคอลัมน์ใน mySQL DB ที่มีบางแถว หนึ่งในแถวนี้คือ DATE ดังนี้:2012-02-01 สิ่งที่ฉันต้องการบรรลุคือทำการ SELECT ด้วย PHP โดยพิจารณาจากปีและเดือนเท่านั้น ตรรกะของ SELECT จะเป็นดังต่อไปนี้: $q="SELECT * FROM projects WHERE Date="SELECT HERE THE SPECIFIC YEAR AND MONTH""; เดือนและปีที่ระบุจะถูกส่งผ่านจาก$_POSTตัวแปรเช่นนี้$_POST['period']="2012-02"; ฉันจะทำมันได้อย่างไร?
103 php  mysql 

10
สร้าง GUID ใน MySQL สำหรับข้อมูลที่มีอยู่หรือไม่
ฉันเพิ่งนำเข้าข้อมูลจำนวนมากไปยังตาราง MySQL และฉันมีคอลัมน์ "GUID" ที่ฉันต้องการเติมเต็มแถวที่มีอยู่ทั้งหมดด้วย GUID แบบสุ่มใหม่และไม่ซ้ำใคร ฉันจะทำสิ่งนี้ใน MySQL ได้อย่างไร? ฉันเหนื่อย UPDATE db.tablename SET columnID = UUID() where columnID is not null และรับทุกฟิลด์เหมือนกัน
103 mysql  random  guid 

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