Поиск по сайту:
Кругом пустое нет (В. Хлебников).

Подготовка MySQL

05.10.2020
Как установить MySQL на Ubuntu 16.04

Мы используем MySQL 8 в Linux в течение нескольких лет, но версия репозитория Linux не установила новую оболочку MySQL. Обнаружили новую оболочку MySQL, когда установили MySQL 8 (8.0.21) в Windows.

Ниже приведено руководство по настройке пользователя andreyex и базы данных andreyexdb в MySQL. Используется MySQL Shell ( mysqlsh) и этапы для загрузки файлов значений, разделенных запятыми.

После установки MySQL в ОС Windows 10 откройте оболочку интерфейса командной строки ОС Windows (CLI), введя следующее в поле поиска слева внизу:

cmd

 

Он запускает интерфейс командной строки для ОС Windows. Утилита cmd (команда) открывает интерфейс командной строки в следующем каталоге (где вы подставляете имя пользователя вместо заполнителя имени пользователя ниже):

C:\Users\username

 

В командной строке вы должны ввести mysql, чтобы запустить старый MySQL CLI. Вместо этого вы вводите mysqlsh, чтобы запустить новый MySQL CLI от имени пользователя root. Команда для запуска оболочки MySQL от имени пользователя root:

mysqlsh -uroot -p

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

MySQL Shell 8.0.21
 
Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.
 
Type '\help' or '\?' for help; '\quit' to exit.
Creating a session to 'root@localhost'
Please provide the password for 'root@localhost:33060': ********
Save password for 'root@localhost:33060'? [Y]es/[N]o/Ne[v]er (default No): y
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 9 (X protocol)
Server version: 8.0.21 MySQL Community Server - GPL
No default schema selected; type \use <schema> to set one.
 MySQL localhost:33060+ ssl JS >

 

Приглашение не будет принимать команды SQL, поскольку оно всегда инициализируется в контексте JavaScript(JS). Оболочка MySQL поддерживает три интерактивных интерфейса: JavaScript, Python и SQL.

Читать  Как установить PostgreSQL на Debian 9

Вы можете проверить целостность оболочки из контекста JavaScript(JS) как пользователь root с помощью следующей команды:

MySQL localhost:33060+ ssl JS > shell.status()

 

Как пользователь root, он должен вернуть что-то вроде этого:

MySQL Shell version 8.0.21
 
Connection Id: 9
Default schema:
Current schema:
Current user: root@localhost
SSL: Cipher in use: TLS_AES_256_GCM_SHA384 TLSv1.3
Using delimiter: ;
Server version: 8.0.21 MySQL Community Server - GPL
Protocol version: X protocol
Client library: 8.0.21
Connection: localhost via TCP/IP
TCP port: 33060
Server characterset: utf8mb4
Schema characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
Result characterset: utf8mb4
Compression: Enabled (DEFLATE_STREAM)
Uptime: 20 hours 4 min 19.0000 sec

 

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

MySQL  localhost:33060+ ssl  JS > \sql

 

Вы можете проверить, что ваш сеанс по-прежнему принадлежит пользователю root, с помощью следующего утверждения SELECT:

MySQL  localhost:33060+ ssl  SQL > SELECT user();

 

Он возвращает:

+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.0005 sec)

 

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

  1. Создайте базу данных andreyexdb с помощью следующей команды от имени пользователя root в MySQL :
    MySQL  localhost:33060+ ssl  SQL > CREATE DATABASE andreyexdb;
  2. Предоставьте пользователю root привилегию предоставлять другим пользователям, которых root не имеет по умолчанию. От имени пользователя root в MySQL вы используете следующий синтаксис :
    MySQL  localhost:33060+ ssl  SQL > GRANT ALL ON *.* TO 'root'@'localhost';
  3. Создайте пользователя с понятным английским паролем и предоставьте пользователю andreyex полные права доступа к базе данных andreyexdb:
    MySQL  localhost:33060+ ssl  SQL > CREATE USER 'andreyex'@'localhost' IDENTIFIED WITH mysql_native_password BY 'andreyex';
     MySQL  localhost:33060+ ssl  SQL > GRANT ALL ON andreyexdb.* TO 'andreyex'@'localhost';
  4. В нашем примере базы данных используется загрузка больших файлов с помощью команды MySQL LOAD, что означает, что вам нужно предоставить одну дополнительную глобальную привилегию:
    MySQL  localhost:33060+ ssl  SQL > GRANT FILE ON *.* TO 'andreyex'@'localhost';

Привилегия FILE в MySQL – это глобальная привилегия для чтения и записи файлов на локальном сервере. Установка MySQL 8 в Windows 10 устанавливает следующий каталог в качестве цели для загрузки файлов в файл my.ini:

