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

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

7
ส่งต่อพอร์ตโลคัลหรือไฟล์ซ็อกเก็ตไปยังไฟล์ซ็อกเก็ตระยะไกล
คำถามอย่างรวดเร็ว - ฉันใช้งานกล่องลินุกซ์สองช่องตัวหนึ่งซึ่งเป็นเดสก์ท็อปของฉันและอีก VPS เพื่อเหตุผลด้านความปลอดภัยในส่วน VPS ฉันเลือกใช้การเชื่อมต่อซ็อกเก็ตกับ MySQL ( /var/run/mysqld/mysql.sock) ฉันรู้ว่าฉันสามารถขุดอุโมงค์แบบนี้ได้: ssh -L 3307:127.0.0.1:3306 user@site.comถ้าฉันตั้งค่าเซิร์ฟเวอร์ sql ระยะไกลเพื่อฟังบนพอร์ตบางตัว แต่สิ่งที่ฉันอยากรู้คือฉันสามารถทำอะไรได้บ้าง: ssh -L /path/to/myremotesqlserver.sock:/var/run/mysqld/mysql.sockดังนั้นการขุดอุโมงค์สองซ็อกเก็ตซึ่งต่างจากสองพอร์ต โซลูชันที่ได้รับการยอมรับอย่างสมบูรณ์ก็คือการส่งต่อพอร์ตโลคัลไปยังไฟล์ซ็อกเก็ตระยะไกล แต่ถ้าเป็นไปได้ฉันพยายามไม่ให้เซิร์ฟเวอร์ tcp ทำงานบนกล่องระยะไกล (และใช่ฉันรู้ว่า TCP จะง่ายขึ้น)

4
วิธีที่จะหลบหนี! ในรหัสผ่าน?
วิธีใดวิธีหนึ่งที่จะหนีจากเครื่องหมายอัศเจรีย์ในรหัสผ่าน: $ mysql -umyuser -pone_@&!two -bash: !two: event not found การลองแบ็กสแลชที่เห็นได้ชัดไม่ได้ช่วยอะไร: $ mysql -umyuser -pone_@&\!two [1] 22242 -bash: !two: command not found name@domain.com [~]# ERROR 1045 (28000): Access denied for user 'myuser'@'localhost' (using password: YES) การค้นหา google ของฉันทั้งหมดแนะนำว่าแบ็กสแลชจะช่วยได้ แต่ก็ไม่ได้ ไม่มีวิธีใช้เครื่องหมายคำพูดตามที่แนะนำในคำถามนี้ สายจะถูกใช้ในนามแฝง. bashrc ไม่ต้องกังวลชื่อผู้ใช้และรหัสผ่านที่แสดงเป็นตัวอย่างเท่านั้นและไม่ได้ใช้ในการผลิต!
24 linux  mysql  bash 

16
ทำไมมันไม่ดีที่จะมีรหัสผ่านผู้ใช้ mysql อ่อนแอ
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Server Fault อพยพ 9 ปีที่ผ่านมา ฉันได้รับการโต้เถียงกับการปรับแต่งของ "คุณไม่ต้องการรหัสผ่านผู้ใช้ mysql ที่แข็งแกร่งเพราะเพื่อที่จะใช้มันพวกเขาจะสามารถเข้าถึงเซิร์ฟเวอร์ของคุณได้แล้ว" เรากำลังพูดถึงรหัสผ่าน 4 หลักซึ่งเป็นคำในพจนานุกรมภาษาอังกฤษมาตรฐานในเว็บไซต์ธุรกิจออนไลน์ โดยไม่ส่งผลต่อคำตอบด้วยความรู้และประสบการณ์ของฉันเองฉันต้องการแสดงคำตอบบางอย่างจากแหล่งข้อมูลบุคคลที่สามที่ไม่สนใจ ใครสนใจที่จะพูดสอดในสิ่งนี้? การเขียนโปรแกรม / คำตอบในทางปฏิบัติจะได้รับการชื่นชม
23 php  mysql  security  password 

5
สคริปต์ติดตั้ง MySQL บน Ubuntu
ฉันต้องเขียนสคริปต์ที่จะสร้างเซิร์ฟเวอร์ของฉันจากการติดตั้งเซิร์ฟเวอร์ Ubuntu ใหม่ สิ่งต่าง ๆ เช่น Apache และ PHP นั้นจำเป็นต้องติดตั้ง MySQL ปัญหาเดียวที่นี่คือเมื่อฉันติดตั้ง MySQL ด้วย apt-get ณ จุดหนึ่งการติดตั้งจะเปิดกล่องโต้ตอบที่ให้ฉันพิมพ์รหัสผ่านรูทของฉัน คือต้องมีปฏิสัมพันธ์กับมนุษย์ ฉันจะข้ามหน้าจอนี้ระหว่างการติดตั้งและหลีกเลี่ยงการโต้ตอบกับมนุษย์ในขณะที่ยังใช้ apt-get เพื่อติดตั้ง MySQL ได้อย่างไร


