Windows зайти под root mysql

Обновлено: 03.07.2024

Если на экране появляется приветствие mysql, то всё прошло ok.

Для выхода из командной строки mysql можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой ";". При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить ";" и нажать "enter".

Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:

Результатом будет что то вроде этого:

Выбрать базу данных jeka:

Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):

Просмотреть структуру таблицы (имена и тип полей):

Достать информацию о юзере с >

Бэкап структуры таблицы, а точнее sql-запрос на её создание

Если в конце запроса поставить не ; а \G, то результат будет показан другим образом - иногда весьма удобно, если таблица имеет много полей:

mysql использования /G вместо; дебаг запроса.

Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:

Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.

Подробнее о том, как изменять структуру mysql-таблиц (alter table).

Что делать если вижу знаки вопросов вместо текста в MySQL?

Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:

Нужно добавить в .ini файл либо выполнить в консоли команду "SET NAMES utf8", после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:

Как сделать бэкап базы mysql через консоль Linux?

Сделать бэкап базы database в файл dump_name.sql

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.

Развернуть базу из файла через командную строку

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу

Сделать дамп структуры одной таблицы mysql (без данных):

Например, задампим таблицу users из базы данных mydatabase:

Развернуть mysql-dump в БД с именем database_name:

Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:

Заключение

Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.

Поисковые запросы , по которым приходили пользователи


Дата добавления: 9 лет назад mysql
  • Установить mysql 5.6 на travis Решено!
  • Как переименовать таблицу в MySQL? Решено!
  • Got a packet bigger than 'max_allowed_packet' bytes - ошибка mysql Решено!
  • mysqldump только структуры таблиц 1 ответ
  • MySQL ошибки Lost connection to MySQL server at 'waiting for initial communication packet' 1 ответ
  • MySQL - изменение полей, структуры таблицы 0 комментариев
  • Запросы инъекции для mysql 0 комментариев
  • Доступ к mysql из-вне3 комментария
  • Mysql перенос таблиц из одной базы данных в другую 0 комментариев
  • Анализ производительности MySQL с использованием performance_schema 0 комментариев

Комментарии 2

Viktor, спасибо. Судя по скринам, штука интересная.
Правда, уж больно много зависимостей она имеет.. Как решу проблему с зависимостями, отпишусь.

Сервер mysqld может запускаться и работать от любого пользователя. Чтобы настроить mysqld для работы под Unix-пользователем user_name , необходимо выполнить следующие действия:

Если сервер работает, остановите его (используйте mysqladmin shutdown ).

Измените каталоги и файлы баз данных так, чтобы user_name имел привилегии для чтения и записи файлов в этих каталогах (возможно, это нужно будет делать из Unix-аккаунта root ):

Если среди каталогов или файлов в каталоге данных MySQL присутствуют символические ссылки, то нужно будет также перейти по этим ссылкам и изменить каталоги и файлы, на которые они указывают. chown -R может не отработать символических ссылок.

Запустите сервер из аккаунта user_name или, если у вас MySQL 3.22 и выше, запустите mysqld из Unix-аккаунта root и используйте опцию --user=user_name . mysqld переключится на выполнение в контексте Unix-пользователя user_name до того, как начнет обслуживать запросы на соединение.

Чтобы запускать сервер от имени данного пользователя автоматически в ходе загрузки системы, добавьте строку user, указывающую имя пользователя, в группе [mysqld] файла опций /etc/my.cnf или файла опций my.cnf из каталога данных сервера. Например:

К этому моменту процесс mysqld должен без помех работать под Unix-пользователем user_name . Однако содержимое таблиц привилегий не изменяется. По умолчанию (сразу после выполнения скрипта инсталляции таблиц привилегий mysql_install_db ) MySQL-пользователь root является единственным пользователем с правами на доступ к базе данных mysql , а также на создание и удаление баз данных. Если вы не меняли этих полномочий, они по-прежнему действительны. То, что вы вошли в систему как Unix-пользователь, отличный от root , не может вам помешать получить доступ к MySQL в качестве MySQL-пользователя root; просто задайте клиентской программе опцию -u root .

Отметим, что работа с MySQL в качестве MySQL-пользователя root посредством указания -u root в командной строке не имеет ничего общего с выполнением MySQL под Unix-пользователем root , или вообще под каким бы то ни было Unix-пользователем. Привилегии доступа и имена пользователей MySQL никак не связаны с именами Unix-пользователей. Единственная связь с именами Unix-пользователей заключается в том, что если при запуске клиентской программы не задана опция -u , то клиент попытается соединиться, используя в качестве имени MySQL-пользователя имя Unix-аккаунта.

Если Unix-сервер не слишком хорошо защищен или не нуждается в повышенных мерах безопасности, следует как минимум установить в таблицах привилегий пароль для MySQL- пользователя root. В противном случае любой пользователь с аккаунтом на данной машине сможет запустить mysql -u root db_name и делать в MySQL все, что ему заблагорассудится.

Создание нового пользователя и настройка прав доступа в MySQL

