# Prior to MySQL 8
mysql> USE mysql;
mysql> SELECT plugin FROM mysql.user WHERE user='root';
+-------------+
| plugin |
+-------------+
| auth_socket |
+-------------+
mysql> SELECT plugin FROM mysql.user WHERE user='basic_db_user';
+-----------------------+
| plugin |
+-----------------------+
| mysql_native_password |
+-----------------------+# MySQL 8 and above
mysql> USE mysql;
mysql> SELECT plugin FROM mysql.user WHERE user='root';
+-------------+
| plugin |
+-------------+
| auth_socket |
+-------------+
mysql> SELECT plugin FROM mysql.user WHERE user='basic_db_user';
+-----------------------+
| plugin |
+-----------------------+
| caching_sha2_password |
+-----------------------+joeuser@localhost:~$ mysql -u joesql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...joeuser@localhost:~$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'So, irritated, you do the standard Linux move of adding ‘sudo’ to make it do what you want:
joeuser@localhost:~$ sudo mysql -u root -p
[sudo] password for joeuser:
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...joeuser@localhost:~$ sudo mysql -u root
[sudo] password for joeuser:
Welcome to the MySQL monitor. Commands end with ; or \g.
...Under the standard defaults for MySQL on recent versions of Ubuntu (at least 16.04-20.04, probably others), these are the commands to most easily connect to the mysql shell:
(enter your sudo password)
Of course, you’ve asked about Debian Linux, not Ubuntu. Ubuntu is derived directly from Debian, and I assume it’s similar to what I’ve said here. Comments about how the above explanation varies among various distributions and versions of Linux are welcome.
- Accessing the MySQL Shell as root
- Finding the MySQL root User’s Password
- Разрешить пользователю root подключаться к MySQL и MariaDB без sudo
- Создание нового пользователя для работы с MySQL через phpMyAdmin
- Содержание
- Установка
- Настройка
- Доступ к серверу из сети
- Кодировки
- Администрирование
- Установка root пароля
- Восстановление забытого пароля для root’a
- Резервное копирование
- Отключение и включение автозагрузки сервиса
- MySQL Workbench
- Тема: проблема с mysql server 5.5 не могу зайти как рут. (Прочитано 2500 раз)
- olegRomanuk
- Protopopulus
- olegRomanuk
- victor00000
- olegRomanuk
- Protopopulus
- olegRomanuk
- victor00000
- Protopopulus
- olegRomanuk
- Инсталляция и первый запуск MySQL.
- Система привилегий и безопасность в MySQL.
- База данных mysql и таблицы привилегий.
- Пояснения:
- Специальные пользователи MySQL.
- Создание и модификация баз данных и таблиц в MySQL.
- Создание баз данных.
- Типы данных в MySQL.
- Создание и модификация таблиц.
- Синтаксис команды LOAD DATA INFILE.
- Общие проблемы и их разрешение.
- Запросы к базе данных и команда Select.
- Основные утилиты MySQL.
- 4.3.4 Задание изначальных привилегий MySQL
Accessing the MySQL Shell as root
sudo -i mysql
/root/.my.cnf
Finding the MySQL root User’s Password
sudo cat /root/.my.cnf
The contents of that file look like this:
[client] user = root password = MYSQL_ROOT_PASSWORD_HERE
#1698 - Access denied for user 'root'@'localhost'
то данная статья поможет вам разобраться в проблеме и устранить её.
Самым простым (и самым безопасным) решением будет создать нового пользователя и предоставить ему требуемые привилегии.
Но начнём мы с другого решения:
Разрешить пользователю root подключаться к MySQL и MariaDB без sudo
Для получения доступа к базе данных MySQL/MariaDB обычному пользователю без использования sudo привилегий, зайдите в приглашение командной строки MySQL
sudo mysql
и запустите следующие команды:
Переключиться на аутентификацию по паролю можно следующим SQL запросом:
use mysql; ALTER USER 'root'@'localhost' IDENTIFIED BY 'ПАРОЛЬ'; exit
Обратите внимание, что вам нужно ввести ПАРОЛЬ.
mysql -u root -p
Это устаревший метод, он не работает в новых версиях MariaDB, но может по-прежнему работать в MySQL.
Для получения доступа к базе данных MySQL/MariaDB обычному пользователю без использования sudo привилегий, зайдите в приглашение командной строки MySQL
sudo mysql
и запустите следующие команды:
use mysql; update user set plugin='' where User='root'; flush privileges; exit
sudo systemctl restart mysql.service mysql -u root -p
==================Конец устаревшего метода==================
Создание нового пользователя для работы с MySQL через phpMyAdmin
1. Подключитесь к mysql
sudo mysql --user=root mysql
Запустите следующие команды (замените some_pass на желаемый пароль):
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;