2
เซิร์ฟเวอร์ประเภทใดที่ฉันต้องใช้ในการจัดการ 10 ล้านคำขอและแบบสอบถาม mySQL ต่อวัน [ปิด]
คำถามนี้ไม่น่าจะช่วยผู้เข้าชมในอนาคต มันเกี่ยวข้องเฉพาะกับพื้นที่ทางภูมิศาสตร์ขนาดเล็กช่วงเวลาที่เฉพาะเจาะจงหรือสถานการณ์ที่แคบเป็นพิเศษซึ่งโดยทั่วไปไม่สามารถใช้ได้กับผู้ชมทั่วโลกของอินเทอร์เน็ต สำหรับความช่วยเหลือในการทำคำถามนี้มากขึ้นบังคับในวงกว้างไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นมือใหม่ในการดูแลเซิร์ฟเวอร์และฉันกำลังมองหาบริการโฮสติ้งที่ทรงพลังเพื่อโฮสต์เว็บไซต์ใหม่ของฉัน เว็บไซต์นี้เป็นแบ็คเอนด์ของเกมออนไลน์บนมือถือและมันจะ: จัดการกับคำขอ HTTPS ได้สูงสุด 10 ล้านคำขอและแบบสอบถาม mySQL ต่อวัน เก็บไฟล์ได้สูงสุด 2000 GB บนฮาร์ดดิสก์ อาจถ่ายโอนข้อมูล 5000 GB ทั้งในและนอกต่อเดือน มันทำงานบน PHP และ mySQL มี 10 ล้านเร็กคอร์ดในฐานข้อมูล mySQL สำหรับแต่ละเร็กคอร์ดมีฟิลด์ 5-10 ฟิลด์แต่ละ 100 ไบต์ ฉันไม่รู้จริงๆว่าฉันต้องใช้เซิร์ฟเวอร์ประเภทใดเพื่อรองรับข้อกำหนดเหล่านี้คำถามของฉันคือ: CPU / RAM ใดที่ฉันต้องการสำหรับเซิร์ฟเวอร์เฉพาะหรือ VPS บริษัท โฮสติ้งใดที่สามารถให้บริการเซิร์ฟเวอร์เฉพาะหรือ VPS ประเภทนี้ได้? แล้วคอมพิวเตอร์คลาวด์ล่ะ ฉันค้นคว้า Amazon EC2 แล้ว …

3
mysql: ไม่สามารถโหลดจาก mysql.proc ตารางอาจเสียหาย
Mysql เริ่ม: /usr/bin/mysqld_safe --datadir=/srv/mysql/myDB --log-error=/srv/mysql/logs/mysqld-myDB.log --pid-file=/srv/mysql/pids/mysqld-myDB.pid --user=mysql --socket=/srv/mysql/sockets/mysql-myDB.sock --port=3700 แต่เมื่อฉันพยายามทำบางสิ่ง: ERROR 1548 (HY000) at line 1: Cannot load from mysql.proc. The table is probably corrupted จะแก้ไขได้อย่างไร? $ mysql -V mysql Ver 14.14 Distrib 5.1.58, for debian-linux-gnu (x86_64) using readline 6.2 $ lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 11.10 Release: …
22 ubuntu  mysql 

6
mysqld.sock ควรประกอบด้วยอะไรทำไมฉันไม่มีมัน
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Server Fault อพยพ 8 ปีที่ผ่านมา ไม่มีใครรู้ว่าทำไม/var/run/mysqld/mysqld.sockไฟล์ซ็อกเก็ตของฉันจะไม่อยู่ในคอมพิวเตอร์ของฉันเมื่อฉันติดตั้ง (หรือติดตั้งใหม่) MySQL 5.1? ตอนนี้เมื่อฉันพยายามเริ่มต้นเซิร์ฟเวอร์ด้วย mysqld ฉันได้รับข้อผิดพลาดเช่นCan't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connectแต่การสร้างไฟล์ว่างเปล่าด้วยชื่อนั้น (ตามที่แนะนำบนฟอรัม Ubuntu) ไม่สำเร็จ ฉันมีทั้ง mysql และ postgres ที่ให้บริการได้ดีจนกระทั่งฉันอัพเกรดเป็น natty เมื่อไม่นานมานี้; ฉันใช้เวลาหลายชั่วโมงในการเดินผ่านฐานข้อมูลทั้งสองพยายามหาว่าเกิดอะไรขึ้น ฉันสามารถละทิ้ง postgres ได้ แต่ฉันไม่สามารถทำงานได้หากไม่มีสำเนา mysql ที่ใช้งานได้ ส่วนที่แปลกที่สุด: ฉันใช้ Kubuntu และความเข้าใจของฉันคือ …

