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

MySQL เป็นฐานข้อมูลโอเพ่นซอร์สที่ Oracle เป็นเจ้าของ

3
Mysql ล้มเหลวและจะไม่เริ่มทำงาน
เซิร์ฟเวอร์ mysql ที่ใช้ในการผลิตของเราเพิ่งพังและจะไม่กลับมาทำงานอีก มันให้ข้อผิดพลาด segfault ฉันลองรีบูตเครื่องแล้วก็ไม่รู้ว่าจะลองอะไรอีก นี่คือ stacktrace: 140502 14:13:05 [หมายเหตุ] ปลั๊กอิน 'FEDERATED' ถูกปิดใช้งาน InnoDB: การสแกนเข้าสู่ระบบดำเนินการผ่านจุดตรวจสอบ 108 1057948207 140502 14:13:06 InnoDB: ฐานข้อมูลไม่ได้ปิดตัวลงตามปกติ! InnoDB: เริ่มการกู้คืนความผิดพลาด InnoDB: กำลังอ่านข้อมูลพื้นที่ตารางจากไฟล์. ibd ... InnoDB: การกู้คืนหน้าข้อมูลครึ่งเขียนที่เป็นไปได้จาก doublewrite InnoDB: บัฟเฟอร์ ... InnoDB: ทำการกู้คืน: สแกนเพื่อบันทึกหมายเลขลำดับ 108 1058059648 InnoDB: 1 ธุรกรรมที่ต้องย้อนกลับหรือลบล้าง InnoDB: ยกเลิกการดำเนินการทั้งหมด 15 แถว InnoDB: ตัวนับ Trx id …
19 mysql  innodb  crash 

9
วิธีการตั้งค่า ulimits สำหรับบริการที่เริ่มต้นเมื่อบูท?
ฉันต้องการให้ mysql ใช้หน้าใหญ่เพื่อตั้ง ulimit - ฉันทำสิ่งนี้ใน limit.conf แล้ว อย่างไรก็ตาม limit.conf (pam_limits.so) ไม่ได้รับการอ่านสำหรับ init เท่านั้นสำหรับเชลล์ "ของจริง" ฉันแก้ไขมันก่อนโดยการเพิ่ม "ulimit -l" ในฟังก์ชั่นเริ่มต้น initscript ฉันต้องการวิธีที่สามารถทำซ้ำได้บางอย่างตอนนี้กล่องได้รับการจัดการโดยพ่อครัวและเราไม่ต้องการรับไฟล์ที่ RPM เป็นเจ้าของจริงๆ

3
สร้างตาราง MySQL แถว 1,000M
คำถามนี้ถูกโพสต์ใหม่จากStack Overflowตามคำแนะนำในความคิดเห็นขอโทษสำหรับการทำซ้ำ คำถาม คำถามที่ 1: เนื่องจากขนาดของตารางฐานข้อมูลมีขนาดใหญ่ขึ้นฉันจะปรับแต่ง MySQL เพื่อเพิ่มความเร็วของการโทรโหลดข้อมูล INFILE ได้อย่างไร คำถามที่ 2: จะใช้กลุ่มคอมพิวเตอร์เพื่อโหลดไฟล์ csv ที่แตกต่างกันปรับปรุงประสิทธิภาพหรือทำลายไฟล์หรือไม่ (นี่คือภารกิจการทำเครื่องหมายของฉันสำหรับวันพรุ่งนี้โดยใช้ข้อมูลโหลดและเม็ดมีดจำนวนมาก) เป้าหมาย เรากำลังลองใช้ชุดตรวจจับคุณสมบัติและพารามิเตอร์การจัดกลุ่มที่แตกต่างกันสำหรับการค้นหารูปภาพดังนั้นเราจึงจำเป็นต้องสามารถสร้างและฐานข้อมูลขนาดใหญ่ได้ในเวลาที่เหมาะสม ข้อมูลเครื่อง เครื่องมี ram ขนาด 256 กิ๊กและมีอีก 2 เครื่องที่มี ram เท่ากันถ้ามีวิธีในการปรับปรุงเวลาการสร้างโดยการกระจายฐานข้อมูลหรือไม่? สคีมาตาราง คีมาตารางดูเหมือน +---------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+------------------+------+-----+---------+----------------+ | match_index | int(10) unsigned …

