मैंने अभी-अभी mysql5 को स्वयं स्थापित किया है, और चूंकि यह हमेशा एक दर्द होता है, इसलिए मैंने उस प्रक्रिया पर ध्यान दिया है जिसका मैंने पालन किया था। यह तेंदुए पर किया गया था, लेकिन मुझे लगता है कि हिम तेंदुए और शेर पर प्रक्रिया समान है। यह सभी मूल प्रश्नों का उत्तर नहीं देता है, लेकिन कम से कम यह एक मार्गदर्शक की बात है।
Mysql इंस्टॉल करना
सबसे पहले, mysql5 सर्वर को इसके साथ स्थापित करें:
sudo port install mysql5-server
बस mysql5
इंस्टॉल कर रहे हैं सर्वर स्थापित नहीं करता है।
कंसोल आउटपुट पर ध्यान दें, इसमें मैकपोर्ट स्थापित करने के निर्देश शामिल हैं। आप इसे एक टेक्स्ट फ़ाइल में कॉपी और पेस्ट करना चाह सकते हैं। निम्नलिखित इस पर आधारित है।
इसके बजाय mysql5-server
, आप mysql55-server
. जैसे पोर्ट का उपयोग कर सकते हैं , mysql56-server
, mariadb-server
या percona-server
MySQL, या एक कांटा का एक और हालिया संस्करण प्राप्त करने के लिए। यदि आप करते हैं, तो कंसोल आउटपुट पर ध्यान दें, क्योंकि निम्नलिखित निर्देश mysql5-server
पर आधारित हैं। और सही निष्पादन योग्य और पथ का उपयोग करने के लिए समायोजित करने की आवश्यकता होगी।
यदि यह एक नया इंस्टॉल है, तो डेटाबेस सेट करें:
sudo -u _mysql mysql_install_db5
यह कुछ सामान्य निर्देशों को आउटपुट करता है, जो मुझे नहीं लगता कि मैकपोर्ट के लिए पूरी तरह उपयुक्त हैं। मेरी राय में mysql5 को डेमॉन के रूप में लोड करने का सबसे अच्छा तरीका मैकपोर्ट की विधि का उपयोग करना है:
sudo port load mysql5-server
साथ ही mysql5 शुरू करने के साथ, यह इसे स्थायी रूप से लोड करता है - यह बूट अप पर चलेगा। इसे बाद में रोकने के लिए:
sudo port unload mysql5-server
यदि आप इसे डेमॉन के रूप में नहीं चलाना चाहते हैं, तो आप इसे कमांड लाइन पर चला सकते हैं:
sudo /opt/local/lib/mysql5/bin/mysqld_safe
कमांड लाइन पर लॉग इन करके जांचें कि यह चल रहा है:
mysql5 -u root -p
डिफ़ॉल्ट रूप से, पासवर्ड खाली होता है, इसलिए संकेत मिलने पर बस एंटर दबाएं। रूट पासवर्ड सेट करने के लिए:
/opt/local/lib/mysql5/bin/mysqladmin -u root password 'correct horse battery staple'
मैकपोर्ट्स php और नेटिव php इंस्टालेशन दोनों को स्थापित करने के लिए निर्देशों का पालन करें।
सेटअप Macports PHP
मान लें कि आपके पास पहले से ही मैकपोर्ट्स PHP स्थापित और चल रहा है। आपको php5-mysql
स्थापित करने की आवश्यकता है (या php54-mysql
. जैसा कुछ आप किस php के संस्करण का उपयोग कर रहे हैं इसके आधार पर):
sudo port install php5-mysql
यह mysql, mysqli और pdo ड्राइवर स्थापित करता है।
अब अपने /opt/local/etc/php5
. में देखें निर्देशिका, यदि आपके पास पहले से php.ini
. नहीं है कॉन्फ़िगरेशन फ़ाइल कॉपी या तो php.ini-development
या php.ini-production
करने के लिए php.ini
. अब php.ini
संपादित करें और जोड़ने के लिए उपयुक्त पंक्तियों की खोज करें:
pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock
और:
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
और:
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
यदि आप इन्हें कॉन्फ़िगर नहीं करना चाहते हैं, तो कनेक्ट होने पर आप इन्हें अपनी php स्क्रिप्ट में स्पष्ट रूप से सेट कर सकते हैं।
यदि आपको कनेक्ट करने में समस्या हो रही है, तो हो सकता है कि आप आस-पास की अन्य सेटिंग देखना चाहें, और php.ini-development
से तुलना करना चाहें और php.ini-production
यह देखने के लिए कि क्या बदला गया है।
फिर नीचे दी गई स्क्रिप्ट, या परीक्षण के समान कुछ का उपयोग करें जिसे आप php से जोड़ सकते हैं।
सेटअप सिस्टम PHP
OS X का php mysql और mysqli सपोर्ट के साथ आता है (लेकिन pdo नहीं), इसलिए आपको बस इतना करना है कि मैकपोर्ट यूनिक्स सॉकेट सेट करें। डिफ़ॉल्ट स्थान /opt/local/var/run/mysql5/mysqld.sock
है . /etc/php.ini
में सही जगह खोजें (यदि आपके पास यह पहले से नहीं है, तो इसे /etc/php.ini.default
से कॉपी करें ) जोड़ने के लिए:
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
और:
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
यदि आप इन्हें कॉन्फ़िगर नहीं करना चाहते हैं, तो कनेक्ट होने पर आप इन्हें अपनी php स्क्रिप्ट में स्पष्ट रूप से सेट कर सकते हैं।
टेस्ट स्क्रिप्ट
यह जांचने के लिए यहां एक PHP स्क्रिप्ट है कि यह कनेक्ट हो सकता है। जाहिर है, आप आमतौर पर अपनी PHP स्क्रिप्ट में रूट खाते का उपयोग नहीं करेंगे ताकि आप कनेक्शन के परीक्षण के लिए पहले एक और MySQL खाता बनाना चाहें। PDO कनेक्शन नेटिव php के लिए काम नहीं करेगा क्योंकि इसमें PDO ड्राइवर नहीं हैं।
<?php
$username = 'root';
$password = 'correct horse battery staple';
/* Try mysql: */
$connection = mysql_connect('localhost', $username, $password);
if ($connection === FALSE) {
echo "Error connecting using mysql.\n\n";
echo "Error ".mysql_errno().": ".mysql_error()."\n\n";
}
else {
echo "Connected using mysql.\n\n";
mysql_close($connection);
}
/* Try mysqli: */
$connection = mysqli_connect('localhost', $username, $password);
if ($connection->connect_error) {
echo "Error connecting using mysqli:\n\n";
echo "Error ".$connection->connect_errno.": ".$connection->connect_error."\n\n";
}
else {
echo "Connected using mysqli.\n\n";
$connection->close();
}
/* Try pdo:
* Won't work for the version of php supplied with OS X. */
try {
$pdo = new PDO('mysql:host=localhost', $username, $password);
echo "Connected using PDO.\n\n";
$pdo = null;
}
catch(PDOException $e) {
echo "Error connecting using PDO:\n\n";
echo "Error ".$e->getCode().": ".$e->getMessage()."\n\n";
}