Сегодня заметил, что тут нет простого мана, как работать с mysql-сервером без разных там навикатов и пхпадминов.
Решил написать основные операции, не буду расписывать все до мелочей, если кому интересно читайте, так как там много всего интересного, а переписывать сюда документацию бессмысленно.
Все комады имеющие в начале # выполняются в shell’e, все остальные в самом mysql-сервере.
Подключение к mysql-серверу:
Code
# mysql -u пользователь -p
Создание пользователя:
Code
CREATE USER 'логин'@'хост' IDENTIFIED BY 'пароль';
Смена пароля для пользователя:
Code
SET PASSWORD FOR 'юзер'@'%' = PASSWORD('новый_пароль');
Смена пароля для суперпользователя:
Code
# mysqladmin -u root -p'старый_пароль' password новый_пароль
Дать привилегии на определенную БД:
Code
GRANT ALL PRIVILEGES ON `бд`.`таблица` TO 'юзер'@'хост';
Если хотите дать права на все Бд, вместо `бд` пишите *
Если хотите дать права на все таблицы, вместо `таблица` пишите *
Показать права пользователя:
Code
SHOW GRANTS FOR 'юзер'@'хост';
Показать БД:
Создать БД:
Code
CREATE DATABASE имя_бд;
Выбрать одну из БД:
Вывести список таблиц в БД:
Показать структуру таблицы
Code
SHOW COLUMNS FROM таблица;
Создание дампа БД:
Code
# mysqldump -u ЮЗЕР -p БД > Файл.sql
Заливка дампа:
Code
# mysql -u ЮЗЕР -p БД < Файл.sql
Работа с данными:
Выбор:
Code
SELECT `что-то`,`еще_что-то` FROM `таблица`;
Выбор по критериям:
Code
SELECT `что-то`,`еще_что-то` FROM `таблица` WHERE `ключ`='значение';
или:
Code
SELECT `что-то`,`еще_что-то` FROM `таблица` WHERE `ключ` IN ('значение1','значение2','значение3');
Удаление:
Code
DELETE FROM `таблица` WHERE `ключ`='значение';
Добавление:
Code
INSERT INTO `таблица` (`ключ1`,`ключ2`,`ключ3`) VALUES ('значение1','значение2','значение3');
Для замены уже существующих данных используйте вместо INSERT - REPLACE
Изменение значений:
Code
UPDATE ` таблица` SET `ключ1`='значение1' WHERE `ключ0`='значение0';