काढ़ा macOS पर mysql स्थापित करें


344

मैं मैक ओएस 10.6 पर Homebrew का उपयोग करके MySQL सेटअप करने की कोशिश कर रहा हूँ brew install mysql 5.1.52

सबकुछ ठीक हो जाता है और मैं इसके साथ सफल भी हूं mysql_install_db
हालाँकि जब मैं सर्वर का उपयोग करने के लिए कनेक्ट करने का प्रयास करता हूं:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'

मुझे मिला:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: 'localhost' पर सर्वर से कनेक्ट करें 
विफल त्रुटि: 'उपयोगकर्ता के लिए पहुँच अस्वीकृत' रूट '@' लोकलहोस्ट '(पासवर्ड का उपयोग करते हुए: नहीं)'

मैंने भी एक्सेस करने की कोशिश की है mysqladmin or mysql using -u root -proot,
लेकिन यह पासवर्ड के साथ या उसके बिना काम नहीं करता है।

यह बिल्कुल नई मशीन पर एक नया इंस्टालेशन है और जहाँ तक मुझे पता है कि नए इंस्टॉलेशन को रूट पासवर्ड के बिना एक्सेस किया जाना चाहिए। मैंने भी कोशिश की:

/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation

लेकिन मुझे भी मिलता है

ERROR 1045 (28000): उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग कर: NO) के लिए प्रवेश निषेध है।

काढ़ा स्थापित करने की कोशिश करें कच्चे। Github.com/adamv/homebrew-alt/master/versions/mysql51.rb
पार्कर

इन्हें भी देखें: apple.stackexchange.com/a/199747/152271 ... यह काढ़ा स्थापित नहीं है, लेकिन यह मेरे लिए काम किया जब यहाँ कोई भी जवाब नहीं दिया
sudo rm -rf slash

1
FWIW मैं इस्तेमाल किया mysql -u rootऔर यह यहाँ काम किया: |
रोजरपैक

जवाबों:


684

मुझे लगता है कि पहले से स्थापित mysql के पुराने संस्करणों के साथ कोई भी इस स्थिति में समाप्त हो सकता है। मुझे भी यही समस्या थी और उपरोक्त किसी भी समाधान ने मेरे लिए काम नहीं किया। मैंने इसे इस प्रकार तय किया:

शराब की भठ्ठी का इस्तेमाल किया removeऔर स्क्रिप्ट को cleanupउतार दिया launchctl, फिर mysql निर्देशिका को /usr/local/varहटा दिया, मेरे मौजूदा को हटा दिया/etc/my.cnf (यह छोड़ दें कि आपके ऊपर एक, इसे लागू करना चाहिए) और लॉन्चक्ट प्लिस्ट

प्लिस्ट के लिए स्ट्रिंग अपडेट किया गया। ध्यान दें कि आपकी वैकल्पिक सुरक्षा स्क्रिप्ट निर्देशिका आपके द्वारा स्थापित किए जा रहे MySQL के किस संस्करण पर आधारित होगी।

क्रमशः:

brew remove mysql

brew cleanup

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

sudo rm -rf /usr/local/var/mysql

मैं तो खरोंच से शुरू कर दिया:

  1. के साथ mysql स्थापित किया brew install mysql
  2. सुझाए गए आदेश काढ़ा भागा: (नोट देखें: नीचे)

    unset TMPDIR
    
    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
  3. इस mysql.server startपर लॉग इन करने में सक्षम होने के लिए, कमांड के साथ mysql शुरू करें

  4. वैकल्पिक सुरक्षा स्क्रिप्ट का उपयोग किया:

    /usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation
  5. launchctlकाढ़ा पैकेज स्क्रिप्ट उत्पादन से अनुभाग का पालन ​​किया जैसे,

    #start
    launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    
    #stop
    launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

नोट:--force पर बिटbrew cleanup इच्छा भी सफाई पुरानी केग, लगता है कि यह एक नया-ish homebrew सुविधा है।

दूसरे पर ध्यान दें: एक टिप्पणीकार कहता है कि चरण 2 की आवश्यकता नहीं है। मैं इसका परीक्षण नहीं करना चाहता, इसलिए YMMV!