5
การปรับเปลี่ยนคอลัมน์ของตาราง mysql ที่มีขนาดใหญ่มากซึ่งมีการหยุดทำงานเพียงเล็กน้อยหรือไม่มีเลย
ฉันจำเป็นต้องทำการเปลี่ยนแปลงตารางเป็นระยะใน mysql 5.1 ส่วนใหญ่เป็นการเพิ่มคอลัมน์ ง่ายมากด้วยคำสั่งแก้ไขตาราง แต่ตอนนี้ตารางของฉันมีมากถึง 40 ล้านแถวและพวกมันกำลังเติบโตอย่างรวดเร็ว ... ดังนั้นคำสั่งเปลี่ยนตารางเหล่านั้นใช้เวลาหลายชั่วโมง ในอีกสองสามเดือนพวกเขาจะใช้เวลาหลายวันที่ฉันคาดเดา เนื่องจากฉันใช้ amazon RDS ฉันไม่สามารถมีเซิร์ฟเวอร์ทาสให้เล่นแล้วเลื่อนระดับเป็นโทได้ ดังนั้นคำถามของฉันคือถ้ามีวิธีการทำเช่นนี้ด้วยการหยุดทำงานน้อยที่สุด? ฉันไม่รังเกียจการดำเนินการที่ใช้เวลาเป็นชั่วโมงหรือเป็นวันถ้าผู้ใช้ยังคงสามารถใช้ฐานข้อมูลได้ ... อย่างน้อยพวกเขาสามารถอ่านได้ในขณะที่กำลังเพิ่มคอลัมน์หรือไม่? จะเกิดอะไรขึ้นถ้าแอพของฉันพยายามเขียน แทรกหรืออัปเดต ถ้ามันล้มเหลวทันทีนั่นก็ไม่เลวจริง ๆ ถ้ามันแค่แฮงค์และทำให้เกิดปัญหากับเซิร์ฟเวอร์ db นั่นเป็นปัญหาใหญ่ .. นี่ต้องเป็นปัญหาเกี่ยวกับการปรับสเกลทั่วไปทุกคนต้องเพิ่มคอลัมน์ .. โดยทั่วไปแล้วฐานข้อมูลการผลิตจะทำอย่างไร Slave -> การย้ายข้อมูลหลักหรือไม่ อัปเดต - ฉันลืมที่จะพูดถึงฉันใช้เครื่องมือจัดเก็บข้อมูล Innodb

