варити встановити mysql на macOS


344

Я намагаюся налаштувати MySQL на mac os 10.6 за допомогою Homebrew by 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" 
помилка помилки: 'Доступ заборонено користувачеві' root '@' localhost '(використовуючи пароль: НІ)'

Я також намагався отримати доступ mysqladmin or mysql using -u root -proot,
але він не працює з паролем або без нього.

Це абсолютно нова установка на абсолютно новій машині, і наскільки я знаю, нова установка повинна бути доступною без пароля root. Я також спробував:

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

але я також отримую

ПОМИЛКА 1045 (28000): Відмовлено в доступі для користувача 'root' @ 'localhost' (з використанням пароля: НІ)

Спробуйте варити інсталяцію raw.github.com/adamv/homebrew-alt/master/versions/mysql51.rb
Parker

Дивіться також: apple.stackexchange.com/a/199747/152271 ... це не заварена установка, але вона працювала для мене, коли жодна з відповідей тут не робила
sudo rm -rf slash

1
FWIW я використовував, mysql -u rootі він працював тут: |
rogerdpack

Відповіді:


684

Я думаю, що можна опинитися в цій позиції зі вже встановленими старими версіями mysql. У мене була така ж проблема, і жодне з вищезазначених рішень не працювало на мене. Я це зафіксував таким чином:

Використовували пивоварні removeта cleanupкоманди, вивантажували launchctlскрипт, потім видаляли каталог mysql у /usr/local/var, видаляли мою існуючу /etc/my.cnf(залиште цю для вас, якщо вона застосовуватиметься) та запускаєте plist

Оновлено рядок для плейста. Зауважте також, що ваш альтернативний каталог сценаріїв безпеки базуватиметься на тому, яку версію 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 mysql.server startкомандою, щоб мати можливість увійти в неї

  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бажанню також очищення застарілих барила, думає , що це новий іш особливості доморослої.

Зверніть увагу на друге: коментатор каже, що крок 2 не потрібно. Я не хочу перевіряти це, тому YMMV!


30
Чудова відповідь, дякую! Варто додати: Хоча це згадується у відповіді, я пропустив це, і, роблячи це, втратив близько 6 годин, намагаючись налаштуватись на Lion OSX. Переконайтесь, що ви видаляєте старий каталог mysql за адресою / usr / local / var / mysql, якщо у вас є попередня версія MySql перед перевстановленням. Інакше спочатку ви не зможете увійти як root, щоб встановити пароль, і ви витратите багато часу на крики за комп’ютером.
tronbabylove

3
зайдіть у ~ / Бібліотека / LaunchAgents, щоб побачити, як насправді викликається файл .plist для mysql - у моєму випадку він був встановлений домашньою мовою, тому вам потрібно змінити вищевказану процедуру видалення.
Марко

7
Оскільки ця нитка є давньою, рядок "startctl unload" вище є помилковим. Файл homebrew встановлюється більше не називається "com.mysql.mysqld.plist", він називається "homebrew.mxcl.mysql.plist". Тепер рядок повинен читати "startctl unload -w ~ / Бібліотека / LaunchAgents / homebrew.mxcl.mysql.plist"
Tommy

