Я настраиваю новую машину для разработки с OS X Catalina (10.15.3) и имею проблемы с разрешениями MariaDB / MySQL. Я установил Homebrew, а затем установил пакет MariaDB. После входа в систему с помощью mysql -uroot
я получаю следующую ошибку при попытке создать базу данных:
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'my_db'
При чтении ошибки похоже, что моя команда интерпретируется как не из root, но вместо этого анонимный пользователь. Тем не менее, когда я запускаю status
в командной строке MySQL, он выводит следующее:
MariaDB [(none)]> status;
--------------
mysql Ver 15.1 Distrib 10.4.11-MariaDB, for osx10.15 (x86_64) using readline 5.1
Connection id: 9
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: less
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 10.4.11-MariaDB Homebrew
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 18 min 10 sec
Threads: 7 Questions: 11 Slow queries: 0 Opens: 16 Flush tables: 1 Open tables: 10 Queries per second avg: 0.010
--------------
Похоже, это означает, что он регистрирует меня вошедшим в систему как root@localhost, но это не то, что ранее перечисленная ошибка предполагает.
Это ошибка, связанная с разрешениями? Я не думаю, что пропустил какие-либо префиксы sudo
во время установки, но кажется, что это может быть связано.
Это всегда "просто работало" для меня при настройке / переформатировании моего Разработчики машин, так что это мой первый раз, когда нужно копаться. Любая помощь очень важна, и дайте мне знать, будет ли полезна дополнительная информация. Заранее благодарен за любой совет!
Обновление № 1 (13.03.2020)
После попытки нескольких разных вещей и переустановки Homebrew, а также MariaDB, я сейчас, в месте, где я получаю ошибку отказа в доступе (см. ниже), когда я пытаюсь войти в систему через iTerm / Terminal с помощью mysql -uroot
, однако, используя sudo mysql -uroot
, я могу войти. Я могу запустить команды для создания базы данных после того, как войду с помощью Префикс sudo, однако эти БД недоступны ни через один из моих проектов через проверку usr / pwd через файл .env для Laravel и wp-config. php для Wordpress.
Это заставляет меня поверить, что это ошибка прав доступа, и мне нужно как-то настроить пакет MariaDB / MySQL, чтобы у моего пользователя OS X было разрешение на чтение / запись / выполнение, а не root.
Просто хотел опубликовать обновление, мы надеемся, что появится разрешение ...
➜ ~ mysql -uroot
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Обновление № 2 (13.03.2020)
Когда я вхожу в префикс sudo, я могу напечатать таблицу пользователей со значениями плагинов для каждого пользователя, чтобы показать, как они проходят аутентификацию, если это полезно
MariaDB [(none)]> select User, Host, Plugin from mysql.user;
+---------+---------------------+-----------------------+
| User | Host | plugin |
+---------+---------------------+-----------------------+
| root | localhost | unix_socket |
| os_user | localhost | mysql_native_password |
| | localhost | |
| | usrnames-imac.local | |
+---------+---------------------+-----------------------+