vak: (Default)
[personal profile] vak
Установка пароля:
$ mysqladmin -u root password 'new-password'
$ mysqladmin -u root -h хост password 'new-password'
Добавление юзера:
$ mysql -u root -p mysql
Enter password: ...
mysql> INSERT INTO user (User,Host) VALUES('юзер','localhost');
mysql> FLUSH PRIVILEGES;
mysql> GRANT ALL PRIVILEGES ON база.* TO 'юзер'@'localhost'
-> IDENTIFIED BY 'пароль' WITH GRANT OPTION;

SET PASSWORD FOR 'юзер'@'localhost' = OLD_PASSWORD ('новый_пароль');
Просмотр юзеров:
$ mysql -u root -p -e "select User,Host,Password from mysql.user;"
Enter password: ...
Удаление юзера:
$ mysql -u root -p mysql
Enter password: ...
mysql> DELETE FROM mysql.user WHERE User = 'юзер';
mysql> FLUSH PRIVILEGES;
Посмотреть все базы:
$ mysqlshow -p
Password: ...
Создать базу DB:
$ mysqladmin -p create DB
Посмотреть права доступа:
$ mysqlaccess \* \* -U root -P пароль

Date: 2022-05-12 03:17 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

А что за странная идея майсиквелом пользоваться?

Date: 2022-05-12 15:25 (UTC)
From: [personal profile] max_tx
Спасибо; я вот про mysqlaccess и mysqlshow не знал до сих пор

Date: 2022-05-12 05:28 (UTC)
kondybas: (Default)
From: [personal profile] kondybas
Посмотреть все базы - SHOW DATABASES;

При добавлении юзера необязательно добавлять запись в mysql.user, можно сразу грант давать. При этом еще автоматом добавится грант USAGE ON *.*

GRANT ... WITH GRANT OPTION - плохая идея, если юзер нужен только для доступа аппликухи к базе.

И еще одно замечание. Дропнутый юзер не означает дропнутых грантов. Т.е. если дропнуть юзера а потом создать такого же (юзер@хост), то он унаследует все гранты от покойного. Да, вот так вот оно в мускле устроено - по крайней мере, пока внутренние структуры не переведены на иннодб и не сделаны все нужные внешние ключи.
Edited Date: 2022-05-12 06:53 (UTC)

Date: 2022-05-12 22:06 (UTC)
vlad_m: (Default)
From: [personal profile] vlad_m
О как!
Античненько.
И эти люди ...

Date: 2022-05-13 04:39 (UTC)
kondybas: (Default)
From: [personal profile] kondybas
Да ничо, нормально :) Жить можно - даже без FULL OUTER JOIN :)

Mysql изначально позиционировался, как пиджин-SQL, простенькая и нересурсоемкая альтернатива ораклу там, где данных всего пара-тройка мегабайт. Но концепция выстрелила и пошла в народ и вот уже на мускле ворочают терабайтные базы, а оракл покупает его саппорт.

Из-за, скажем так, лаконичности выразительных средств некоторые вещи на мускле требуют изрядной изворотливости. Но за это неплохо платят :)

Date: 2022-05-13 11:11 (UTC)
vlad_m: (Default)
From: [personal profile] vlad_m
Про полноту конструкций языка многое может рассказать sqlite 😁.

Удивительно, что сапожник без сапог. Умеют же уже в foreign keys. И давно.

Date: 2022-05-13 12:34 (UTC)
kondybas: (Default)
From: [personal profile] kondybas
Мускль в ФК умеет постольку, поскольку есть оформленный плагином иннодб. Но, как и прочие плагины, он недоступен в момент старта и бутстрапа собсно ДБМС, все внутренние структуры которой тоже в таблицах. Нетранзакционный МУИСАМ замоноличен и доступен, но не умеет в ФК :) Но та же мариядб с 10.5 уже полностью на иннодб, хотя структуры таблиц все еще не поправлены, как и базовые операции.

Вообще, последних года три-четыре прогресс весьма значительный, по крайней мере - в мариидб, я с ней больше работаю. Некоторые новые вещи просто ацки доставляют, например, новый тип 'ROW TYPE OF' - эквивалент сишных структур. Можно выдергивать в процедурах строку таблицы целиком в переменную, а не плодить туеву хучу переменных для каждого поля:

DECLARE onerecord ROW TYPE OF mytable;
SELECT * INTO onerecord
  FROM mytable
 WHERE id = 1234;
SELECT onerecord.id, onerecord.name, onerecord.comment;

Злые языки поговаривают, что вся реализация этого типа - где-то 40 строчек кода, и когда сделали, то долго сидели с вытаращенными глазами, типа "А шо, так можно было?"

Date: 2022-05-13 17:50 (UTC)
vlad_m: (Default)
From: [personal profile] vlad_m
На Марию вся надежда.

Ибо не для того же Оракул покупал мюскуэль чтобы развивать себе конкурента.

Всё ещё не перестал удивляться: в куцем sqlite есть FK. И даже триггеры. Пойду, приму 300 капель...

Date: 2022-05-13 18:53 (UTC)
kondybas: (Default)
From: [personal profile] kondybas
Ну, пока, как ни странно, обе команды - и оракловая, и марии - в хороших отношениях, развивают разные направления, а затем активно портируют наработки коллег к себе. Те же оконные функции и СТЕ писали в оракле, а в марию их вкорячили почти в готовом виде. А в марии сделали галеру, которую сейчас оракл вкорячивает в мускля.

Date: 2022-05-27 12:53 (UTC)
From: [personal profile] flamedancerii
Хотелось бы обратить ваше внимание на то, что там уже новые веяния - по умолчанию в Дебиане и производных аутентикация через плугины для рута (системных пользователей)
Причем оно еще и разное для MySQL и MariaDB

https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/
https://wiki.debian.org/MySql

For the MySQL 5.5+ auth_socket plugin:
USE mysql;
CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED WITH auth_socket;
exit;

For the MariaDB 5.2.0+ unix_socket plugin:
USE mysql;
CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED VIA unix_socket;
exit;