4
MySQL สามารถใช้ประโยชน์จาก RAM ขนาด 64 GB ได้อย่างมีประสิทธิภาพหรือไม่
เราพบปัญหาในการสืบค้นตารางที่มีประมาณ 50 ล้านแถวและมีขนาดดัชนี 4 GB (ขนาดตารางประมาณ 6 GB) ส่งผลให้เซิร์ฟเวอร์ฐานข้อมูลเปลี่ยนหน่วยความจำและชะลอความเร็วลงอย่างมาก ฉันค่อนข้างแน่ใจว่าสิ่งนี้เกี่ยวข้องกับขนาดของเทมเพลตที่เกินขนาดและมันถูกสลับเป็นดิสก์ ถ้าฉันอัพเกรดเซิร์ฟเวอร์ฐานข้อมูลของฉันจาก 32 GB of RAM เป็น 64 GB RAM ฉันสงสัยว่าฐานข้อมูล MySQL จะสามารถใช้ประโยชน์จากหน่วยความจำเพิ่มเติมนี้ได้อย่างเต็มที่และไม่สลับหรือไม่ ฉันได้ลองใช้ตัวแปรสองสามอย่าง (เช่น KEY_BUFFER_SIZE ฯลฯ ... ) และดูเหมือนว่าพวกเขาสนับสนุนการตั้งค่ามากกว่า 64 GB อย่างไรก็ตามเอกสาร MySQL กล่าวว่า tmp_table_size สูงสุดที่ 4 GB ดังนั้นการอัพเกรดหน่วยความจำจะคุ้มหรือไม่ ปัญหา "การสืบค้นตารางขนาดใหญ่" จะได้รับประโยชน์จากสิ่งนี้หรือไม่และจะไม่ช่วยเนื่องจากขีด จำกัด 4 GB หรือไม่ ฉันรู้ว่าอาจมีโซลูชันอื่น ๆ เช่นการปรับโครงสร้างตารางเพื่อแบ่งพาร์ติชันด้วยวิธีที่แตกต่างกัน ฯลฯ …

6
จากเชลล์สคริปต์ฉันจะตรวจสอบว่ามีฐานข้อมูล MySQL อยู่ได้อย่างไร
mysqladmin -uroot create fooส่งคืนสถานะการออก 1 หากfooมีอยู่และ 0 เป็นอย่างอื่น แต่แน่นอนว่ามันจะสร้างฐานข้อมูลด้วยหากยังไม่มีอยู่ มีวิธีง่ายๆในการตรวจสอบว่ามีฐานข้อมูลอยู่หรือไม่?
22 mysql  database  bash  shell 

3
ผู้ใช้ MySQL เปลี่ยนที่อยู่ IP ของพวกเขา วิธีที่ดีที่สุดในการจัดการกับสิ่งนี้คืออะไร?
ฉันมีจำนวนผู้ใช้ที่กำลังเชื่อมต่อกับ MySQL กว่า VPN เพื่อให้เรามีเงินอุดหนุนตามสายของgrant select on foo.* to user@ipaddress1และอื่น ๆ สัปดาห์นี้ IP ที่ใช้บน VPN เปลี่ยนเป็นaddress2ดังนั้นจึงuser@ipaddress1ไม่สามารถใช้งานได้อีกต่อไป เป็นวิธีที่ดีที่สุดในการจัดการปรับปรุงผู้ใช้และให้ข้อมูลใน MySQL เพื่อสะท้อนการเปลี่ยนแปลงนี้คืออะไร โปรดทราบว่าการให้เงินทุนมีความยุ่งเหยิงอย่างรุนแรงเนื่องจากผู้ใช้บางคนได้รับการยกเว้นจากคอลัมน์บางคอลัมน์ในตารางเฉพาะดังนั้นเราจึงต้องทำเงินช่วยเหลือรอบวัตถุที่ถูกแยกออก
22 mysql 