В современных реалиях сложно найти даже самое простое приложение, которое бы не требовало подключения базы данных – места для хранения электронной информации. Обычно для работы с такими хранилищами используется система управления базами данных. MySQL – самая распространенная и популярная СУБД в мире.

Давайте выясним, чем же она хороша и как с ней работать.

База данных MySQL: что это такое и в чем ее преимущества

MySQL – это реляционная система управления базами данных с открытым исходным кодом, написанная на языках программирования C и C++. Благодаря ей можно оптимизировать работу сайта или мобильного/десктопного приложения.

База данных – это место для структурированного хранения данных. Например, чтобы найти в смартфоне сохраненную картинку, мы используем для этого галерею. В данном случае картинки – это данные, а галерея – база данных.

Такой же подход используется и на многих сайтах, где подключены формы регистрации, системы оформления заказа и прочее. Когда вы регистрируетесь на сервисе, вся полученная от вас информация сохраняется в базе данных – благодаря этому вы можете повторно войти в свой аккаунт и получить доступ к внесенным ранее изменениям.

Если вести крупный ресурс без БД, то на это будет уходить очень много времени и средств. Базы данных группируют и упорядочивают информацию, упрощают получение доступа к ней. Чтобы администрировать такой большой поток данных, используются СУБД: MySQL, Microsoft SQL Server, PostgreSQL и другие.

MySQL хранит всю информацию в табличном виде. Извлечь данные из одной или нескольких таблиц можно с помощью запроса. Запросы в MySQL – это то, на чем все строится, с их помощью можно выполнять всевозможные операции с данным.

Столбцы таблицы всегда строго упорядочены, а расположение строк при необходимости может меняться в зависимости от информации в ячейках. Посмотрите на простую адресную книжку в виде таблицы:

Как работает база данных MySQL

Принцип работы с таблицами следующий: к серверу, на котором хранятся и обрабатываются структурированные данные, подключаются клиенты для получения необходимой информации, а для взаимодействия между пользователем и сервером используется специальное ПО. Заполнение подобных и более крупных таблиц происходит с помощью языка программирования SQL.

Исходя из пользовательского опыта, можно выделить следующие особенности MySQL:

  • быстрая скорость доступа и обработки данных;
  • надежная защита информации;
  • простота использования;
  • совместимость с Windows и Linux;
  • бесплатность;
  • возможность контролировать доступ к данным и учетным записям;
  • шифрование паролей.

На этом с теоретической частью закончим.

VDS Timeweb арендовать

Создание нового пользователя в MySQL

После установки MySQL в базе данных автоматически будет создан новый пользователь root. Работать под таким именем небезопасно, поэтому рекомендуется создавать нового пользователя и выполнять необходимые действия под ним. Давайте рассмотрим два способа создания нового пользователя в MySQL – через phpMyAdmin и через консоль.

Вариант 1: с помощью phpMyAdmin

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

Чтобы добавить нового пользователя в phpMyAdmin, воспользуемся инструкцией:

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

Вариант 2: через консоль

Если вы подключаетесь к серверу по SSH, то этот способ для вас. Нам потребуется выполнить несколько команд:

Первым дело активируем сервер базы данных:

Создадим нового пользователя:

В кавычках потребуется изменить следующие данные: user – имя пользователя, pswrd – пароль.

Пока что пользователь не имеет разрешений, а значит, не может получить доступ к MySQL. Для решения такой проблемы пропишем еще одну строчку кода:

Мы выдали указанному пользователю все доступные права. Осталось сохранить внесенные изменения с помощью команды:

Готово! Теперь вы знаете, как создать нового пользователя в MySQL с правами доступа root.

Права доступа

В MySQL выделяют следующие права доступа:

  • ALL PRIVILEGES – предоставляет полный доступ к выбранной БД;
  • CREATE – разрешает пользователям создавать новые БД;
  • SELECT – разрешает делать выборку данных;
  • INSERT – позволяет вносить новые записи в таблицы;
  • UPDATE – разрешает менять ранее созданные записи в таблицах;
  • DELETE – разрешает удалять записи из таблиц;
  • DROP – дает возможность удалять записи в БД;
  • GRANT OPTION – позволяет пользователю предоставлять или отзывать права других пользователей.

Как изменить права доступа в MySQL

Чтобы предоставить те или иные права доступа, мы можем воспользоваться административной панелью или консолью.

Способ 1: через phpMyAdmin

Изменяем права доступа:

Таким образом, мы настроили права доступа для одного пользователя. Впоследствии вы сможете их изменить аналогичным способом.

Вариант 2: в терминале

В данном случае нам потребуется всего несколько команд. Если требуется изменить права доступа для выбранного пользователя MySQL, то необходимо выполнить следующее:

Значения внутри скобок необходимо заменить:

  • наименование БД – указываем базу данных;
  • наименование таблицы – указываем имена таблиц, к которым необходимо выдать доступ, прописываем .*, чтобы разрешить доступ ко всем таблицам;
  • права — указываем тип прав, рассмотренный ранее;
  • user – имя пользователя.

