Login mysql: how to log in to mysql and query the database from linux terminal
Содержание
CREATE LOGIN SQL Server — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite
В этом учебном пособии вы узнаете, как использовать CREATE LOGIN в SQL Server с синтаксисом и примерами.
Описание
Оператор CREATE LOGIN создает идентификатор, используемый для подключения к экземпляру SQL Server. Login затем сопоставляется с пользователем базы данных (поэтому перед созданием пользователя на SQL Server вы должны сначала создать Login).
Существует четыре типа логинов, которые можно создать в SQL Server:
- Вы можете создать Login с использованием проверки подлинности Windows.
- Вы можете создать Login с использованием проверки подлинности SQL Server.
- Вы можете создать Login из сертификата.
- Вы можете создать Login из асимметричного ключа.
Синтаксис
Синтаксис оператора CREATE LOGIN с использованием проверки подлинности Windows:
CREATE LOGIN [domain_name\login_name]
FROM WINDOWS
[ WITH DEFAULT_DATABASE = database_name
| DEFAULT_LANGUAGE = language_name ];
ИЛИ Синтаксис оператора CREATE LOGIN с использованием проверки подлинности SQL Server:
CREATE LOGIN login_name
WITH PASSWORD = { ‘password’ | hashed_password HASHED } [ MUST_CHANGE ]
[ , SID = sid_value
| DEFAULT_DATABASE = database_name
| DEFAULT_LANGUAGE = language_name
| CHECK_EXPIRATION = { ON | OFF }
| CHECK_POLICY = { ON | OFF }
| CREDENTIAL = credential_name ];
ИЛИ
Синтаксис оператора CREATE LOGIN с использованием сертификата:
CREATE LOGIN login_name
FROM CERTIFICATE certificate_name;
ИЛИ
Синтаксис оператора CREATE LOGIN с использованием асимметричного ключа:
CREATE LOGIN login_name
FROM ASYMMETRIC KEY asym_key_name;
Параметры или аргументы
domain_name — имя учетной записи домена Windows.
login_name – наименование login.
database_name — база данных по умолчанию для которой назначен Login.
language_name — язык по умолчанию для назначения Login.
CHECK_EXPIRATION — по умолчанию он установлен в положение OFF. Этот параметр определяет, будет ли применяться политика истечения срока действия пароля. Вы должны указать CHECK_EXPIRATION = ON, когда вы используете опцию MUST_CHANGE.
password — пароль для Login.
hashed_password — хешированное значение пароля для Login.
MUST_CHANGE — используется, когда вы хотите принудительно изменить пароль при первом входе в систему.
sid_value — GUID логина. Если этот параметр опущен, SQL Server назначит идентификатор GUID для входа.
credential_name — имя учетных данных для присвоения имени входа.
CERTIFICATE_NAME — имя сертификата для присвоения имени.
asym_key_name — имя асимметричного ключа для назначения для входа.
Примечание
- См. также оператор ALTER LOGIN и оператор DROP LOGIN.
Пример — проверка подлинности Windows
Рассмотрим, как создать вход с использованием проверки подлинности Windows в SQL Server (Transact-SQL).
Например:
Transact-SQL
CREATE LOGIN [my_domain\admin]
FROM WINDOWS;
| CREATE LOGIN [my_domain\admin] FROM WINDOWS; |
Этот пример CREATE LOGIN создаст новый Login, называемый [my_domain\admin], который использует проверку подлинности Windows.
Пример — проверка подлинности SQL Server
Затем давайте посмотрим, как создать Login с помощью проверки подлинности SQL Server.
Например:
Transact-SQL
CREATE LOGIN admin
WITH PASSWORD = ‘my_pass’;
| CREATE LOGIN admin WITH PASSWORD = ‘my_pass’; |
Этот пример CREATE LOGIN создаст новый Login, называемый admin, который использует аутентификацию SQL Server и имеет пароль ‘my_pass’.
Если мы хотим, чтобы пароль был изменен при первом входе в систему, то мы могли бы изменить наш пример следующим образом:
Transact-SQL
CREATE LOGIN admin
WITH PASSWORD = ‘my_pass’ MUST_CHANGE,
CHECK_EXPIRATION = ON;
| CREATE LOGIN admin WITH PASSWORD = ‘my_pass’ MUST_CHANGE, CHECK_EXPIRATION = ON; |
В этом примере используется параметр MUST_CHANGE, чтобы принудительно изменить пароль при первом входе в систему. Важно отметить, что опция MUST_CHANGE не может использоваться, когда CHECK_EXPIRATION выключен.
Поэтому в этом примере также указывается «CHECK_EXPIRATION = ON». В противном случае оператор CREATE LOGIN вызовет ошибку.
Пример — сертификат
Давайте посмотрим, как создать вход из сертификата в SQL Server (Transact-SQL).
Например:
Transact-SQL
CREATE LOGIN admin
FROM CERTIFICATE certificate1;
| CREATE LOGIN admin FROM CERTIFICATE certificate1; |
Этот пример CREATE LOGIN создаст новый Login, называемый admin, который использует сертификат под названием certificate1.
Пример — Асимметричный ключ
Давайте посмотрим, как создать вход с использованием асимметричного ключа в SQL Server (Transact-SQL).
Transact-SQL
CREATE LOGIN admin
FROM ASYMMETRIC KEY asym_key1;
| CREATE LOGIN admin FROM ASYMMETRIC KEY asym_key1; |
Этот пример CREATE LOGIN создаст новый Login, называемый admin, который использует асимметричный ключ, называемый asym_key1.
как войти в mysql и запросить базу данных из терминала linux
MySQL позволяет несколько различных способов аутентификации пользователей. Они называются «плагинами аутентификации», и каждый пользователь может указать свой собственный плагин. Чтобы увидеть, какой плагин назначен пользователю, вы можете использовать значение plugin
в таблице mysql.user
. В системах Ubuntu (и, возможно, других системах Linux) настройки по умолчанию для новой установки MySQL дают пользователю MySQL root
плагин, отличный от обычных пользователей, что объясняет замеченное вами несоответствие.
В частности, пользователю MySQL root
назначается аутентификация auth_socket
по умолчанию, в то время как обычным пользователям назначается либо mysql_native_password
(до MySQL 8), либо caching_sha2_password
(MySQL 8+). То есть вы увидите что-то вроде
# До MySQL 8 mysql> ИСПОЛЬЗОВАТЬ mysql; mysql> ВЫБЕРИТЕ плагин ОТ mysql.user, ГДЕ user='root'; +-------------+ | плагин | +-------------+ | авторизация_сокет | +-------------+ mysql> ВЫБЕРИТЕ плагин ОТ mysql.user ГДЕ user='basic_db_user'; +--------------------------------------+ | плагин | +--------------------------------------+ | mysql_native_password | +--------------------------------------+
или
# MySQL 8 и выше mysql> ИСПОЛЬЗОВАТЬ mysql; mysql> ВЫБЕРИТЕ плагин ОТ mysql.user, ГДЕ user='root'; +-------------+ | плагин | +-------------+ | авторизация_сокет | +-------------+ mysql> ВЫБЕРИТЕ плагин ОТ mysql.user ГДЕ user='basic_db_user'; +--------------------------------------+ | плагин | +--------------------------------------+ | кэширующий_sha2_пароль | +--------------------------------------+
auth_socket
— это аутентификация сокета , которая работает путем сопоставления подключающегося пользователя Unix с пользователем MySQL с таким же именем, если он есть. это только работает при локальном подключении, что является одной из причин, по которой это хорошо для привилегированного пользователя MySQL root
; под плагином auth_socket
кто-то не может удаленно получить доступ к вашей базе данных в качестве ее пользователя root (если только у них также нет доступа root
уровня ОС , и в этом случае они уже владеют вашей машиной).
Оба mysql_native_password
и caching_sha2_password
являются формами аутентификации по паролю . Чтобы понять разницу, которую вы видите между доступом к MySQL в качестве пользователя root
и в качестве обычного пользователя, мы сравним процесс входа в систему между аутентификацией по паролю и аутентификацией по сокету.
Аутентификация по паролю
Допустим, вы пытаетесь получить доступ к локальному серверу MySQL, используя обычно рекомендуемую команду. Ваш пользователь ОС Unix/Linux — joeuser
, и вы хотите подключиться к серверу MySQL как пользователь MySQL joesql 9.0004 . Вы вводите
joeuser@localhost:~$ mysql -u joesql -p Введите пароль: Добро пожаловать в монитор MySQL. Команды заканчиваются на ; или \г. ...
Соединение установлено успешно. Здесь произошло следующее: программа mysql
(используйте $ which mysql
, чтобы найти ее в вашей системе) вызывается с аргументами командной строки -u, joesql, -p
. Из них MySQL понимает, что вы пытаетесь подключиться как пользователь MySQL
joesql
. Он проверяет plugin
значение mysql.user
для joesql
и находит, допустим, caching_sha2_password
. Таким образом, он знает, что вам нужен пароль для подключения. Из аргумента командной строки -p
он знает, что вы хотите попросить вас ввести свой пароль, и он это делает. Вы вводите свой пароль, и MySQL хеширует его и сравнивает этот хэш с тем, что он сохранил в качестве пароля для joesql
. Это соответствует, поэтому вам разрешено подключаться как пользователю MySQL джоскл
.
Аутентификация сокета
Теперь вы хотите получить доступ к локальному серверу MySQL как пользователь root MySQL . Если вы наивно попытаетесь выполнить ту же команду, что и для обычного пользователя
joesql
, вы столкнетесь с отмеченной вами проблемой:
joeuser@localhost:~$ mysql -u root -p Введите пароль: ОШИБКА 1698 (28000): доступ запрещен для пользователя «root» @ «localhost»
Это происходит, даже если у вас есть пароль, определенный для MySQL пользователь root
и введите его при появлении запроса. Итак, что случилось? Как и прежде, вы вызвали программу
mysql
с аргументами командной строки -u, root, -p
, которые сообщают MySQL, что вы хотите подключиться как пользователь root MySQL . Однако теперь, когда он проверяет значение
plugin
mysql.user
для root
, он находит auth_socket
вместо одного из значений аутентификации пароля.
Таким образом, вместо того, чтобы запрашивать пароль, он проверяет указанный файл сокета, который ваша система Unix/Linux создала специально для этой цели и который включает имя пользователя ОС, от имени которого вы действуете. Вместо сопоставления паролей auth_socket
соответствует именам пользователей. Таким образом, отметив, что используемое вами имя пользователя ОС, joeuser
, не равно имени пользователя MySQL, под которым вы пытаетесь подключиться, root
, оно запрещает соединение с серьезно бесполезным сообщением об ошибке Доступ запрещен для пользователя «корень» @ «локальный хост»
.
Итак, раздраженный, вы выполняете стандартный ход Linux, добавляя «sudo», чтобы заставить его делать то, что вы хотите:
joeuser@localhost:~$ sudo mysql -u root -p [sudo] пароль для joeuser: Введите пароль: Добро пожаловать в монитор MySQL. Команды заканчиваются на ; или \г. ...
Это работает. Почему это сработало? Когда оболочка интерпретирует вашу команду, первое, что она обнаруживает, это то, что вы используете sudo
в качестве пользователя root Unix , поэтому она запрашивает ваш пароль
sudo
. После ввода оставшаяся часть команды выполняется от имени этого пользователя. Таким образом, файл сокета, созданный при подключении к серверу MySQL, идентифицируется с корнем Unix
, а не joeuser
, и аутентификация сокета MySQL соответствует этому пользователю MySQL с тем же именем. Аутентификация пройдена в этот момент, , но , вы специально запросили ваш пароль с помощью опции -p
, поэтому MySQL покорно обязуется запрашивать пароль пользователя MySQL root
. После его ввода вы успешно подключились к локальному серверу MySQL.
Как только вы это поймете, возникает очевидный вопрос: если аутентификация через сокет основана на совпадении имен пользователей (имя пользователя Unix и имя пользователя MySQL), нужен ли вообще пароль? Это не так! Вы можете оставить -p
и сделайте это:
joeuser@localhost:~$ sudo mysql -u root [sudo] пароль для joeuser: Добро пожаловать в монитор MySQL. Команды заканчиваются на ; или \г. ...
и пропустите ввод пароля MySQL root
. Это работает только для пользователя MySQL root
и только в том случае, если этот пользователь настроен на использование auth_socket
в качестве своего плагина аутентификации.
Сводка
В соответствии со стандартными значениями по умолчанию для MySQL в последних версиях Ubuntu (по крайней мере, 16.04-20.04, возможно, и в других), это команды для наиболее простого подключения к оболочка mysql
:
MySQL
root
пользователь:$ sudo mysql -u root
(введите пароль sudo)
Другой пользователь MySQL:
$ mysql -u <имя пользователя> -p
(введите пароль
MySQL)
Конечно, вы спрашивали о Debian Linux, а не об Ubuntu. Ubuntu происходит непосредственно от Debian, и я предполагаю, что это похоже на то, что я сказал здесь. Приветствуются комментарии о том, как приведенное выше объяснение различается в разных дистрибутивах и версиях Linux.
Как подключиться к MySQL из командной строки
Как подключиться к MySQL из командной строки
В этой статье описывается, как подключиться к MySQL из командной строки с помощью программы mysql . Вы можете использовать программу mysql как быстрый и простой способ прямого доступа к вашим базам данных.
Содержание
- Подключение к MySQL из командной строки
- Дополнительная информация
Подключение к MySQL из командной строки
Чтобы подключиться к MySQL из командной строки, выполните следующие действия:
- Войдите в свою учетную запись A2 Hosting, используя SSH.
- В командной строке введите следующую команду, заменив имя пользователя своим именем пользователя:
mysql -u имя пользователя -p
- В ответ на запрос «Введите пароль» введите свой пароль.
Когда вы вводите правильный пароль, появляется приглашение mysql>.
Чтобы отобразить список баз данных, введите следующую команду в командной строке mysql>:
показать базы данных;
Не забудьте поставить точку с запятой в конце инструкции.
Чтобы получить доступ к определенной базе данных, введите следующую команду в приглашении mysql>, заменив dbname именем базы данных, к которой вы хотите получить доступ:
use dbname;
Убедитесь, что вы не забыли поставить точку с запятой в конце инструкции.
После доступа к базе данных вы можете выполнять SQL-запросы, составлять таблицы и т. д. Дополнительно:
- Чтобы просмотреть список команд MySQL, введите help в командной строке mysql>.
- Чтобы выйти из программы mysql , введите \q в командной строке mysql>.
Когда вы запускаете команду в приглашении mysql> , вы можете получить предупреждающее сообщение, если MySQL столкнется с проблемой.
Например, вы можете запустить запрос и получить сообщение, похожее на следующее:
Запрос выполнен успешно, затронуто 0 строк, 1 предупреждение (0,04 с).
Чтобы просмотреть полное предупреждающее сообщение, введите следующую команду:
ПОКАЗАТЬ ПРЕДУПРЕЖДЕНИЯ;
Дополнительная информация
- Дополнительные сведения о программе командной строки mysql см. на странице http://dev.mysql.com/doc/refman/5.1/en/mysql.html.
- Чтобы узнать больше о размещении базы данных MySQL с помощью A2 Hosting, нажмите здесь.
Разместите свою базу данных MySQL @ A2
Сведения о статье
- Уровень: средний
Другие товары в этой категории
- Подключение к MySQL из командной строки
- Подключение к MySQL с помощью PHP
- Подключение к MySQL с помощью Python
- Подключение к MySQL с помощью Node.js
- Подключение к MySQL с помощью Perl
- Подключение к MySQL с помощью Microsoft .
NET
- Импорт и экспорт базы данных MySQL
- Удаленные соединения MySQL
- клиентских приложений MySQL
- Управление базами данных, пользователями и таблицами MySQL из командной строки
- Преобразование базы данных MySQL в UTF-8
- Преобразование часового пояса MySQL
- Резервное копирование базы данных MySQL с использованием заданий cron
- Резервное копирование базы данных MySQL с использованием AutoMySQLBackup
- База данных information_schema
- Сброс корневого пароля MySQL
- MySQL не хватает памяти или не запускается
- Привилегии пользователя MySQL на общих серверах
- Создание и выполнение хранимых функций и процедур MySQL
- просмотров MySQL
- MySQL запускает
- Работа с ядрами баз данных MySQL
- Проверка базы данных MySQL и размеров таблиц
- Восстановление баз данных и таблиц MySQL
- Включение журнала медленных запросов в MySQL
- Переименование базы данных MySQL
- Использование индексов для повышения производительности запросов MySQL
- Ограничение доступа к порту MySQL
- Установка phpMyAdmin на управляемые учетные записи хостинга
- Создание установки MySQL для локального тестирования
- Устранение неполадок определителя MySQL
- Использование SELECT INTO OUTFILE в MySQL
- Определение версии MySQL
- Обработка ошибки MySQL 1064
Показать больше
Статьи по теме
- Подключение к PostgreSQL с помощью psql
- Подключение к SQLite из командной строки
- Подключение к MySQL с помощью PHP
- Подключение к MySQL с помощью Python
- Подключение к MySQL с помощью Microsoft .