3. Опционально: разрешение удалённых соединений
Помните: разрешение удалённому пользователю иметь все привилегии – это вопрос безопасности, имейте это ввиду, выполняя последующие шаги. Если вы хотите, чтобы этот пользователь имел те же привилегии во время удалённых подключений, дополнительно выполните (замените some_pass на пароль, используемый на Шаге #2):
CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
# dbc_dbuser: database user # the name of the user who we will use to connect to the database. dbc_dbuser='phpmyadmin' # dbc_dbpass: database user password # the password to use with the above username when connecting # to a database, if one is required dbc_dbpass='some_pass'
Содержание
MySQL — свободная СУБД для малых и средних приложений. Входит в состав LAMP и XAMPP.
Установка
MySQL есть в репозиториях Ubuntu. Он разбит на несколько пакетов.
Для того чтобы установить MySQL сервер выполните команду:
mysql-server
При установке конфигурационный скрипт запросит пароль для администратора (root) базы данных.
Для того чтобы установить консольный клиент MySQL выполните команду:
mysql-client
Для того чтобы установить модуль для работы с MySQL в PHP выполните команду:
php5-mysql
Настройка
Конфигурация сервера MySQL содержится в файле /etc/mysql/my.cnf.
Доступ к серверу из сети
По умолчанию сервер MySQL принимает соединения только с локальной машины. Для того, чтобы разрешить подключаться к нему с других машин замените строку
#разрешить подключатся с любого хоста #разрешить подключатся только с указанного IP
Кодировки
В данном разделе используется распространённое решение проблемы с кодировкой. Стоит помнить, что данное решение не является правильным, хоть и помогает временно решить проблему. Для правильного использования кодировки создавайте или храните таблицы в любой удобной для хранения в СУБД кодировке, а вот клиент должен подключаться к СУБД с указанием той кодировки, с которй выводится текст или производится обработка данных.
По-умолчанию в Ubuntu MySQL устанавливается с кодировкой latin1. В этом можно убедиться посмотрев вывод запроса:
VARIABLES
character_set_client latin1 character_set_connection latin1 character_set_database latin1 character_set_filesystem binary character_set_results latin1 character_set_server latin1 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/
В связи с этим, даже используя при работе с сервером команду
names utf8
и используя при создании таблиц
... CHARACTER utf8 utf8_general_ci
невозможно добиться полной поддержки кодировки utf8:
character_set_client utf8 character_set_connection utf8 ... character_set_server latin1 ... character_sets_dir /usr/share/mysql/charsets/
Кодировка по-умолчанию все равно останется latin1, что неудобно и может привести к ошибкам.
Чтобы сервер сразу загружался с нужной кодировкой, необходимо отредактировать файл /etc/mysql/my.cnf:
etcmysqlmy.cnf
skip-character-set-client-handshake 'SET NAMES utf8'Перезагрузите сервер MySQL:
service mysql restart
После этого список переменных будет выглядеть так:
character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server utf8 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/
Если на момент изменения настроек кодировки в базе уже присутствовали записи содержащие кириллицу, то они будут иметь неверную кодировку. Перед изменением кодировки убедитесь что в базе нет таблиц и данных, либо сделайте дамп всех данных из базы до внесения изменений настроек и восстановите после внесения изменений и перезагрузки MySQL.
Администрирование
Установка root пароля
sudo mysql_secure_installation
Восстановление забытого пароля для root’a
Схожая проблема возникает если не задать пароль при установке MySQL, в этом случае mysql использует плагин unix-socket.
service mysql stop
mysqld =root
Подключитесь к MySQL-серверу командой:
mysql root
service mysql restart
Теперь можете проверить вход под root с новым паролем:
mysql root
Резервное копирование
Для создания резервных копий существует специальная утилита mysqldump. Основные ее параметры приведены в таблице:
Отключение и включение автозагрузки сервиса
Начиная с версии Ubuntu 15.04 отключение и включение сервисов возможно одной командой, без редактирования конфигов. В примерах команд ниже слово «SERVICE» следует заменить на «mysql».
Узнать стоит ли сервис в автозагрузке:
$ systemctl is-enabled SERVICE
Убрать сервис из автозагрузки в Ubuntu-16.04:
$ sudo systemctl disable SERVICE
Добавить сервис в автозагрузку в Ubuntu-16.04:
$ sudo systemctl enable SERVICE
MySQL Workbench
MySQL Workbench – инструмент для визуального проектирования баз данных. MySQL Workbench существует в двух вариантах:
Community Edition – бесплатная версия, распространяемая под лицензией GPL3
Standard Edition – платная версия, включающая в себя некоторые дополнительные возможности.
Пакет вложенный на официальном сайте не подходит для Ubuntu 12.04 и выше. Это связано с тем, что пакет libzip1, прописанный в зависимостях был исключен из репозиториев. Как временное решение используйте PPA ppa:olivier-berten/misc .
Тема: проблема с mysql server 5.5 не могу зайти как рут. (Прочитано 2500 раз)
0 Пользователей и 1 Гость просматривают эту тему.
From what I read in docs, when you run mysql_secure_installation, a temporary root password is generated and is stored in some log file.
sudo grep 'temporary password' /var/log/mysqld.logbut it is configured with the auth_socket plugin. You will only be able to connect using the UNIX socket, therefore any attempt to connect using your local IP or the network fails. Later on, you can change the password to allow connections from the network (as explained in this blog post).
All we can do now is to see the root password. Lets change the root password since you cannot understand hashed password even if we can see it:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networkingthen run mysql in a new terminal
mysql -u rootUPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;quit the mysql safe mode and start mysql service by
mysqladmin shutdown
sudo service mysql startИнсталляция и первый запуск MySQL.
Если вы работаете на Unix-платформе(в частности я буду приводить примеры для Linux,которые немногим отличаются для других Unix-платформ),нужно выполнить следующие шаги:
Распаковывать исходники нужно в каталог /usr/local,так как в настроечных скриптах указывается именно эта директория и создать симлинк для каталога mysql-это делается,потому что в тех же скриптах указывается этот каталог.Нужно подредактировать скрипты mysql_install_db и safe_mysqld применительно к вашей системе,для того,чтобы они начали работать,в частности исправить путь для указания местоположения mysqld и баз данных.
Для запуска демона mysqld нужно перейти в каталог /usr/local/mysql/bin и запустить скрипт safe_mysql в фоновом режиме.Если вы не получили никаких сообщений,это уже хорошо-значит,все прошло успешно.Если же появилось сообщение об ошибке,значит что-то не в порядке со скриптами.Можно настроить запуск сервера mysql во время загрузки компьютера.Для этого нужно поместить запуск safe_mysql в один из файлов инициализации системы(они разные в зависимости от версии Linux).
Для Linux Slakware в файл /etc/rc.d/rc.local нужно добавить:
Что касается Windows,поклонником которого я являюсь,то здесь установка проходит практически без проблем.Распаковываете zip-архив,запускаете exe-файл,а дальше все работает само.Устанавливается обычно в каталог c:mysql.
В Windows NT MySQL устанавливается в виде службы и можно указать способ запуска-ручной или автоматический (Start-Settings-Control Panel-Services-MySQL-Startup).
Управление сервером обычно осуществляется из командной строки.Насчет Linux я уже писал,а в Windows 95/98 откройте сеанс DOS и выполните следующие команды:
cd mysqlbin
mysqlbin>mysqld --standaloneЭта команда запустит демон mysql в фоновом режиме.В Windows 95/98 не предусмотрен запуск mysqld в виде службы.Отсутствие сообщений при этом -хороший знак,значит все в порядке.
При запуске mysqld можно указывать следующие опции:
Примечание.Команды mysqld и mysql имеют еще некоторые опции,но в данный момент они особого интереса не представляют.
mysqlbin>mysql -u root mysql
Welcome to the MySQL monitor.Commands end with ; or g.
Your MySQL connection id is 1 to server version: 3.23.19
Type 'help' for help.
mysql>Если вы это получили,значит вы успешно вошли в базу данных mysql,которая используется для администрирования сервера.В ней содержатся 5 таблиц,называемых таблицами привилегий.Система привилегий будет подробно рассмотрена в следующих разделах,а пока выполните следующее:
mysqlbinmysql -u root -p mysql
Enter password:*******Система привилегий и безопасность в MySQL.
База данных mysql и таблицы привилегий.
Итак,вы успешно вошли в базу данных mysql,которая используется для администрирования сервера.Что же здесь находится?А находятся здесь 5 таблиц,которые ничем не отличаются от других таблий баз данных,за исключением того,что эти таблицы используются для предоставления доступа к базам данных и таблицам в них пользователям.Рассмотрим каждую из них.
Введите следующую команду,которая покажет таблицы в базе данных mysql:
mysql>show tables;
Кратко рассмотрим функции каждой из таблиц:
- User
Определяет,разрешено ли пользователю,пытающемуся подключиться к серверу делать это.Содержит имя пользователя,пароль а также привилегии.Если ввести команду show columns from user;,то получим следующее:Изначально эта таблица содержит пользователя root с паролем,который вы установили и именем хоста ‘%’.По умолчанию root может входить с любого хоста,имеет все привилегии и доступ ко всем базам данных.Также в таблице содержится запись для пользователя ‘%’,которую нужно сразу же удалить,так как она предоставляет доступ любому пользователю.
Для добавления нового пользователя выполните следующие действия:
Пояснения:
- Db
Определяет к каким базам данных каким пользователям и с каких хостов разрешен доступ.В этой таблице можно предоставлять каждому пользователю доступ к базам данных и назначать привилегии.
Eсли выполнить команду show columns from db; получим следующее:По умолчанию,все привилегии установлены в ‘N’.Например,предоставим юзеру john доступ к базе данных library и дадим ему привилегии select,insert и update(описание основных команд mysql будет дано в отдельном разделе,сейчас моя цель-показать,как работают таблицы привилегий).
- Host
Таблица host используется для расширения диапазона доступа в таблице db.К примеру,если доступ к какой-либо базе данных должен быть предоставлен более чем одному хосту,тогда следует оставить пустой колонку host в таблице db,и внести в таблицу host необходимые имена хостов.
Выполним команду show columns from host;
Как видно из таблицы,здесь также можно задавать привилегии для доступа к базе данных.Они обычно редко используются без необходимости.Все привилегии доступа нужно задавать в таблице db для каждого пользователя,а в таблице host только перечислить имена хостов.Сервер читает все таблицы,проверяет имя пользователя,пароль,имя хоста,имя базы данных,привилегии.Если в таблице db привилегии select,insert установлены в ‘Y’,а в таблице host в ‘N’,то в итоге юзер все равно получит ‘Y’.Чтобы не вносить путаницы,лучше назначать привилегии в таблице db.
Эти 3 таблицы являются основными.В новых версиях MySQL,начиная с 3.22 добавлены еще 2 таблицы- tables_priv и columns_priv,которые позволяют задать права доступа к определенной таблице в базе данных и даже к определенной колонке.Они работают подобно таблице db,только ссылаются на таблицы и колонки.
Также,начиная с версии 3.22 можно использовать команду GRANT для предоставления доступа к базам данных,таблицам и колонкам таблиц,что избавляет от необходимости вручную модифицировать таблицы db,tables_priv и columns_priv.Команда GRANT будет подробно рассмотрена в следующих разделах.
Select-используется для извлечения информации из таблиц.Select можно также использовать не имея разрешения на доступ к какой-либо БД,например,как калькулятор.
Сервер выдаст результат.Пример использования Select:
mysql>select fname,lname,address from customers where city='New York';
Insert-используется для вставки информации в таблицу.Например:
mysql>insert into data2 (first_col,third_col,sixth_col) values ('Bob','Smith','bob@fdrt.net');Update-позволяет обновлять информацию в таблицах.Например:
mysql>update numbers set field3='129867' where field5='567483';
Delete-используется для удаления информации из таблиц.
mysql>delete from indexes where u_id='2201';
Alter-используется для модификации таблиц:переименования таблицы,добавления колонок,изменения колонок,удаления колонок.Примеры:
mysql>alter table wind rename newwind; mysql>alter table newwind add master_con varchar(20); mysql>alter table newwind change retail wholesale varchar(60); mysql>alter table newwind drop field021;
Create-позволяет создавать базы данных и таблицы в них.Примеры:
mysql>mysqladmin -u john -ptest create mydb //Создает пустую БД. mysql>use mydb; Database changed. create table monitoring ( id int(5) not null auto_increment, first_name varchar(15) not null, last_name varchar(20) not null, address varchar(80) not null, primary key (id), key(last_name));
Drop-ипользуется для удаления таблиц и баз данных.
Grant-позволяет пользователю предоставлять другим пользователям привилегии,которыми он сам обладает.Два пользователя с различными привилегиями и привилегий GRANT могут комбинировать свои разрешения.
Index-позволяет пользователю создавать и удалять индексы.
Специальные пользователи MySQL.
- monty
Следует заметить,что следует внести данные как для localhost,так и для ‘%’,то есть любого хоста в сети.
- admin
- dummy
Пользователь,который может входить на сервер без пароля ,но только с локального хоста.Все
глобальные привилегии устанавливаются в ‘N’ кроме «USAGE»,что позволяет dummy создавать пользователей без привилегий.Права доступа к базам данных должны быть заданы root’ом.
Создание и модификация баз данных и таблиц в MySQL.
- Создание баз данных
- Типы данных в MySQL
- Создание и модификация таблиц
Создание баз данных.
mysqlbin>mysqladmin -u root -p create data1 Enter password:****** Database "data1" created. mysqlbin>
По умолчанию,root имеет доступ ко всем базам данных и таблицам.Перейти в созданную базу данных можно,используя команду mysql.
mysqlbin>mysql -u root -p data1 Enter password:****** Welcome to MySQL monitor.
Или,находясь в другой базе данных,например в mysql ввести команду:
mysql>use data1 Database changed.
Теперь можно создавать таблицы и вводить информацию.
Типы данных в MySQL.
Прежде чем создавать таблицы,необходимо ознакомиться с тем,какие типы данных поддерживает MySQL.Все они представлены в нижеследующей таблице:
Создание и модификация таблиц.
Cоздадим таблицу customers в БД data1:
mysql>use data1 Database changed. mysql>create table customers ( emp_id int(4) not null auto_increment, emp_name varchar(10) not null, emp_lname varchar(15) not null, address varchar(60) not null, phone int(10), primary key(emp_id));
Мы создали пустую таблицу.Вводить данные в нее можно несколькими способами:
а)вручную,используя команду insert into;
б)загрузить данные из текстового файла,что является более предпочтительным,особенно если нужно ввести несколько тысяч записей.Синтаксис этой команды будет описан позже.
в)использовать утилиту mysqlimport также для загрузки данных из текстового файла.
Пример ввода данных вручную:
mysql>insert into customers (emp_id,emp_name,emp_lname,address,phone)
-->values ('1001','John','Walker','New York','1236458794');
или
mysql>insert into customers values ('1001','John','Walker','New York','1236458794');
//работает и то,и то.Что касается auto_increment в столбце emp_id,это означает,что числовое значение этого столбца будет автоматически увеличиваться на единицу с каждой новой записью.То есть,если мы ввели значение 1001,то следующее будет 1002 и т.д.Значение в такой столбец вводится один раз для задания точки отсчета,а дальше сервер будет сам подставлять нужные значения.
Синтаксис команды LOAD DATA INFILE.
DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY 't'] [OPTIONALLY] ENCLOSED BY ''] [ESCAPED BY '' ]] [LINES TERMINATED BY 'n'] [IGNORE number LINES] [(col_name,...)]
Предположим,существует некоторый текстовый файл 123.txt,содержащий 2000 записей,которые нужно внести в таблицу.Нужно создать таблицу,имеющую такую же структуру и такое же число полей,как и файл(а также подходящие типы данных).Предположим,что поля в файле разделены запятыми.Кроме того,файл должен находиться в нужной базе данных.
Вводим следующую команду:
LOAD DATA INFILE ‘123.txt’ into table customers fields terminated by ‘,’;
Это все.Данные из файла помещаются в таблицу.
Для модификации таблиц и данных в них используются команды update и alter table.
Рассмотрим их действие на примере таблицы customers:
Пример действия команды alter table:
mysql>alter table customers add last_accessed date;
mysql>insert into customers (last_accessed) values ('20000512') where
-->emp_id='1003';
mysql>alter table customers rename customers buyers;
mysql>alter table buyers change phone telephone int(11);После выполнения этих команд таблица примет следующий вид:
Можете проверить это сами 🙂
Изменение данных в таблицах производится с помощью команды update.Для примера возьмем ту же таблицу buyers.
mysql>update buyers set address='Seattle' where emp_lname='Smith';
Для модификации таблиц используются также команды Drop и Delete.
Delete-удаляет строку из таблицы.Например,если ввести команду
delete from buyers where emp_id=’1002′
будет удалена строка для Bill Smith.
Drop-если используется в Alter table удаляет колонку из таблицы.
Команда Drop также используется для удаления таблиц и баз данных.Пользоваться ею следует осторожно,так как любое удаление необратимо,восстановить данные можно только из резервной копии.
Общие проблемы и их разрешение.
Это очень важный шаг и необходимо быть внимательным.Единственный выход при этом в Windows-деинсталлировать сервер и установить по новой,благо еще ничего не настроено.
Если такую проблему испытывает пользователь,вероятно причина в неправильной настройке таблиц привилегий,в первую очередь та же установка пароля,или записи в таблицах db и host неверны.Рассмотрим это на простом примере:
select * from data2.authors;
Предположим,что jerry временно работает в другом отделе,который находится в другом домене,и когда он пытается получить доступ к базе данных,он получает Access denied,поскольку компьютерам этого домена не разрешен доступ к базе данных.В данном случае нужно поступить следующим образом:очистить поле Host в таблице Db,а в таблицу Host занести следующие данные:
В MySQL версий 3.22 и выше работает очень хорошая команда GRANT,с помощью которой можно предоставлять пользователям доступ к базам данных и таблицам без модификации таблиц привилегий вручную.
С помощью этой команды можно указывать привилегии на доступ даже к определенным столбцам таблицы:
Применение этой команды автоматически помещает данные в таблицы Db,Tables_priv и Column_priv,что избавляет от необходимости их ручной модификации.
Если нужно отнять у пользователя какую-либо привилегию,используйте команду REVOKE.
Запросы к базе данных и команда Select.
Я не ставлю целью углубляться в изучение языка SQL,об этом вы можете прочитать в любом руководстве по SQL Server,MySQL в основном поддерживает все основные команды стандарта ANSI 92,но команда Select заслуживает того,чтобы посвятить ей отдельную главу.
Команда Select используется для запросов к базе данных с целью извлечения из нее информации.Синтаксис команды следующий:
SELECT [STRAIGHT_JOIN] [DISTINCT | ALL] select_expression,... [FROM tables... [WHERE where_definition] [GROUP BY column,...] [ORDER BY column [ASC | DESC], ...] HAVING full_where_definition [LIMIT [offset,] rows] [PROCEDURE procedure_name]] [INTO OUTFILE 'file_name'... ]
Как видно из вышеприведенного,вместе с командой Select используются ключевые слова,использование которых очень влияет на ответ сервера.Рассмотрим каждое из них.
Ну вот вкратце и все.MySQL поддерживает почти все основные команды SQL Server,так что более подробно
о команде SELECT вы можете прочитать в любом учебнике по языку SQL.
Основные утилиты MySQL.
В состав дистрибутива MySQL входят следующие утилиты:
- mysqld
- mysql
- mysqladmin
- mysqlaccess
- mysqlshow
- mysqldump
- isamchk
- isamlog
- safe_mysqld(для Unix-версий)
Используется для проверки привилегий пользователя для доступа к конкретной базе данных.
Общий синтаксис:
Полезная утилита для проверки прав доступа пользователя,если он получает сообщение Access denied,при попытке соединиться с базой данных.
Используется,чтобы показать,с какими базами данных работает сервер,какие таблицы содержит каждая БД
и какие колонки есть в каждой таблице.Синтаксис:
Mysqlshow может использовать следующие параметры:
Если ввести mysqlshow без аргументов,будут показаны все базы данных,если указать имя БД,
будут показаны все таблицы в ней.
Используется для для создания дампа содержания базы данных (резервной копии).Можно записать содержимое
базы данных в файл.Синтаксис:
Mysqldump может использовать следующие параметры:
С помощью этой утилиты можно осуществлять восстановление таблиц,управление таблицами и сбор
статистики.Синтаксис:
Isamchk используется для проверки непротиворечивости таблиц и устранения проблем,которые это может вызвать.
Если пользователь часто удаляет и добавляет данные в таблицах,эта утилита будет очень полезной.
Isamchk может использовать следующие опции:
При использовании опции -r нужно остановить mysqld.Перед началом работы нужно перейти
в каталог,где находится таблица,нуждающаяся в проверке или ремонте.
Журнал транзакций,используется с опцией —log-isam=file_name демона mysqld.В файл записываются
все изменения,происходящие в базе данных.Может использоваться для восстановления базы данных.
Если есть резервная копия базы данных до того,как был сгенерирован isam-журнал,то информацию можно легко восстановить.
Если нет копии,то нужно использовать все журналы с начала работы базы данных.
Cкрипт для запуска демона mysqld в Unix-версиях.Выполняется при начальной загрузке системы.
Для автоматического запуска нужно добавить запись в один из файлов инициализации системы.
4.3.4 Задание изначальных привилегий MySQL
После установки MySQL изначальные привилегии доступа задаются при помощи
`scripts/mysql_install_db'. See section 2.3.1 Обзор быстрой установки. Скрипт mysql_install_db запускает
сервер mysqld, а затем инициализирует таблицы предоставления привилегий со
следующим набором привилегий:
В качестве суперпользователя создается MySQL
rootкоторый может делать
все, что угодно. Соединения должны устанавливаться с локального
компьютера.Примечание: Изначально пароль
rootпуст, поэтому кто
угодно может подсоединиться в качествеrootбез пароля и получить все
привилегии.Создается анонимный пользователь, который может выполнять любые
операции над базами данных с именамиtestили начинающимися сtest_.
Соединения должны устанавливаться с локального компьютера. Это
означает, что любой локальный пользователь может подключиться без
пароля и будет воспринят сервером как анонимный пользователь.Остальные привилегии запрещены. Например, обычный пользователь не
может использовать командыmysqladmin shutdownилиmysqladmin.
processlist
Примечание: В Windows принятые по умолчанию привилегии отличаются от
указанных. See section 2.6.2.3 Работа MySQL в среде Windows.
Поскольку сразу после установки программа совершенно не защищена, первым
делом необходимо задать пароль для пользователя MySQL root. Это можно
сделать следующим образом (обратите внимание, что пароль указывается при
помощи функции PASSWORD()):
shell> mysql -u root mysql
mysql> SET PASSWORD FOR root@localhost=PASSWORD('new_password'); Опытные пользователи могут работать непосредственно с таблицами назначения
привилегий:
shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password') -> WHERE user='root';
mysql> FLUSH PRIVILEGES;shell> mysqladmin -u root password new_password
Изменять пароли других пользователей могут только пользователи с правом
записи/обновления базы данных mysql. Все обычные пользователи (не
анонимные) могут модифицировать только свой собственный пароль при помощи
указанных выше команд или команды SET PASSWORD=PASSWORD('new_password').
После того, как был задан пароль root, этот пароль необходимо будет
вводить, подсоединяясь к серверу как root.
Можно оставить пароль root пустым, тогда не придется его указывать во
время проведения дополнительных установок и тестирования. Тем не менее,
обязательно укажите его, прежде чем использовать сервер для любой реальной
работы.
Ознакомьтесь со скриптом `scripts/mysql_install_db', чтобы увидеть, как
задавать привилегии по умолчанию. Данный скрипт можно использовать как
основу для добавления других пользователей.
Если необходимо, чтобы изначальные привилегии отличались от указанных
выше, можно изменить базу mysql_install_db еще до ее запуска.
Чтобы полностью заново создать таблицы предоставления привилегий, удалите
все файлы с расширениями `.frm', `.MYI' и `.MYD' в каталоге, где находится база
данных mysql (это каталог с именем mysql в каталоге базы данных, который
выводится на экран при запуске команды mysqld --help). Затем запустите
скрипт mysql_install_db (возможно, после добавления в него необходимых
привилегий).
Примечание: в более старых, чем 3.22.10, версиях MySQL файлы с расширением
`.frm' удалять не следует. Если же случайно они были удалены, их следует
восстановить, скопировав из дистрибутива MySQL до запуска
mysql_install_db.