Если нужно указать несколько прав, то их необходимо прописать через запятую:

Если нужно удалить права у выбранного пользователя:

Забрать все права:

Полностью удалить пользователя можно командой:

Как посмотреть права доступа в MySQL

Для того чтобы посмотреть, какие права доступа выданы пользователю MySQL, достаточно в консоли прописать команду:

На этом моя статья подходит к концу. Надеюсь, что создать нового пользователя в MySQL для вас больше не проблема. Спасибо за внимание!

MYSQL был установлен давно. Теперь, поскольку мне нужно использовать MYSQL, но я забыл пароль, я поискал его в Интернете в час ночи. Большинство методов в Интернете - это добавление –skip-grant-tables в My.ini или My_default.ini Метод достижения пропустить пароль Mysql для подключения к базе данных и изменить пароль. Ни один из этих методов у меня не работает. Наконец, объединив два блога, я нашелнадежныйМетод записывается на тот случай, если вы забудете пароль позже.

Запомните исходный парольВ случае изменения нового пароля:
После входа в базу данных введите

как показано на картинке:

Измените пароль пользователя root @ localhost на admin:


Шаг 1. Отключите службу mysql.

  1. Откройте cmd от имени администратора, переключите каталог с диска C по умолчанию на каталог установки mysqld.exe, мой каталог установки по умолчанию: C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin
  1. cmd input команда: net stop mysql, обязательно закройте службу mysql

(Если здесь сообщается об ошибке, возможно, имя службы MySQL - не MySQL, а имя моей службы MySQL - MySQL80, поэтому я использую команду net stop mysql80 для завершения службы mysql)


Шаг 2. Пропустите проверку пароля Mysql

После закрытия службы Mysql продолжайте работу в каталоге C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin.
ввод

После ввода этой строки кода я успешно пропустил вход в систему с паролем Mysql


Шаг 3. Введите Mysql без пароля

Затем откройте cmd.exe, запущенный в режиме администратора, войдите в каталог bin в mysql, войдите в MySQL без пароля учетной записи, а затем сбросьте пароль пользователя root системы баз данных на admin.

  1. Введите следующую командную строку, чтобы войти в MySQL без пароля учетной записи.



  1. Сбросьте пароль, установите пароль для root @ localhost = «новый пароль»;
    В качестве примера возьмем установку нового пароля admin, введите


Наконец-то вы закончили, успешно сбросили пароль!


Говорят, что лучший пароль — тот, который не надо запоминать. В случае с MySQL это реально благодаря плагину auth_socket и его версии для MariaDB — unix_socket.

Оба эти плагина — вовсе не новы, о них много говорилось в этом же блоге, например в статье о том, как изменять пароли в MySQL 5.7, используя плагин auth_socket. Однако, разбирая, что новенького в MariaDB 10.4, я обнаружил, что unix_socket теперь устанавливается по умолчанию и является одним из методов аутентификации ("одним из", потому как в MariaDB 10.4 одному пользователю для аутентификации доступно больше одного плагина, что и объяснятется в документе "Аутентификация" от MariaDB 10.04).

С пакетами Debian для MySQL, root пользователь аутентифицируется следующим образом:

То же и в случае с пакетом .deb для MariaDB:

Пакеты .deb из официального репозитория Percona также настраивают аутентификацию пользователя с root-правами под auth-socket и для Percona Server. Приведем пример с Percona Server for MySQL 8.0.16-7 и Ubuntu 16.04:

Так в чем же магия? Плагин проверяет, что пользователь Linux соответствует пользователю MySQL, используя сокет-опцию SO_PEERCRED — чтобы собрать информацию о пользователе, запускающем клиентскую программу. Таким образом, плагин можно использовать только на системах, поддерживающих опцию SO_PEERCRED, вроде той же Linux. Сокет-опция SO_PEERCRED позволяет узнавать uid связанного с сокетом процесса. А после он уже получает связанное с этим uid имя пользователя.

Приведем пример с пользователем "vagrant":

Поскольку в MySQL нет пользователя "vagrant", в доступе нам отказано. Создадим такого пользователя и повторим попытку:

Получилось!

Ну, а как насчет не-Debian дистрибутива, где это не предусмотрено по умолчанию? Попробуем Percona Server for MySQL 8, установленный на CentOS 7:

Облом. Чего же не хватило? Плагин не загружен:

Добавим в процесс плагин:

Теперь у нас есть все необходимое. Попробуем еще разок:

Теперь можно войти в систему под логином "percona".

И снова получилось!

Вопрос: получится ли войти в систему под тем же логином percona, но от другого ользователя?

Нет, не получится.

Вывод

MySQL достаточно гибкая в нескольких аспектах, один из которых — метод аутентификации. Как видно из этого поста, доступ можно получить без паролей, на основании пользователей ОС. Это может быть полезно при определенных сценариях, и один из них — когда мигрируете с RDS/Aurora на обычную MySQL, пользуясь аутентификацией базы данных IAM, чтобы по-прежнему получать доступ, но без паролей.

Читайте также: