สภาพแวดล้อมการดีบัก: Redhat9.0Apache1.3.29Mysql3.23.58PHP4.3.4
ฉันจะไม่เข้าสู่การติดตั้งระบบ Linux นี่เป็นทักษะพื้นฐาน จริงๆ แล้วบทความนี้ควรนำไปใช้กับระบบ Linux อื่นๆ เช่น Redhat เท่านั้น อย่าลืมติดตั้ง apache เริ่มต้นของระบบ, mysql, php และซอฟต์แวร์ที่เกี่ยวข้องเมื่อติดตั้ง Redhat9.0 หากมีการติดตั้งไว้แล้ว โปรดใช้ rpm-e* เพื่อลบแพ็คเกจที่ติดตั้ง
1.ติดตั้ง Mysql3.23.58
พูดตามตรง มันเป็นวิธีที่เป็นไปได้มากกว่าในการติดตั้งแพ็คเกจ rpm โดยตรงที่จัดทำโดยเว็บไซต์อย่างเป็นทางการของ Mysql แพ็คเกจ rpm ที่จัดทำโดยเว็บไซต์อย่างเป็นทางการนั้นโดยทั่วไปจะซิงโครไนซ์กับการเปิดตัวแพ็คเกจ tar อย่างน้อยการติดตั้งแพ็คเกจ rpm จะอยู่ที่ด้านหลัง จะไม่พบไฟล์ไลบรารี mysql ระหว่างการดีบัก แต่ก็ยังจำเป็นต้องพูดถึงขั้นตอนการติดตั้งแบบกำหนดเองที่นี่ ท้ายที่สุดแล้ว ชาวเน็ตก็มีการติดตั้งแบบกำหนดเองค่อนข้างมาก
การซื้อซอฟต์แวร์: http://www.mysql.com/downloads/index.html
ขั้นตอนการติดตั้ง:
tarzxvfmysql-3.23.58.tar.gz
cdmysql-3.23.58
./configure--prefix=/usr/local/mysql--sysconfdir=/etc--localstatedir=/var/lib/mysql
ทำ
ทำการติดตั้ง
#prefix=/usr/local/mysqlm ไดเร็กทอรีเป้าหมายสำหรับการติดตั้ง mysql
#sysconfdir=/etcmy.ini เส้นทางไฟล์การกำหนดค่า
#localstatedir=/var/lib/mysql เส้นทางการจัดเก็บฐานข้อมูล
หลังจากการติดตั้ง คุณจะต้องเริ่มต้นฐานข้อมูล แน่นอนว่าคุณไม่จำเป็นต้องทำตามขั้นตอนนี้หากคุณกำลังอัพเกรด
/usr/local/mysql/bin/mysql_install_db
หากระบบไม่มีผู้ใช้ mysql ควรทำขั้นตอนต่อไปนี้:
useradd-Mord/var/lib/mysql-s/bin/bash-c "MySQLServer"-u27mysql
จากนั้นฉันก็เริ่ม mysql
/usr/local/mysql/bin/safe_mysqld&
ตกลง ก่อนอื่นให้ดูว่า mysql สามารถทำงานได้ตามปกติหรือไม่
mysql-urootmysql.mysql
ภายใต้สถานการณ์ปกติ ฐานข้อมูลไม่สามารถเชื่อมต่อได้ตามปกติ และโดยปกติข้อความแสดงข้อผิดพลาดจะเป็น:
ข้อผิดพลาด 2002: ไม่สามารถเชื่อมต่อกับ LocalMySQLserverthroughsocket'/var/lib/mysql/mysql.sock'(2)
ที่จริงแล้ว คำถามที่ถูกถามบ่อยที่สุดบนอินเทอร์เน็ตคือคำถามทั้งหมด โดยบอกว่า mysqld.sock ไม่สามารถเชื่อมโยงได้ ที่จริงแล้ว คุณอาจดูบันทึกข้อผิดพลาดของ mysql เพื่อทำความเข้าใจว่าเกิดอะไรขึ้น อยู่ใน /var/lib/mysql/ *.err คุณจะพบว่า mysql ไม่สามารถเริ่มได้เนื่องจากสิทธิ์ของ /var/lib/mysql ไม่อนุญาตให้เข้าถึงบริการ mysql ตามค่าเริ่มต้น mysql ภาษาอังกฤษจะเรียกผู้ใช้ mysql เริ่มบริการ ตอนนี้คุณรู้สาเหตุแล้ว คุณก็รู้แล้วว่าทำไมจึงไม่สามารถเริ่มบริการได้ ง่ายมาก เราจำเป็นต้อง chown-Rmysql:mysql/var/lib/mysql เท่านั้น หากยังไม่สามารถเริ่มต้นได้ ให้ทำการดีบักการอนุญาตอย่างช้าๆ อย่างไรก็ตาม โดยทั่วไปแล้วความล้มเหลวในการเริ่มต้นเป็นปัญหาเกี่ยวกับสิทธิ์
หากคุณยังคงไม่สามารถเริ่มต้นได้ ให้ใช้การตั้งค่าการอนุญาตที่ซับซ้อนกว่านี้ของฉัน อย่างไรก็ตาม ฉันทำสิ่งนี้ทุกครั้ง และโดยปกติจะไม่มีปัญหา ดูด้านล่าง:
chown-Rroot/usr/local/mysql
chgrp-Rmysql/usr/local/mysql
chown-Rroot/usr/local/mysql/bin
chgrp-Rmysql/usr/local/mysql/bin
chgrp-Rmysql/var/lib/mysql
chmod777/var/lib/mysql
chown-Rroot/var/lib/mysql/mysql
chgrp-Rmysql/var/lib/mysql/mysql
chmod777/var/lib/mysql/mysql
chown-Rroot/var/lib/mysql/mysql/*
chgrp-Rmysql/var/lib/mysql/mysql/*
chmod777/var/lib/mysql/mysql/*
chmod777/usr/local/mysql/lib/mysql/libmysqlclient.a
หลังจากทำตามขั้นตอนข้างต้นเสร็จแล้ว ให้คัดลอกสคริปต์ในไดเร็กทอรีการคอมไพล์ของคุณ
cpsupport-files/mysql.server/etc/rc.d/init.d/mysqld
chkconfig --addmysqld
ใช้การตั้งค่า ntsysv เพื่อให้ mysql ทำงานโดยอัตโนมัติทุกครั้งที่เริ่มทำงาน
ตกลง ตอนนี้ติดตั้ง mysql แล้ว คุณสามารถเริ่มบริการ mysql ของคุณได้เช่นนี้
/etc/rc.d/init.d/mysqldstart
ขั้นตอนต่อไปมีความสำคัญมากขึ้น
ln -s/usr/local/mysql/lib/mysql/usr/lib/mysql
ln -s/usr/local/mysql/include/mysql/usr/include/mysql
คุณไม่จำเป็นต้องทำตามขั้นตอนนี้ คุณสามารถปรับแต่งพาธไฟล์ไลบรารีของ myslq ได้เมื่อคอมไพล์ซอฟต์แวร์อื่น แต่ฉันยังคงต้องการลิงก์ไฟล์ไลบรารีไปยังตำแหน่งเริ่มต้น เพื่อที่คุณจะได้ไม่ต้องระบุมันเมื่อคอมไพล์ ซอฟต์แวร์เช่น PHP, Vpopmail ฯลฯ ที่อยู่ไฟล์ไลบรารีของ mysql