4
Я маю `[~ / Бібліотека / LaunchAgents] $ ls com.adobe.ARM.202f4087f2bbde52e3ac2df389f53a4f123223c9cc56a8fd83a6f7ae.plist com.mysql.mysqld.plist com.facebook.videochat.ava.plist home.qlist`q.plist` qlist.qlist`ql.plist homebre / LaunchAgents`, але вивантаження їх даєlaunchctl: Couldn't stat("com.mysql.mysqld.plist"): No such file or directory
Ava

9
mysql_install_db тепер може бути пропущено, brew створює сервер автоматично в правій директі.
rfreytag

52

Ось докладні інструкції, що поєднують у собі позбавлення всіх MySQL з вашого Mac, а потім встановлюють його The Brew Way, як писав Sedorner вище:

Видаліть MySQL повністю в лабораторії Tech

  • 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 відповідь Brew встановлює MySQL на користувача 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крок за мною, не потрібно робити це двічі.
Madbreaks

@CorySimmons це означає, що я повинен використовувати своє ім’я або rootв whoamiчастині ваших команд?
YPCrumble

1
Підтверджено - whoami моє ім’я (я використовував root). Це спрацювало чудово.
YPCrumble

Зауважте, що /etc/hostconfigне існує на Йосеміті та за його межами ( superuser.com/questions/850974/… )
ecbrodie

44

Була така ж проблема. Здається, що в інструкціях із налаштування або в початкових таблицях, що створюються, щось не так. Ось так я запустив mysqld на своїй машині.

Якщо сервер mysqld вже працює на вашому Mac, зупиніть його спочатку за допомогою:

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 без таблиць грантів працював на мене. Однак ОНОВЛЕННЯ не працювало, оскільки у мене немає записів про вибір * від mysql.user; Оскільки ми вже зареєстровані як root, ми можемо просто вставити його для root, запустивши GRANT ALL PRIVILEGES ON . ДО 'root' @ 'localhost' ІДЕНТИФІКОВАНО «Що завгодно»; ПРИГОТОВЛЕННЯ;
Руперт

Я використовував службу / скрипт зупинки, і він продовжував перезапуск. Це було тому, що я ніколи не розвантажував LaunchAgent? (doh)
reneruiz

1
Те, що для мене працює, було чимось схожим на те, що ви робите. У тій частині, яку ви оновили пароль користувача, я повинен був зробити: використовувати mysql; оновити встановлений користувачем аутентифікацію_string = пароль ('1111'), де user = 'root'; Як і в: stackoverflow.com/a/31122246/1328261
ruhanbidart

16

Якщо заварений встановлений MySQL 5.7, процес дещо інший, ніж для попередніх версій. Для скидання пароля root виконайте наступні дії:

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
Я бачу створений пароль temp, але коли я намагаюся запустити mysql, я отримую: ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXXX.local.pid).а коли я виконую mysql -u root, пароль не приймається.
forloop

1
Я успішно встановив mysql 5.7.9 за допомогою інсталятора dmg, який запропонував мені вікно, що воно створило для мене темп-пароль. А зараз mysqlпрацює правильно. Шкода, що мені довелося витратити величезну кількість часу, щоб я працював над абсолютно новим Macbook. : |
forloop

1
@forloop 1. ps -ef | grep mysql 2. убий -9 pid 3. mysql.server start
oshaiken

для мене вище перезавантаження / зміна пароля не працювало. Мені довелося увійти в mysql за допомогою тимчасового пароля, після чого запустіть команду alter 1. mysql -u root -p <temp-password> 2.ALTER USER 'root'@'localhost' IDENTIFIED BY 'New-Password';
Тестовий тест

8

Гаразд, у мене було те саме питання і вирішено. Чомусь скрипт mysql_secure_installation не працює з поля, коли для встановлення mysql використовується Homebrew, тому я це робив вручну. У 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 root не приймає мене до запиту mysql. У ньому йдеться про відмову в доступі для користувача 'root' @ 'localhost' (з використанням пароля: НІ)
Нік Вандербільт

У вас була попередня установка 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] <- вбити процеси PID

Видаліть файли. Наведені вище інструкції хороші. Я додам:

  1. sudo find /. -name "*mysql*"
  2. Використовуючи ваше судження, rm -rfці файли. Зауважте, що у багатьох програмах є драйвери для mysql, які ви не хочете видаляти. Наприклад, не видаляйте речі в каталозі установки PHP. Видаліть речі у власному каталозі mysql.

Встановити

Сподіваємось, у вас є домашня мова. Якщо ні, завантажте його.

Мені подобається запускати пиво як корінь, але я не думаю, що потрібно. Редагувати 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/uk/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 start

. 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.server startякщо ви працюєте mysql.serverяк root (при запуску користування користувачем root сервер MySQL поновлює версію до _mysqlкористувача).
Rarylson Freitas

Гей, чи траплялось вам знайти рішення для цієї проблеми?
KcC0

OMG, кількість питань і 1000 рядків відповідей на цю проблему ... думають , я буду тільки brew install redisТБМ
Danyal Aytekin

3

TL; DR

Сервер MySQL може не працювати після встановлення з Brew. Спробуйте brew services start mysqlабо просто, mysql.server startякщо ви не хочете, щоб MySQL запускався як фонова служба.

Повна історія:

Щойно я встановив MySQL (стабільний) 5.7.17 на новий MacBook Pro під керуванням Sierra, а також отримав помилку під час запуску 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)

Скажи що?

Згідно з інформацією про встановлення від Brew, mysql_secure_installationслід запропонувати мені ... захистити встановлення. Я зрозумів, що сервер MySQL може не працювати, і це правильно. Бігав, brew services start mysqlа потім mysql_secure_installationпрацював як шарм.


1

Спробуйте, надавши Грант дозвіл на команду mysql


Проблема полягає в тому, що я не можу отримати доступ до сервера mysql після встановлення заваркою. Я можу його запустити, але він не введе мене як root з паролем або без нього. (отже, я не можу створювати інших користувачів або керувати дозволами .. чи я вас не зрозумів правильно?
nikola

1

Жоден із перерахованих вище відповідей (або будь-який із десятків відповідей, які я бачив десь в іншому місці) не працював для мене, коли використовували пивоваріння з останньою версією mysql та yosemite. Я закінчив установку іншої версії mysql через brew.

Вказання старішої версії, сказавши (наприклад)

brew install mysql56

Працювали для мене. Сподіваюся, що це комусь допоможе. Це було розчаровує проблему, яку я відчував, ніби я затримався назавжди.


Так, це буде працювати, але якщо ви хочете встановити MySQL 5.7 (як це робиться в даний час brew install mysql), ви могли б слідувати вказівкам моєї відповіді stackoverflow.com/a/33924648/133106
mrucci

1

Ось оновлення для MySQL 5.7

bash --версія
GNU bash, версія 4.4.12 (1) -випуск (x86_64-apple-darwin17.0.0)
Copyright (C) 2016 Фонд вільного програмного забезпечення, Inc.
Ліцензія 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 - звернення
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
      Ім'я користувача: Edison (edison)
      Безпечна віртуальна пам'ять: увімкнено
      Захист цілісності системи: вимкнено
      Час з часу завантаження: 6 днів 23:13
заварити видалити mysql@5.7
заварити очищення
mv / usr / local / var / mysql /usr/local/var/mysql.bak
варити встановити mysql@5.7
rm -rf / usr / local / var / mysql

# ==========================================
mysqld - ініціалізувати
2018-09-28T04: 54: 06.526061Z 0 [Попередження] TIMESTAMP із неявним значенням DEFAULT застарілий. Будь ласка, використовуйте параметр --explicit_defaults_for_timestamp (детальну інформацію див. У документації).
2018-09-25
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, тому ми припускаємо, що це перший раз запуск цього сервера. Створення нового UUID: 87cf2f10-c2da-11e8-ac2d-ba163df10130.
2018-09-28T04: 54: 07.224871Z 0 [Попередження] Gtid-таблиця не готова до використання. Таблицю "mysql.gtid_executed" неможливо відкрити.
2018-09-28T04: 54: 07.366688Z 0 [Попередження] Сертифікат CA ca.pem підписаний самостійно.
2018-09-28T04: 54: 07.457954Z 1 [Примітка] Створюється тимчасовий пароль для root @ localhost: kq3K = JR8; GqZ

# ==========================================
mysql_secure_installation -uroot -p "kq3K = JR8; GqZ"
mysql_secure_installation: [Попередження] Використання пароля в інтерфейсі командного рядка може бути небезпечним.

Забезпечення розгортання сервера MySQL.


Існуючий пароль для кореня облікового запису користувача закінчився. Введіть новий пароль.

Новий пароль:

Повторно введіть новий пароль:

ПЛУГІН ВАЛІДАЛЬНОГО ПАРОЛУ можна використовувати для перевірки паролів
та покращити безпеку. Він перевіряє міцність пароля
і дозволяє користувачам встановлювати лише ті паролі, які є
достатньо забезпечений. Хочете встановити плагін VALIDATE PASSWORD?

Натисніть y | Y для Так, будь-яку іншу клавішу для No: n
Використання існуючого пароля для root.
Змінити пароль для root? ((Натисніть y | Y для Так, будь-яка інша клавіша для Ні): y

Новий пароль:

Повторно введіть новий пароль:
За замовчуванням, установка MySQL має анонімного користувача,
дозволяючи будь-кому ввійти в MySQL без необхідності
створений для них обліковий запис користувача. Це призначено лише для
тестування, і щоб зробити процес трохи плавнішим.
Ви повинні їх видалити, перш ніж переходити у виробництво
навколишнє середовище.

Видалити анонімних користувачів? (Натисніть y | Y для Так, будь-яка інша клавіша для Ні): y
Успіх.


Зазвичай до root можна дозволити підключення лише з
'localhost'. Це гарантує, що хтось не може здогадатися
корінний пароль від мережі.

Відключити кореневе вхід у систему? (Натисніть y | Y для Так, будь-яку іншу клавішу для Ні): n

 ... пропускаючи.
За замовчуванням MySQL постачається з базою даних з назвою "test"
кожен може отримати доступ. Це також призначене лише для тестування,
і їх слід видалити перед тим, як перейти до виробництва
навколишнє середовище.


Видалити тестову базу даних та отримати доступ до неї? (Натисніть y | Y для Так, будь-яку іншу клавішу для Ні): n

 ... пропускаючи.
Перезавантаження таблиць привілеїв забезпечить усі зміни
зроблений поки що набирає чинності негайно.

Перезавантажити таблиці привілеїв зараз? (Натисніть y | Y для Так, будь-яка інша клавіша для Ні): y
Успіх.

Все зроблено!

коли скопіювати всю базу даних з "mysql.bak", вона не працює :(
Джахірул Іслам Мамун

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

У мене була така ж проблема після того, як я спробував перезапустити mysql.

Для зручності я використовую наступні псевдоніми у своєму .profile

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

Після зупинки mysql, а потім спроби перезавантаження я відчув проблему, з якою у вас виникли проблеми. Я вивчив навантаження на startctl, і він повідомляв про помилку "нічого не знайдено для завантаження".

Після швидкого пошуку я знайшов це ..

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
Тепер Brew підтримує servicesкоманду, тому їх можна замінити відповідно brew services stop mysqlі brew services start mysqlвідповідно.
девстуф

0

"Базовий шлях" для Mysql зберігається в /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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.