# Secure File Priv.
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"

 

Читать  Как выполнить цикл в хранимой процедуре MySQL

Вы можете найти настройку в файле C:\ProgramData\MySQL\MySQL Server 8.0\my.ini. Вы можете найти это значение, не обращаясь к файлу my.ini, запросив данные:

show variables like 'secure_file_priv';

 

Новая установка должна вернуться:

+------------------+------------------------------------------------+
| Variable_name    | Value                                          |
+------------------+------------------------------------------------+
| secure_file_priv | C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\ |
+------------------+------------------------------------------------+
1 row in set (0.2253 sec)

 

Вы можете проверить возможность использования команды LOAD с помощью следующего тестового файла avenger.csv. Скопируйте его в каталог C:\ProgramData\MySQL\MySQL Server 8.0\Uploads и убедитесь, что права доступа к каталогу установлены только для чтения для всех.

1,'Andrey','Ex','Delphi'
2,'MasterMen','Dolgov','Titan'
3,'Alex','Smirnov','Shrek'

 

Откройте другой (командный) интерфейс командной строки cmd и поместите следующий код в файл, который вы сохраните как avenger.sql в каталоге c:\Users\username.

-- Conditionally drop objects.
SELECT 'AVENGER' AS "Drop Table";
DROP TABLE IF EXISTS avenger;
 
-- Create an avenger table.
CREATE TABLE avenger
( avenger_id      INT UNSIGNED PRIMARY KEY AUTO_INCREMENT
, first_name      VARCHAR(20)
, last_name       VARCHAR(20)
, character_name  VARCHAR(20)) ENGINE=InnoDB DEFAULT=utf8;
 
-- Load the data from a file, don't forget the \n after the \r on Windows or it won't work.
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/avenger.csv'
-- LOAD DATA INFILE 'avenger.csv'
INTO TABLE avenger
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '/'
LINES TERMINATED BY '\r\n';
 
-- Select the uploaded records.
SELECT * FROM avenger;

 

 

Из cmd (командной) оболочки запустите оболочку MySQL от имени пользователя andreyex со следующим синтаксисом:

mysqlsh -uandreyex -p -Dandreyexdb

 

В командной строке в MySQL Shell(mysqlsh) переключитесь с контекста JavaScript(JS) по умолчанию на контекст SQL и выполните следующий запрос:

MySQL  localhost:33060+ ssl  andreyexdb  SQL > \sql
MySQL  localhost:33060+ ssl  andreyexdb  SQL > SELECT user(), database();

Если вы все сделали правильно, вывод будет примерно следующий:

+-------------------+-------------+
| user()            | database()  |
+-------------------+-------------+
| andreyex@localhost | andreyexdb |
+-------------------+-------------+
1 row in set (0.0003 sec)

 

Читать  MySQL Security - Генерация случайного пароля

Опять же, предполагая, что вы все сделали правильно, вы сможете запустить файл сценария avenger.sql из командной строки в MySQL Shell(mysqlsh), например:

MySQL  localhost:33060+ ssl  andreyexdb  SQL > source avenger.sql

 

Должен вернуть следующий вывод:

Query OK, 0 rows affected (0.0003 sec)
+------------+
| Drop Table |
+------------+
| AVENGER    |
+------------+
1 row in set (0.0003 sec)
Query OK, 0 rows affected (0.0595 sec)
Query OK, 0 rows affected (0.0002 sec)
Query OK, 0 rows affected (0.1293 sec)
Query OK, 0 rows affected (0.0002 sec)
Query OK, 3 rows affected (0.0046 sec)
 
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0
Query OK, 0 rows affected (0.0004 sec)
+------------+--------------+------------+-------------------+
| avenger_id |  first_name  | last_name  | character_name    |
+------------+--------------+------------+-------------------+
|          1 |  'AndreyEx'  | 'Delphi'   | 'Delphi'          |
|          2 |  'MasterMen' | 'Dolgov'   | 'Titan'           |
|          3 |  'Alex'      | 'Smirnov'  | 'Shrek'           |
+------------+--------------+------------+-------------------+
3 rows in set (0.0005 sec)

 

Теперь у вас есть пользователь andreyex и база данных andreyexdb. Надеюсь, строить было весело.

Вы можете найти файл my.ini в каталоге C:\ProgramData\MySQL\MySQL Server 8.0 стандартной файловой системы Windows 10. Хорошая идея – ничего не менять, если вы не знаете, что делаете, и помните, что вам нужно перезапустить службу Microsoft MySQL80, чтобы любые изменения вступили в силу в операциях с базой данных.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 3,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
В мире СМИ и новостном цикле преобладают спекуляции и дискуссии…

Спасибо!

Теперь редакторы в курсе.