4
เปลี่ยนชุดอักขระและการเรียงในคอลัมน์ทั้งหมดในตารางทั้งหมดใน MySQL
ฉันต้องการรันคำสั่งเหล่านี้ในตารางทั้งหมดสำหรับคอลัมน์ทั้งหมด alter table table_name charset=utf8; alter table table_name alter column column_name charset=utf8; เป็นไปได้ไหมที่จะใช้ระบบอัตโนมัตินี้ในทางใดทางหนึ่งใน MySQL? ฉันต้องการหลีกเลี่ยง mysqldump ปรับปรุง: Richard Bronosky แสดงให้ฉันเห็นวิธี :-) แบบสอบถามที่ฉันต้องการดำเนินการในทุกตาราง: alter table DBname.DBfield CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; เคียวรีเคียวรีเพื่อสร้างเคียวรีอื่นทั้งหมด: SELECT distinct CONCAT( 'alter table ', TABLE_SCHEMA, '.', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' …
18 mysql  automation  sql 

1
ไม่สามารถดำเนินการต่อได้เนื่องจากพบว่าตารางระบบที่ใช้โดย Event Scheduler เสียหายเมื่อเริ่มต้นเซิร์ฟเวอร์
ฉันพยายามที่จะคัดลอกข้อมูลจากฐานข้อมูล MySQL หนึ่งไปยังอีกบนเซิร์ฟเวอร์อื่นโดยใช้ Navicat สำหรับ MySQL อย่างไรก็ตามฉันได้รับข้อผิดพลาดนี้เมื่อพยายามโอน ฉันทำงานmysql_upgradeไปแล้วและทำงานเสร็จ แต่ฉันยังคงได้รับข้อผิดพลาดนี้ เซิร์ฟเวอร์เก่าใช้ WampServer สำหรับ Apache, MySQL และ PHP ฉันจะแก้ไขสิ่งนี้ได้อย่างไรเพื่อให้ฉันสามารถถ่ายโอนข้อมูลได้ ?? แก้ไขไม่เป็นไร ... ฉันเป็นคนงี่เง่า; เพิ่งต้องรีสตาร์ท MySQL (คุณจะคิดว่ามันจะเกิดขึ้นโดยอัตโนมัติ!)
18 mysql 

2
ปรับแต่งและทำความเข้าใจ table_cache ใน mySQL
ฉันใช้สคริปต์ปรับแต่งประสิทธิภาพ MySQL ที่ยอดเยี่ยมและเริ่มทำงานตามคำแนะนำ หนึ่งฉันวิ่งเข้าไปคือ ตาราง CACHE ค่า table_cache ปัจจุบัน = 4096 ตารางคุณมีทั้งหมด 1,073 ตาราง คุณมี 3900 ตารางที่เปิดอยู่ อัตราการเข้าชม table_cache ปัจจุบันคือ 2% ในขณะที่ 95% ของแคชตารางของคุณถูกใช้งาน คุณควรเพิ่ม table_cache ของคุณ ฉันเริ่มอ่านบน table_cache แต่พบว่าเอกสารของ MySQLค่อนข้างขาด พวกเขาบอกว่าจะเพิ่มtable_cache"ถ้าคุณมีหน่วยความจำ" น่าเสียดายที่table_cacheตัวแปรถูกกำหนดเป็น "จำนวนตารางที่เปิดสำหรับเธรดทั้งหมด" หน่วยความจำที่ใช้โดย MySQL จะเปลี่ยนไปอย่างไรถ้าฉันเพิ่มตัวแปรนี้? ค่าที่ดีคืออะไรในการตั้งค่าเป็น?

5
InnoDB และ MyISAM แตกต่างกันอย่างไร
ฉันใช้ MySQL เป็นฐานข้อมูลของฉันสำหรับโครงการเว็บปัจจุบันของฉัน ฉันใหม่กับ MySQL โปรดอธิบายความแตกต่างระหว่าง InnoDB กับ MyISAM ให้ฉันทราบ
17 mysql  innodb  myisam 

4
การสร้างคอนเทนเนอร์นักเทียบท่า mysql ด้วยแบบแผนฐานข้อมูลที่เตรียมไว้
ฉันต้องการสร้างภาพนักเทียบท่าที่ด้านบนของ mysql ที่มีรูปแบบที่จำเป็นสำหรับแอพของฉันอยู่แล้ว ฉันพยายามเพิ่มบรรทัดลงใน Dockerfile ที่จะนำเข้าโครงร่างของฉันเป็นไฟล์ sql ฉันทำเช่นนั้น (Dockerfile ของฉัน): FROM mysql ENV MYSQL_ROOT_PASSWORD="bagabu" ENV MYSQL_DATABASE="imhere" ADD imhere.sql /tmp/imhere.sql RUN "mysql -u root --password="bagabu" imhere < /tmp/imhere.sql" เพื่อความเข้าใจของฉันที่ไม่ทำงานเพราะภาพนักเทียบท่า mysql ไม่ได้มีลูกค้า mysql (ปฏิบัติที่ดีที่สุดรัฐ "อย่าเพิ่มสิ่งเพียงเพราะพวกเขาจะดีที่จะมี") (ฉันผิดเกี่ยวกับเรื่องนี้?) สิ่งที่อาจเป็นวิธีที่ดีในการทำเช่นนี้? ฉันมีบางสิ่งที่อยู่ในใจ แต่พวกเขาทั้งหมดดูเหมือนการแก้ไขปัญหายุ่ง ติดตั้งไคลเอนต์ mysql ทำในสิ่งที่ฉันต้องทำจากนั้นลบ / กำจัดมัน คัดลอกไบนารีไคลเอนต์ mysql ไปยังรูปภาพทำสิ่งที่ฉันต้องทำแล้วลบออก สร้างสคีมาในเซิร์ฟเวอร์ sql อื่นและคัดลอกไฟล์ db โดยตรง …
17 mysql  docker 

4
ไม่สามารถติดตั้ง mysql-server ใน Ubuntu
ฉันไม่สามารถติดตั้ง mysql-server บนเครื่องเซิร์ฟเวอร์ ubuntu 9.10 ของฉัน เมื่อใช้ apt-get install mysql-server ผลลัพธ์คือ: # apt-get install mysql-server Reading package lists... Done Building dependency tree Reading state information... Done mysql-server is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 120 not upgraded. 2 not fully installed or removed. …
17 ubuntu  mysql  apt 

3
มีวิธีปิดการใช้งานฐานข้อมูลการจัดกลุ่มใน phpMyAdmin หรือไม่?
หากคุณมีชื่อ db เช่น test_db1 test_db2 phpMyAdmin testจะสร้างกลุ่ม กลุ่มจะปรากฏในแถบด้านซ้ายพร้อมฐานข้อมูลที่เกี่ยวข้องที่แสดงอยู่ด้านล่าง ฉันจะปิดการใช้งานคุณสมบัตินี้ได้อย่างไร?
17 mysql  phpmyadmin 

1
วิธีเริ่ม mysql โดยอัตโนมัติหลังจากรีสตาร์ทเซิร์ฟเวอร์ (CentOS + distros อื่น ๆ )
ฉันจะกำหนดค่าเซิร์ฟเวอร์ CentOS Linux ของฉันให้เริ่ม mysql โดยอัตโนมัติเมื่อเซิร์ฟเวอร์เริ่มต้นหลังจากปิดระบบได้อย่างไร ฉันรู้เส้นทาง init.d ... /etc/rc.d/init.d ... และฉันเห็น mysqld ในโฟลเดอร์นี้ ฉันเชื่อว่าการวางรายการ (เช่นโดยลิงก์สัญลักษณ์) ในโฟลเดอร์นี้หมายความว่าพวกเขาควรเริ่มต้นเมื่อเซิร์ฟเวอร์รีสตาร์ท แต่สิ่งนี้ไม่ได้เกิดขึ้นกับฉัน พื้นหลัง โต๊ะกลางของเรารีสตาร์ทเซิร์ฟเวอร์ CentOS เสมือนจริงของเราในช่วงสุดสัปดาห์ เซิร์ฟเวอร์พร้อมใช้งานหลังจากรีสตาร์ท แต่ฐานข้อมูล MySQL ไม่ได้รีสตาร์ทด้วย คิด?
17 linux  mysql  init.d 

9
ไม่สามารถเชื่อมต่อกับ mysql ผ่านตัวเชื่อมต่อ JDBC ผ่าน Tomcat หรือภายนอก
ฉันได้ติดตั้งการติดตั้งคลัง mysql 5.5 และในขณะที่ฉันสามารถเชื่อมต่อกับบริการ mysql ผ่านคำสั่ง mysql ได้และดูเหมือนว่าบริการจะทำงานอยู่ฉันไม่สามารถเชื่อมต่อกับสปริง + tomcat หรือจากตัวเชื่อมต่อ jdbc ภายนอกได้ ฉันใช้ URL ต่อไปนี้: jdbc:mysql://myserver.com:myport/mydb ด้วยชื่อผู้ใช้ / รหัสผ่านที่เหมาะสม แต่ฉันได้รับข้อความต่อไปนี้: server.com: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. the driver has not received any packets from the server. และ Tomcat พ่น: …
17 mysql  tomcat  jdbc 

7
ฉันจะบังคับให้ตาราง MySQL เสียหายได้อย่างไร
ฉันได้เขียนปลั๊กอินNagiosง่ายๆที่เรียกใช้mysqlcheck (ซึ่งตรวจสอบตารางที่เสียหาย) และจะแจ้งเตือนหากมีสิ่งใดเสียหาย อย่างไรก็ตามตอนนี้ตารางของฉันไม่เสียหายเลย ดังนั้นฉันไม่แน่ใจ 100% ว่าปลั๊กอินของฉันทำงานได้ดี ฉันมีเซิร์ฟเวอร์ dev ที่ไม่สำคัญอย่างยิ่ง ฉันจะบังคับหนึ่ง (หรือใด ๆ ) ของตารางที่มีให้เสียหายเพื่อให้ฉันสามารถทดสอบการแจ้งเตือนของ nagios ได้อย่างไร สำหรับการบันทึกเซิร์ฟเวอร์นั้นคือ Ubuntu Dapper และ mysql เป็นเวอร์ชั่น 5.0

6
เพิ่มประสิทธิภาพ apache / php / mysql ที่รันบน VPS สำหรับการโหลดจำนวนมาก
คำถามเกี่ยวกับการปรับเซิร์ฟเวอร์ apache / mysql ให้เหมาะสมบน VPS ที่มี RAM 512m ภายใต้การโหลดปกติทุกอย่างทำงานได้อย่างรวดเร็วไม่มีการเชื่อมต่อที่ล่าช้า อย่างไรก็ตามเมื่อเราได้รับการเข้าชมจำนวนมาก (50k + การเข้าชม) ไซต์จะทำการรวบรวมข้อมูลและใช้เวลา 30 วินาที + เพื่อรับเนื้อหากลับจาก apache ไซต์ทำงานบน Expression Engine (CMS) (ใน PHP) และฉันได้ปฏิบัติตามคำแนะนำในการเพิ่มประสิทธิภาพแบบหนักแล้ว ฉัน googled และตามมาไม่กี่อย่างสำหรับอาปาเช่ด้วยโชคบางอย่างไปถึงที่ตอนนี้ แต่ฉันต้องได้รับการตอบสนองอย่างต่อเนื่อง ฉันคิดว่าสิ่งนี้แตกต่างจากคำถาม 'ปรับให้เหมาะสมสำหรับหน่วยความจำต่ำ' ที่นี่เนื่องจากฉันมี RAM เพียงพอ (สำหรับสิ่งที่ฉันพยายามจะทำ) ฉันแค่ต้องการให้เซิร์ฟเวอร์ไม่สำลักภายใต้ภาระหนัก มีคำแนะนำอะไรบ้าง?

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