30
शानदार जवाब, धन्यवाद! जोड़ने वाली एक बात: हालांकि इसका उत्तर में उल्लेख किया गया है, मैं इसे याद कर रहा हूं और इस तरह से 6 घंटे के भीतर खो जाने की कोशिश कर रहा है जो कि एचडीएक्सएक्सएक्स पर स्थापित होने की कोशिश कर रहा है। सुनिश्चित करें कि आप पुराने mysql निर्देशिका / usr / स्थानीय / var / mysql को हटा दें यदि आपके पास पुनर्स्थापित करने से पहले MySql का पिछला संस्करण है। अन्यथा आप पासवर्ड सेट करने के लिए शुरू में रूट के रूप में लॉग इन नहीं कर पाएंगे और आप अपने कंप्यूटर पर चिल्लाते हुए बहुत समय बिताएंगे।
tronbabylove

3
~ / पुस्तकालय / LaunchAgents में जाकर देखें कि mysql के लिए .plist फ़ाइल को वास्तव में क्या कहा जाता है - मेरे मामले में यह homebrew द्वारा स्थापित किया गया था, इसलिए आपको उपरोक्त स्थापना रद्द करने की प्रक्रिया को संशोधित करने की आवश्यकता है।
मार्को

7
क्योंकि यह धागा पुराना है, ऊपर "लॉन्चरल अनलोड" लाइन अब गलत है। फ़ाइल homebrew इंस्टॉल को अब "com.mysql.mysqld.plist" नहीं कहा जाता है, इसे "homebrew.mxcl.mysql.plist" कहा जाता है। लाइन को अब "लॉन्चक्टल अनलोड -w ~ / लाइब्रेरी / लॉन्चअगेंट्स / होमब्रेव.एमएक्सक्लाम.इस्क्लि.प्लिस्ट" पढ़ना चाहिए
टॉमी

4
मेरे पास `[/ / लाइब्रेरी / लॉन्चअगेंट] $ ls com.adobe.ARM.202f4087f2bbde52e3ac2df389f53a4f123223c9cc56a8f5aaaffaaa.plist com.mysql.mysqld.plist.gov.in/videbook.hr/hatbook.gov.in / LaunchAgents` लेकिन उन्हें उतारने सेlaunchctl: Couldn't stat("com.mysql.mysqld.plist"): No such file or directory
Ava

9
mysql_install_db को अब छोड़ा जा सकता है, काढ़ा सही निर्देशन में स्वचालित रूप से सर्वर बनाता है।
rfreytag

52

यहाँ आपके मैक से सभी MySQL से छुटकारा पाने के लिए विस्तृत निर्देश दिए गए हैं, फिर इसे ब्रू वे को स्थापित करना जैसा कि सेडोर्नर ने ऊपर लिखा है:

टेक लैब के अनुसार पूरी तरह से MySQL निकालें

  • ps -ax | grep mysql
  • बंद करो और killकिसी भी MySQL प्रक्रियाओं
  • sudo rm /usr/local/mysql
  • sudo rm -rf /usr/local/var/mysql
  • sudo rm -rf /usr/local/mysql*
  • sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  • sudo rm -rf /Library/StartupItems/MySQLCOM
  • sudo rm -rf /Library/PreferencePanes/My*
  • launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  • संपादित करें /etc/hostconfigऔर लाइन निकालेंMYSQLCOM=-YES-
  • rm -rf ~/Library/PreferencePanes/My*
  • sudo rm -rf /Library/Receipts/mysql*
  • sudo rm -rf /Library/Receipts/MySQL*
  • sudo rm -rf /private/var/db/receipts/*mysql*
  • sudo rm -rf /tmp/mysql*
  • चलाने की कोशिश करो mysql, यह काम नहीं करना चाहिए

इस StackOverflow जवाब से उपयोगकर्ता प्रति व्यक्ति Sedorner काढ़ा स्थापित करें

  • brew doctor और किसी भी त्रुटि को ठीक करें
  • brew remove mysql
  • brew cleanup
  • brew update
  • brew install mysql
  • unset TMPDIR

    mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp # whoami is executed inline
  • mysql.server start

  • Brew के कमांड को चलाने के लिए, MySQL को जोड़ें launchctlताकि यह अपने आप स्टार्टअप पर लॉन्च हो जाए

mysql अब काम करना चाहिए और हर समय उम्मीद के मुताबिक चलना चाहिए

गॉडस्पीडः।


3
मैं भी पहले /tmp/mysql.sock को हटाए बिना उपरोक्त सभी को करके काट लिया।
TKH

धन्यवाद, +1। युगल टिप्पणियाँ: आप कहते हैं sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist, तो कुछ कदम बाद में आप launchctl unloadउस फ़ाइल का प्रयास करते हैं ... लेकिन यह वहां नहीं होगा, क्योंकि आपने इसे हटा दिया था। इसके अलावा, मेरे लिए कदम brew install mysqlदौड़ा mysql_install_db, इसे दो बार करने की जरूरत नहीं है।
मैडब्रिक्स

@CorySimmons का मतलब यह है कि मुझे अपने नाम का उपयोग करना चाहिए, या आपके आदेशों rootके whoamiहिस्से में?
YPCrumble

1
पुष्टि की गई - हूमी मेरा नाम है (मैंने इस्तेमाल किया root)। यह बहुत अच्छा काम किया।
YPCrumble

ध्यान दें कि /etc/hostconfigYosemite और उससे आगे नहीं है ( superuser.com/questions/850974/… )
ecbrodie

44

एक ही समस्या थी। ऐसा लगता है कि सेट किए गए निर्देशों या शुरुआती तालिकाओं के साथ कुछ गड़बड़ है। यह है कि मैं अपने मशीन पर mysqld चल रहा हूं।

यदि mysqld सर्वर आपके मैक पर पहले से चल रहा है, तो इसे पहले बंद करें:

launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist

निम्नलिखित कमांड के साथ mysqld सर्वर शुरू करें जो किसी को भी पूर्ण अनुमति के साथ लॉग इन करने देता है।

mysqld_safe --skip-grant-tables

फिर चलाएं mysql -u rootजो अब आपको पासवर्ड के बिना सफलतापूर्वक लॉग इन करने देना चाहिए। निम्न कमांड को सभी रूट पासवर्ड को रीसेट करना चाहिए।

UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;

अब अगर आप mysqld_safe की रनिंग कॉपी को मारते हैं और स्किप-ग्रांट-टेबल विकल्प के बिना इसे फिर से शुरू करते हैं, तो आपको अपने द्वारा mysql -u root -pसेट किए गए नए पासवर्ड से लॉग इन करने में सक्षम होना चाहिए ।


यह मेरे लिए काम किया! इससे पहले कि मैं यह कोशिश करूं और मैंने पासवर्ड का अनुमान लगाना शुरू कर दिया और पासवर्ड 'पासवर्ड' समाप्त हो गया। इसलिए कोशिश करें कि
cointilt

Mysqld_safe को अनुदान तालिका के बिना लॉन्च करना मेरे लिए काम किया। हालाँकि, UPDATE ने काम नहीं किया क्योंकि मेरे पास mysql.user सेलेक्ट * पर कोई रिकॉर्ड नहीं है; चूँकि हम पहले से ही रूट के रूप में लॉग इन हैं, इसलिए हम बस रूट को सभी PRIVILEGES पर चलाकर रूट के लिए सम्मिलित कर सकते हैं 'रूट' @ 'लोकलहोस्ट' द्वारा '' जो भी हो '' की पहचान; फ्लश PRIVILEGES;
रूपर्ट

मैं स्टॉप सर्विस / स्क्रिप्ट का उपयोग कर रहा था, और यह फिर से चालू रहा। क्या इसलिए कि मैंने लॉन्चएजेंट को कभी अनलोड नहीं किया था? (
दोह

1
मेरे लिए जो काम करता है वह कुछ वैसा ही था जैसा आप बनाते हैं। उपयोगकर्ता के पासवर्ड को अपडेट करने वाले हिस्से में, मुझे बनाना था: mysql का उपयोग करें; अद्यतन उपयोगकर्ता सेट प्रमाणीकरण_स्ट्रिंग = पासवर्ड ('1111') जहां उपयोगकर्ता = 'रूट'; यथा: stackoverflow.com/a/31122246/1328261
ruhanbidart

16

यदि काढ़ा MySQL 5.7 को स्थापित करता है, तो प्रक्रिया पिछले संस्करणों की तुलना में थोड़ी अलग है। रूट पासवर्ड रीसेट करने के लिए, निम्नानुसार आगे बढ़ें:

sudo rm -rf /usr/local/var/mysql
mysqld --initialize

एक अस्थायी पासवर्ड कंसोल पर प्रिंट किया जाएगा और इसे केवल रूट पासवर्ड अपडेट करने के लिए इस्तेमाल किया जा सकता है:

mysql.server start
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'my-new-password';" | mysql -uroot --password=TEMPORARY_PASSWORD

2
मैं अस्थायी पासवर्ड को देख सकता हूं, लेकिन जब मैं mysql को चलाने का प्रयास करता हूं, मुझे मिलता है: ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXXX.local.pid).और जब मैं mysql -u रूट करता हूं, तो पासवर्ड स्वीकार नहीं किया जाता है।
फोर्लोप

1
मैंने सफलतापूर्वक mysql 5.7.9 का उपयोग कर स्थापित किया dmg इंस्टॉलर स्थापित किया है जिसने मुझे एक खिड़की के लिए प्रेरित किया है कि यह मेरे लिए एक अस्थायी पासवर्ड उत्पन्न करता है। और अब mysqlसही तरीके से काम कर रहा है। बहुत बुरा मुझे बस एक नई मैकबुक पर काम करने के लिए भारी मात्रा में खर्च करना पड़ा। : |
forloop

1
@forloop 1. ps -ef | grep mysql 2. किल -9 pid 3. mysql.server start
ओशिकेन

मेरे लिए, पासवर्ड को रीसेट / बदलने से ऊपर काम नहीं किया गया। मुझे अस्थायी पासवर्ड का उपयोग करके mysql में लॉग इन करना था और फिर कमांड 1 में परिवर्तन करना था। mysql -u root -p <temp-password> 2.ALTER USER 'root'@'localhost' IDENTIFIED BY 'New-Password';
टेस्ट टेस्ट

8

ठीक है मेरे पास एक ही मुद्दा था और इसे हल किया। किसी कारण से mysql_secure_installation स्क्रिप्ट होमस्कूल का उपयोग करते समय mysql को स्थापित करने के लिए बॉक्स से बाहर काम नहीं करता है, इसलिए मैंने इसे मैन्युअल रूप से किया। CLI दर्ज करने पर :

mysql -u root

जो आपको mysql में मिलना चाहिए। अब निम्नलिखित करें (mysql_secure_installation से लिया गया):

UPDATE mysql.user SET Password=PASSWORD('your_new_pass') WHERE User='root';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'
DROP DATABASE test;
FLUSH PRIVILEGES;

अब बाहर निकलें और mysql में वापस जाएं: mysql -u root -p


1
यह समाधान मेरे लिए काम नहीं कर रहा है क्योंकि mysql -u रूट मुझे mysql प्रॉम्प्ट पर नहीं ले जा रहा है। यह कहता है कि उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग करते हुए: NO) के लिए प्रवेश निषेध है
निक वेंडरबिल्ट

क्या आपके पास उस मशीन पर MySQL की पिछली स्थापना थी?
डैरेन न्यूटन

8

मुझे अभी भी यही समस्या थी। यदि आप brew info mysqlऔर चरणों का पालन करते हैं तो ऐसा लगता है कि रूट पासवर्ड ऐसा होना चाहिए new-passwordयदि मुझे सही याद है। मैं वही देख रहा था जो आप देख रहे हैं। यह लेख ने मुझे सबसे अधिक मदद की।

यह पता चला कि मेरे पास मेरे लिए कोई खाता नहीं था । जब मैंने दौड़ने के बाद लॉग इन किया mysqld_safeऔर select * from user;कोई पंक्तियाँ वापस नहीं कीं । मैंने रनिंग के साथ MySQLWorkbench को खोला mysqld_safeऔर rootमुझे उम्मीद थी कि सभी निजी के साथ एक खाता जोड़ा जाएगा। यह अब मेरे लिए अच्छा काम कर रहा है।


7

यदि mysql पहले से स्थापित है

पूरी तरह से mysql बंद करो।

  1. mysql.server stop <- आपके संस्करण के आधार पर संपादन की आवश्यकता हो सकती है
  2. ps -ef | grep mysql <- उनके नाम में mysql के साथ प्रक्रियाओं को सूचीबद्ध करता है
  3. kill [PID] <- पीआईडी ​​द्वारा प्रक्रियाओं को मारना

फ़ाइलें निकालें। ऊपर दिए गए निर्देश अच्छे हैं। मैं जोड़ूंगा:

  1. sudo find /. -name "*mysql*"
  2. अपने फैसले का उपयोग करते हुए, rm -rfये फाइलें। ध्यान दें कि कई कार्यक्रमों में mysql के ड्राइवर होते हैं जिन्हें आप हटाना नहीं चाहते हैं। उदाहरण के लिए, PHP इंस्टॉल की डायरेक्टरी में सामान को डिलीट न करें। अपने खुद के mysql निर्देशिका में सामान निकालें।

इंस्टॉल

उम्मीद है कि आप homebrew है। यदि नहीं, तो डाउनलोड करें।

मुझे काढ़ा जड़ के रूप में चलाना पसंद है, लेकिन मुझे नहीं लगता कि आपको करना है। 2018 संपादित करें: आप काढ़ा को जड़ के रूप में नहीं चला सकते

  1. sudo brew update
  2. sudo brew install cmake <- mysql के लिए निर्भरता, उपयोगी
  3. sudo brew install openssl <- mysql के लिए निर्भरता, उपयोगी
  4. sudo brew info mysql <- इसके माध्यम से स्किम करें ... इससे आपको पता चल जाता है कि आगे क्या हो रहा है
  5. sudo brew install mysql --with-embedded; say done<- एम्बेडेड सर्वर के साथ mysql स्थापित करता है। आपको बताता है कि यह कब पूरा होगा (मेरी स्थापना में 10 मिनट लगे)

बाद में

  1. sudo chown -R mysql /usr/local/var/mysql/ <- mysql मेरे लिए तब तक काम नहीं करेगा जब तक मैं यह कमांड नहीं चलाता
  2. sudo mysql.server start <- एक बार फिर, सटीक वाक्यविन्यास भिन्न हो सकता है
  3. Mysql ( http://dev.mysql.com/doc/refman/5.7/en/create-user.html ) में उपयोगकर्ता बनाएं । रूट यूजर के लिए पासवर्ड जोड़ना याद रखें।

3

काढ़ा जानकारी mysql

mysql: stable 5.6.12 (bottled)
http://dev.mysql.com/doc/refman/5.6/en/
Conflicts with: mariadb, mysql-cluster, percona-server
/usr/local/Cellar/mysql/5.6.12 (9363 files, 353M) *
  Poured from bottle
From: https://github.com/mxcl/homebrew/commits/master/Library/Formula/mysql.rb
==> Dependencies
Build: cmake
==> Options
--enable-debug
    Build with debug support
--enable-local-infile
    Build with local infile loading support
--enable-memcached
    Enable innodb-memcached support
--universal
    Build a universal binary
--with-archive-storage-engine
    Compile with the ARCHIVE storage engine enabled
--with-blackhole-storage-engine
    Compile with the BLACKHOLE storage engine enabled
--with-embedded
    Build the embedded server
--with-libedit
    Compile with editline wrapper instead of readline
--with-tests
    Build with unit tests
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

To connect:
    mysql -uroot

To reload mysql after an upgrade:
    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

mysql.service प्रारंभ

. ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid).

या mysql -u रूट

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

मैं कुछ समय के लिए एक समाधान की तलाश कर रहा हूं लेकिन मैं अपनी समस्या को हल नहीं कर सकता। मैंने stackoverflow.com पर कई समाधानों की कोशिश की, लेकिन इससे मुझे कोई मदद नहीं मिली।


4
यदि आप रूट के रूप में चल रहे हैं, तो रूट चलाने sudo chown -R mysql /usr/local/var/mysql/से पहले प्रयास करें (रूट उपयोगकर्ता का उपयोग शुरू करते समय, MySQL सर्वर उपयोगकर्ता को डाउनग्रेड करता है )। mysql.server startmysql.server_mysql
Rarylson Freitas

अरे, क्या आपने इस समस्या का हल खोजने के लिए ऐसा किया?
KcC0

omg, सवालों की मात्रा और 1,000 लाइन इस समस्या का जवाब ... मुझे लगता है कि मैं सिर्फ brew install redistbh हूँ
Danyal Aytekin

3

टी एल; डॉ

Brew के साथ स्थापना के बाद MySQL सर्वर नहीं चल सकता है। यदि आप MySQL को पृष्ठभूमि सेवा के रूप में नहीं चलाना चाहते हैं तो brew services start mysqlबस कोशिश करें या mysql.server start

पूरी कहानी:

मैंने अभी एक नए मैकबुक प्रो पर सिएरा चल रहे MySQL (स्थिर) 5.7.17 को स्थापित किया और दौड़ते समय एक त्रुटि भी प्राप्त की mysql_secure_installation:

Securing the MySQL server deployment.

Enter password for user root: 
Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

क्या कहना?

ब्रू से संस्थापन जानकारी के अनुसार, mysql_secure_installationमुझे संकेत देना चाहिए ... स्थापना को सुरक्षित करें। मुझे लगा कि MySQL सर्वर चालू नहीं हो सकता है और ठीक है। दौड़ना brew services start mysqlऔर फिर mysql_secure_installationएक आकर्षण की तरह काम किया।


1

अनुदान की अनुमति देकर mysql की आज्ञा दें


समस्या यह है कि मैं mysql सर्वर को इंस्टाल करने के बाद बिल्कुल भी उपयोग नहीं कर सकता। मैं इसे शुरू कर सकता हूं, लेकिन यह मुझे पासवर्ड के साथ या उसके बिना रूट नहीं होने देगा। (इसलिए मैं अन्य उपयोगकर्ताओं को नहीं बना सकता या अनुमतियाँ प्रबंधित नहीं कर सकता .. या क्या मैंने आपको सही नहीं समझा है?
nikola

1

उपरोक्त जवाबों में से कोई भी (या दर्जनों उत्तरों में से कोई भी जो मैंने कहीं और देखा था) मेरे लिए काम किया जब सबसे हालिया संस्करण mysql और yosemite के साथ काढ़ा। मैं काढ़ा के माध्यम से एक अलग mysql संस्करण स्थापित करना समाप्त कर दिया।

पुराने संस्करण को निर्दिष्ट करके (उदाहरण के लिए)

brew install mysql56

मेरे लिए काम किया। आशा है कि यह किसी की मदद करता है। यह एक निराशाजनक समस्या थी जिसे मैंने महसूस किया कि मैं हमेशा के लिए फंस गया हूं।


हां, यह काम करेगा, लेकिन अगर आप MySQL 5.7 (जैसा कि वर्तमान में किया गया है brew install mysql) स्थापित करना चाहते हैं, तो आप मेरे उत्तर में निर्देशों का पालन कर सकते हैं stackoverflow.com/a/33924648/133106
mrucci

1

यहाँ MySQL 5.7 के लिए एक अद्यतन है

मार - मार
GNU बैश, संस्करण 4.4.12 (1) -release (x86_64-apple-darwin17.0.0)
कॉपीराइट (C) 2016 फ्री सॉफ्टवेयर फाउंडेशन, इंक।
लाइसेंस GPLv3 +: GNU GPL संस्करण 3 या बाद का संस्करण 

यह मुफ्त सॉफ्टवेयर है; आप इसे बदलने और पुनर्वितरित करने के लिए स्वतंत्र हैं।
कानून द्वारा अनुमत सीमा तक कोई वारंटी नहीं है।

# ========================================
काढ़ा - मद्यपान
होमब्रेव 1.7.6
Homebrew / homebrew-core (git revision eeb08; अंतिम वचन 2018-09-27)
Homebrew / homebrew-cask (git revision c9f62; अंतिम वचन 2018-09-27)

# ========================================
mysql --version
Mysql Ver 14.14 Distrib 5.7.23, osx10.13 (x86_64) के लिए EditLine आवरण का उपयोग करना

# ========================================
system_profiler SPSoftwareDataType
सॉफ्टवेयर:

    सिस्टम सॉफ्टवेयर अवलोकन:

      सिस्टम संस्करण: macOS 10.13.3 (17D47)
      कर्नेल संस्करण: डार्विन 17.4.0
      बूट वॉल्यूम: Macintosh HD
      बूट मोड: सामान्य
      कंप्यूटर का नाम: EdisonMacHomeBj
      उपयोगकर्ता नाम: एडीसन (एडीसन)
      सुरक्षित वर्चुअल मेमोरी: सक्षम
      सिस्टम इंटीग्रिटी प्रोटेक्शन: डिसेबल्ड
      बूट के बाद से समय: 6 दिन 23:13
शराब बनाना mysql@5.7
काढ़ा साफ करें
mv / usr / स्थानीय / var / mysql /usr/local/var/mysql.bak
काढ़ा स्थापित करें mysql@5.7
rm -rf / usr / स्थानीय / var / mysql

# ========================================
mysqld --initialize
2018-09-28T04: 54: 06.526061Z 0 [चेतावनी] अंतर्निहित DEFAULT मान के साथ टाइमस्ट्रे को हटा दिया गया है। कृपया --explicit_defaults_for_timestamp सर्वर विकल्प (अधिक विवरण के लिए प्रलेखन देखें) का उपयोग करें।
2018-09-28T04: 54: 06.542625Z 0 [चेतावनी] सेटिंग लोअर_केस_टेबल_नाम = 2 क्योंकि फ़ाइल सिस्टम के लिए / usr / लोकल / var / mysql / केस असंवेदनशील है
2018-09-28T04: 54: 07.096637Z 0 [चेतावनी] InnoDB: नई लॉग फ़ाइलें बनाई गईं, LSN = 45790
2018-09-28T04: 54: 07.132950Z 0 [चेतावनी] InnoDB: विदेशी कुंजी बाधा प्रणाली तालिकाओं का निर्माण।
2018-09-28T04: 54: 07.196824Z 0 [चेतावनी] कोई मौजूदा यूयूआईडी नहीं मिला है, इसलिए हम मानते हैं कि यह पहली बार है जब यह सर्वर शुरू किया गया है। एक नया UUID बनाना: 87cf2f10-c2da-11e8-ac2d-ba1631010130।
2018-09-28T04: 54: 07.224871Z 0 [चेतावनी] Gtid तालिका उपयोग करने के लिए तैयार नहीं है। तालिका 'mysql.gtid_executed' नहीं खोली जा सकती।
2018-09-28T04: 54: 07.366688Z 0 [चेतावनी] सीए प्रमाण पत्र ca.pem स्वयं हस्ताक्षरित है।
2018-09-28T04: 54: 07.457954Z 1 [नोट] एक अस्थायी पासवर्ड रूट @ localhost के लिए उत्पन्न होता है: kq3K = JR8; GqZ;

# ========================================
mysql_secure_installation -uroot -p "kq3K = JR8; GqZ"
mysql_secure_installation: [चेतावनी] कमांड लाइन इंटरफेस पर पासवर्ड का उपयोग करना असुरक्षित हो सकता है।

MySQL सर्वर परिनियोजन को सुरक्षित करना।


उपयोगकर्ता खाता रूट के लिए मौजूदा पासवर्ड समाप्त हो गया है। कृपया एक नया पासवर्ड सेट करें।

नया पासवर्ड:

नया पासवर्ड पुनः दर्ज करें:

पासवर्ड का परीक्षण करने के लिए VALIDATE PASSWORD PLUGIN का उपयोग किया जा सकता है
और सुरक्षा में सुधार। यह पासवर्ड की ताकत की जांच करता है
और उपयोगकर्ताओं को केवल वे पासवर्ड सेट करने की अनुमति देता है जो हैं
काफी सुरक्षित है। क्या आप मान्य PASSWORD प्लगइन सेटअप करना चाहेंगे?

हां, हां के लिए Y दबाएं। No: n के लिए कोई अन्य कुंजी
रूट के लिए मौजूदा पासवर्ड का उपयोग करना।
रूट के लिए पासवर्ड बदलें? ((प्रेस y | Y फॉर हां, नो के लिए कोई अन्य कुंजी): y

नया पासवर्ड:

नया पासवर्ड पुनः दर्ज करें:
डिफ़ॉल्ट रूप से, MySQL इंस्टॉलेशन में एक अनाम उपयोगकर्ता होता है,
किसी को भी बिना MySQL में लॉग इन करने की अनुमति देता है
उनके लिए एक उपयोगकर्ता खाता बनाया गया। यह केवल के लिए करना है
टेस्टिंग, और इंस्टॉलेशन को थोड़ा स्मूथ बनाने के लिए।
उत्पादन में जाने से पहले आपको उन्हें हटा देना चाहिए
वातावरण।

अनाम उपयोगकर्ताओं को निकालें? (प्रेस y | Y फॉर यस, नो के लिए कोई अन्य कुंजी): y
सफलता।


आम तौर पर, रूट को केवल कनेक्ट करने की अनुमति दी जानी चाहिए
'स्थानीय होस्ट'। यह सुनिश्चित करता है कि कोई व्यक्ति अनुमान नहीं लगा सकता है
नेटवर्क से रूट पासवर्ड।

दूरस्थ लॉगिन को दूर करें? (प्रेस y | Y फॉर यस, नो के लिए कोई अन्य कुंजी): n

 ... रस्सी कूदना।
डिफ़ॉल्ट रूप से, MySQL 'टेस्ट' नामक डेटाबेस के साथ आता है
कोई भी पहुंच सकता है। यह भी केवल परीक्षण के लिए अभिप्रेत है,
और उत्पादन में जाने से पहले हटा दिया जाना चाहिए
वातावरण।


परीक्षण डेटाबेस निकालें और इसे एक्सेस करें? (प्रेस y | Y फॉर यस, नो के लिए कोई अन्य कुंजी): n

 ... रस्सी कूदना।
विशेषाधिकार तालिकाओं को पुन: लोड करना सुनिश्चित करेगा कि सभी परिवर्तन
अब तक बनाया तुरंत प्रभाव होगा।

अब विशेषाधिकार तालिका पुनः लोड करें? (प्रेस y | Y फॉर हां, नो के लिए कोई अन्य कुंजी): y
सफलता।

सब कुछ कर दिया!

जब "mysql.bak" से सभी डेटाबेस नकल यह काम नहीं कर रहा :(
Jahirul इस्लाम मामुन

1

पिछले उत्तरों में कुछ जोड़ने के लिए - MySql 5.6 से MySql 8.0 पर अपग्रेड करते समय, मैंने क्लीन अनइंस्टॉल करने के लिए यहां दिए गए चरणों का पालन किया, फिर भी मुझे निम्नलिखित त्रुटियां मिलीं

2019-11-05T07:57:31.359304Z 0 [ERROR] [MY-000077] [Server] /usr/local/Cellar/mysql/8.0.18/bin/mysqld: Error while setting value 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'.
2019-11-05T07:57:31.359330Z 0 [ERROR] [MY-013236] [Server] The designated data directory /usr/local/var/mysql is unusable. You can remove all files that the server added to it.
2019-11-05T07:57:31.359413Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-11-05T07:57:31.359514Z 0 [Note] [MY-010120] [Server] Binlog end

इसका पता लगाने के लिए मुझे कुछ समय लगा। यहां एक सुराग मिला: https://discourse.brew.sh/t/clean-removal-of-mysql/2251

इसलिए, मेरी समस्या की कुंजी अनइंस्टॉल के बाद /usr/local/etc/my.cnf फाइल को हटा रही थी । एक आखिरी कदम के बाद, MySql ने आखिरकार काम करना शुरू कर दिया।


0

मैं अपने आप को पुनः आरंभ करने की कोशिश करने के बाद भी यही मुद्दा था।

मैं अपनी सुविधा में निम्नलिखित दो उपनामों का उपयोग करता हूं

alias mysql-stop='launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
alias mysql-start='launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist' 

Mysql को रोकने के बाद और फिर पुनः आरंभ करने का प्रयास करते हुए मुझे उस समस्या का अनुभव हुआ जो आप कर रहे थे। मैंने लॉन्चक्टल लोड में देखा और यह "लोड करने के लिए कुछ भी नहीं मिला" त्रुटि की रिपोर्ट कर रहा था।

एक त्वरित खोज के बाद मुझे यह मिला ..

http://www.daveoncode.com/2013/02/01/solve-mac-osx-launchctl-nothing-found-to-load-error/

इसलिए मैंने mysql-startनिम्नानुसार मुझे उर्फ अपडेट किया

alias mysql-start='launchctl load -w -F ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'

इससे मेरी समस्या हल हो गई जो आपके लिए उपयोगी हो सकती है।


2
ब्रू अब एक servicesकमांड का समर्थन करता है , इसलिए इन्हें क्रमशः brew services stop mysqlऔर brew services start mysqlक्रमशः बदला जा सकता है।
devstuff

0

मैसकल के लिए "बेस-पाथ" संग्रहीत किया जाता है /etc/my.cnfजिसमें आप काढ़ा अपग्रेड करते समय अपडेट नहीं किया जाता है। बस इसे खोलें और आधार मूल्य बदलें

उदाहरण के लिए, इसे बदलें:

[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.13

नए संस्करण को इंगित करने के लिए:

[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.19

के साथ mysql को पुनरारंभ करें:

mysql.server start
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.