6
ฉันจะอนุญาตการเชื่อมต่อ MySQL ผ่าน SELinux ได้อย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Server Fault อพยพ 8 ปีที่ผ่านมา ฉันต้องการปล่อยให้ SELinux ทำงานบนเซิร์ฟเวอร์เพื่อความปลอดภัยที่เพิ่มขึ้นที่ถูกกล่าวหา ฉันมักจะปิดการใช้งาน SELinux เพื่อให้ทุกอย่างทำงาน ฉันจะบอก SELinux ให้อนุญาตการเชื่อมต่อ MySQL ได้อย่างไร สิ่งที่ฉันพบมากที่สุดในเอกสารคือบรรทัดนี้จาก mysql.com: หากคุณใช้งานภายใต้ Linux และเปิดใช้งาน Security-Enhanced Linux (SELinux) ตรวจสอบให้แน่ใจว่าคุณได้ปิดใช้งานการป้องกัน SELinux สำหรับกระบวนการ mysqld ว้าว ... มันมีประโยชน์จริงๆ
21 mysql  selinux 

4
ไม่มีทรัพยากรสำหรับ mysqldump
ฉันพยายามที่จะทำ mysqldump บนเซิร์ฟเวอร์Windowsและฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: mysqldump: Got error: 23: Out of resources when opening file '.\db\sometable.MYD' (Errcode: 24) when using LOCK TABLES นี่คือคำสั่งที่ฉันใช้: mysqldump -u user -p"pass" --lock-tables --default-character-set=latin1 -e --quick databasename > "query.sql" การเริ่มบริการ mysql ใหม่ไม่ได้ช่วยอะไร ฉันได้รับข้อความสำหรับตารางเดียวกันเสมอ ฉันพยายามลดตัวแปรtable_cacheและmax_connectionsจาก 64 เป็น 32 และ 30 เป็น 10 ตามลำดับ แต่ฉันยังคงได้รับข้อผิดพลาดเพียงครั้งนี้สำหรับตารางอื่น (และจากนี้ไปข้อความแสดงข้อผิดพลาดจะกล่าวถึงตารางที่สองเสมอ) สคริปต์เดียวกันกำลังทำงานบนเซิร์ฟเวอร์Windowsอื่น ๆ ที่มีฐานข้อมูลเดียวกันโดยไม่มีปัญหา …
21 mysql 

5
OpenSSL สามารถใช้เพื่อดีบักการเชื่อมต่อ SSL กับเซิร์ฟเวอร์ MySQL ได้หรือไม่?
ฉันต้องการให้เว็บเซิร์ฟเวอร์พูดกับเซิร์ฟเวอร์ฐานข้อมูล MySQL ผ่านการเชื่อมต่อ SSL เว็บเซิร์ฟเวอร์เรียกใช้ CentOS5 เซิร์ฟเวอร์ฐานข้อมูลรัน FreeBSD ใบรับรองดังกล่าวจัดทำโดย CA DigiCert ระดับกลาง MySQL ควรใช้ ssl ตามmy.cnf: # The MySQL server [mysqld] port = 3306 socket = /tmp/mysql.sock ssl ssl-capath = /opt/mysql/pki/CA ssl-cert = /opt/mysql/pki/server-cert.pem ssl-key = /opt/mysql/pki/server-key.pem เมื่อฉันเริ่ม MySQL daemon จะเริ่มโดยไม่มีข้อผิดพลาด สิ่งนี้ชี้ให้เห็นว่าไฟล์ใบรับรองสามารถอ่านได้ทั้งหมด แต่เมื่อฉันพยายามเชื่อมต่อจากเว็บเซิร์ฟเวอร์ไปยังเซิร์ฟเวอร์ฐานข้อมูลฉันได้รับข้อผิดพลาด: [root@webserver ~]# mysql -h mysql.example.org -u user …
21 mysql  ssl 

3
ค่าสูงสุดของ max_connections ในอินสแตนซ์ของ AWS RDS ขนาดเล็ก
ปัจจุบันค่าสำหรับmax_connectionsพารามิเตอร์ในรูปแบบเซิร์ฟเวอร์ MySQL RDS t1.micro {DBInstanceClassMemory/12582880}คือ 32 เนื่องจากเซิร์ฟเวอร์ของฉันไม่อนุญาตให้มีการเชื่อมต่อใด ๆ หลังจาก 32 ค่าสูงสุดของความปลอดภัยสำหรับmax_connectionsฉันที่สามารถใช้กับอินสแตนซ์ขนาดเล็กคืออะไร

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