MySQL CheatSheet

  • Подключиться к MySQL на localhost на нестандартном порту
    > /usr/local/mysql5/bin/mysql -u root -p -P 3308 -S /tmp/mysql5.sock
  • Подключиться к MySQL на удаленном сервере на нестандартном порту
    > mysql -р your.domen -P 3307 -u root -p
  • Создать базу данных, два варианта
    mysql> CREATE DATABASE cardsip;
    [root@host]# mysqladmin -u root -p CREATE cardsip
    Enter password:******
  • Посмотреть свойства уже созданной БД
    mysql> SHOW CREATE DATABASE cardsip;
    +----------+------------------------------------------------------------------------------------------+
    | DATABASE | CREATE DATABASE                                                                          |
    +----------+------------------------------------------------------------------------------------------+
    | cardsip  | CREATE DATABASE `cardsip` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ | 
    +----------+------------------------------------------------------------------------------------------+
    1 ROW IN SET (0.00 sec)

Пример создать базу данных MySQL и пользователя с полными правами

Пользователей MySQL можно добавлять двумя различными способами - при помощи команды GRANT или напрямую в таблицы назначения привилегий MySQL. Предпочтительнее использовать команду GRANT.

  • Пример взят из руководства по инсталляции сервера Zabbix. Cоздать базу данных MySQL и пользователя с полными правами и разрешить подключение только с localhost:
# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
  • Дать пользователю права root, например для просмотра триггеров
    GRANT SUPER ON *.* TO 'you_user';
    flush privileges;
  • Создать суперпользователя
    GRANT ALL PRIVILEGES ON *.* TO monty@"%"  IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
  • Вывести список всех пользователей MySQL
    mysql> select User,Host,Password from mysql.user;
  • Команда DROP USER удаляет учетную запись пользователя MySQL из таблицы mysql.user. Удалим пользователя cardsip:
    mysql> DROP USER cardsip;

1 вариант. Создать / изменить пароль для пользователя MySQL root: Это можно сделать следующим образом (обратите внимание, что пароль указывается при помощи функции PASSWORD()):

shell> mysql -u root mysql
 
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypass');

Опытные пользователи могут работать непосредственно с таблицами назначения привилегий:

shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';
mysql> FLUSH PRIVILEGES;

Еще один способ задать пароль - воспользоваться командой mysqladmin:

shell> mysqladmin -u root password new_password

Изменять пароли других пользователей могут только пользователи с правом записи/обновления базы данных mysql. Все обычные пользователи (не анонимные) могут модифицировать только свой собственный пароль при помощи указанных выше команд или команды SET PASSWORD=PASSWORD('new_password').

Обратите внимание на то, что если пароль в таблице user обновляется напрямую при помощи первого метода, требуется указать серверу на необходимость перезагрузки таблиц привилегий (при помощи команды FLUSH PRIVILEGES), иначе изменения не будут учтены.

2 вариант для MySQL 8:

  • Подключиться к MySQL как пользователь root при помощи команды:
    mysql –u root –p

Затем нажать Enter, указать пароль и снова нажать Enter;

  • Выполнить следующие команды:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

После этого пароль будет изменён на newpass.

Данный способ также подходит и для изменений паролей других MySQL пользователей.