Mysql как запустить ubuntu: Работа с mysql через консоль

Работа с mysql через консоль

День добрый, друзья! 🙂 Для подключения к mysql наберите

mysql -h 127.0.0.1 -u root -p  
  • h — хост базы данных, если коннектимся к локальной базе (по ip 127.0.0.1), этот параметр можно опустить
  • u — имя пользователя
  • p — пароль, его нужно будет ввести после нажатия enter

Например, если нужно законнектиться к локальной быдухе под root`ом и пароль у него не установлен (пустой пароль — это плохо), достаточно написать

mysql -u root

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

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 344
Server version: 5.5.28-0ubuntu0.12.04.3 (Ubuntu)
Copyright (c) 2000, 2012, 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 '\h' for help.  Type '\c' to clear the current input statement.
mysql>

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

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

show databases;

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

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| jeka               |
| linky              |
| mysql              |
| performance_schema |
| phpmyadmin         |
| test               |
+--------------------+
7 rows in set (0.00 sec)

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

mysql> use jeka
Database changed

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

mysql> show tables;

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

mysql> describe post_estimations;
+------------+---------------------+------+-----+---------+-------+
| Field      | Type                | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+-------+
| post_id     | int(10) unsigned    | YES  | MUL | NULL    |       |
| user_id     | int(10) unsigned    | YES  | MUL | NULL    |       |
| estimation | float(2,1) unsigned | NO   |     | NULL    |       |
| date         | int(10) unsigned    | NO   |      | NULL    |       |
+------------+---------------------+------+-----+---------+-------+
4 rows in set (0. 00 sec)

Достать информацию о юзере с id=22:

mysql> SELECT * FROM users WHERE id=22;

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

show create table table_name;

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

select * from update__v4_errors where id = 1102003\G

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

show processlist;

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

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

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

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

[mysqld]
init-connect='SET NAMES utf8'

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

mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

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

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

mysqldump -u [username] -p [password] [database] > [dump_name.sql]

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

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

mysql -u [username] -p [password] [database] < [dump_to_restore.sql]

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

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

mysqldump -u[user] -p[password] -h[host] [database] [table_name] --no-data > /path/dump_name. sql

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

mysqldump -uroot mydatabase users > users.dump.sql

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

mysql -uroot database_name < users.dump.sql

 

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

mysql -uroot -e 'show tables' database_name && echo done
mysql> show variables like '%incr%';

Заключение

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

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

  • работа с PostgreSQL через консоль

Установка и настройка mysql в Ubuntu

Всем привет. Сегодня мы установим mysql в ubuntu. Если следовать простой инструкции, то сложностей точно не возникнет. Итак, можно смело приступать.

  1. Процесс установки
  2. Неожиданная ошибка после настройки can’t connect to local Mysql Server
  3. Процесс настройки mysql
  4. Настройка прав и привилегий
  5. Создание нового пользователя

Процесс установки

sudo apt update
sudo apt install mysql-server -y

-y означает то, что вы будете отвечать согласием на все команды, таким образом, все установится без вашего участия. Можете не волноваться, если вы запускаете эту команду. Ведь наверняка вы хотите установить mysql, какие могут быть еще вопросы ? =)

Неожиданная ошибка после настройки can’t connect to local Mysql Server

sudo mysql_secure_installation

По факту это помощник в установке, который настроит всю систему на основе ваших ответов. 

Возможно после запуска вы столкнетесь с ошибкой 

Error: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld. sock’ (2) 

Я столкнулся. Что значит эта ошибка? Сокета либо нет, либо к нему нет доступа. Поэтому идем в папку:

cd /var/run/mysqld

и там действительно пусто. Сокета там нет. Создается он в процессе запуска mysql. Поэтому проверим статус сервиса, следующей командой:

sudo service mysql status

* MySQL is stopped.

Давайте его запустим:

sudo service mysql start

* Starting MySQL database server mysqld

Проверим статус:

sudo service mysql status

Можете еще зайти в папку /var/run/mysqld/. Там вы увидите сокет.

Обратите внимание, с какими правами и под каким пользователем запущен сокет. Часто из-за нехватки прав может быть такая же ошибка

Процесс настройки mysql

Запускаем опять:

sudo mysql_secure_installation

Первый вопрос, который вам зададут: VALIDATE PASSWORD PLUGIN. Это плагин, который позволит определить надежность вашего будущего пароля. Я бы нажал Y. Не вижу в нем ничего плохого. Смело устанавливаем.

Далее вам будет предложено выбрать сложность этого пароля. Смотрите сами: если хотите “поиграться” или делаете mysql для локальной разработки — берите попроще, если это продакшн — только максимальный.

Теперь вам нужно ввести пароль и подтвердить его, а после — согласиться с вводом. Здесь можно задать что-то простое и запоминающееся. Все-равно мы будем менять пароль позже.

В mysql есть анонимные пользователи, которые могут подключаться без аккаунта. Их система предлагает удалить — соглашаемся 

В целях безопасности запрещаем подключение к бд с других серверов. отвечаем — Y

Удаляем тестовую базу. Отвечаем — Y

Перезагружаем таблицу с привилегиями. Отвечаем — Y

Если все пройдет хорошо, то в конце вы получите сообщение: 

All done!

Настройка прав и привилегий

В mysql с версии 5.7 авторизация root пользователя проходит не через пароль, а посредством auth_socket. То есть, если вы выполните команду:

sudo mysql

то сможете легко попасть в интерфейс программы:

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

Для этого введем следующую команду:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Чтобы поменять auth_socket на mysql_native_password, нам потребуется выполнить следующую команду. Только не забудьте поменять слово “password” на сильный пароль

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Query OK, 0 rows affected (0.00 sec)

Закрепляем все изменения командой:

FLUSH PRIVILEGES;

Запустим команду для проверки плагина авторизации еще раз:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Теперь вы должны увидеть там mysql_native_password

вводим команду:

exit

А теперь давайте занова попробуем подключиться:

sudo mysql

Вероятнее всего, вы получите ошибку:

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

Чтобы подключиться к бд, необходимо использовать пару “логин-пароль”:

sudo mysql -u root -p

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

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

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';

Query OK, 0 rows affected (0.00 sec)

Теперь давайте выйдем:

exit

Зайдите сначала под root, а потом пользователем user и поочередно выполните команду:

show databases;

вот что видит root:

А что user:

У user‘a список меньше. Давайте дадим ему привилегии. Заходим под пользователем root:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Данными командами мы даем все права пользователю user. Можете почитать более подробно про эту команду. Фактически вы можете дать права на 1 базу на определенный перечень команд.

Теперь, если вы зайдете под пользователем user, то увидите весь список баз данных:

Заключение.

В целом, на этом настройка mysql заканчивается. У вас есть рабочая mysql 5.7 и пользователь с максимальными правами. Что еще для счастья надо? 🙂

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

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

Читайте дальше, чтобы узнать, как запускать, останавливать и перезапускать сервер MySQL в Linux и Windows.

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

Если вам нужно остановить или перезапустить сервер MySQL в системе Linux, можно использовать три различные команды:

  1. В зависимости от вашего дистрибутива Linux вы можете изменить состояние MySQL с помощью команды service .
     
    • В start Сервер MySQL:
       
      sudo service mysqld start
       
    • Кому остановить Сервер MySQL:
       
      sudo service mysqld остановить
       
    • В перезапустить Сервер MySQL:

      sudo service mysqld перезапустить

  2. Если у вас нет доступной команды service или вы предпочитаете вносить изменения в MySQL, используя другой метод, вы также можете использовать команду init. d для запуска/остановки вашего сервера MySQL.
     
    • На start Сервер MySQL:
       
      sudo /etc/init.d/mysqld start
       
    • В остановить Сервер MySQL:

      sudo /etc/init.d/mysqld остановить

    • Чтобы перезагрузить Сервер MySQL:

      sudo /etc/init.d/mysqld перезапустить

  3. Наконец, вы также можете использовать команду systemctl для запуска, остановки и перезапуска приложений в Linux, включая MySQL.
     
    • В запустить сервер MySQL:
       
      sudo systemctl запустить mysqld
       
    • К остановить сервер MySQL:

      sudo systemctl остановить mysqld

    • Чтобы перезапустить сервер MySQL:

      sudo systemctl перезапустить mysqld

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

Если вы пытаетесь запустить, остановить или перезапустить сервер MySQL в системе на базе Windows, вы можете легко сделать это из командной строки. Просто выполните следующие 3 шага:

  1. Чтобы начать, вам сначала нужно открыть окно терминала. Если у вас нет этого легкодоступного места, вы можете быстро найти его с помощью диалогового окна Windows Run . Чтобы открыть диалоговое окно «Выполнить», просто нажмите Windows Key + R .
     
  2. Затем введите « cmd » и нажмите клавишу Enter . Это откроет новое окно терминала.
     
  3. После того, как вы открыли окно терминала, просто введите следующие команды, чтобы запустить или остановить сервер MySQL:
     
    • На start Сервер MySQL:
        
      mysqld start
       
    • К остановить сервер MySQL:

      mysqld остановить

*Примечание: в зависимости от используемой версии Windows вам может понадобиться конкретное имя номера версии MySQL, которую вы используете, чтобы запустить или остановить службу. Чтобы найти это, перейдите в меню «Пуск» и выполните поиск Services 9. 0015 . Найдите версию MySQL, которую вы используете, и попробуйте выполнить следующие команды, заменив «##» номером своей версии: , если вы используете MySQL 8.0, замените «MySQL##» на «MySQL80».

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

 

Популярные ссылки

Ищете дополнительную информацию о MySQL? Ищите в нашей базе знаний!

Заинтересованы в других статьях о базах данных? Перейдите на нашу страницу «Категории» с помощью панели слева или ознакомьтесь со следующими популярными статьями:

  • Просмотр содержимого таблицы в базе данных SQL Server с помощью Enterprise Manager
  • Создание резервной копии MySQL из командной строки — MySQL импортирует файл SQL
  • Как установить SQL Server 2012 Express на Windows Server 2012

Популярные теги в этой категории включают: MySQL, MSSQL, phpMyAdmin, PostgreSQL и другие.

Не видите то, что ищете? Воспользуйтесь строкой поиска вверху, чтобы выполнить поиск по всей нашей базе знаний.

 

Отличие Hivelocity

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

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

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

Нужна более персонализированная помощь?

Если у вас есть какие-либо дополнительные проблемы, вопросы или вам нужна помощь в проверке этого или чего-либо еще, свяжитесь с нами из своей учетной записи my. hivelocity.net и предоставьте учетные данные своего сервера в зашифрованном поле для наилучшего возможного. безопасность и поддержка.

Если вы не можете связаться со своей учетной записью my.hivelocity.net или находитесь в пути, свяжитесь с нами по электронной почте с действительной учетной записью my.hivelocity.net по адресу: [email protected] Мы также доступны для вы через наш телефон и систему чата 24/7/365.

sudo — Как запустить/остановить сервер mysql?

Спросил

Изменено
9 месяцев назад

Просмотрено
1,9m раз

Я пытался найти в некоторых статьях, описывающих, как правильно запускать и останавливать сервер mysql.

Я нашел эту ссылку: Как запустить/остановить сервер MySql в Ubuntu 8.04 | Abhi’s Blogging World

Я выполнил эту команду:

 /etc/init.d/mysql start
 

, но я вижу эту ошибку

 ОШИБКА 1045 (28000) Доступ запрещен для пользователя. ...
 

После того, как я попробовал эту команду:

 sudo /etc/init.d/mysql start
 

Я ввел свой пароль и снова вижу ту же ошибку.

Следующая команда:

 sudo /etc/init.d/mysql - root -p start
 

приводит к:

 ОШИБКА 1049 (42000) Неизвестная база данных "старт".
 

И когда я запускаю эту команду:

 запуск службы sudo mysql
 

Сервер MySQL успешно запущен. Прохладный!

Итак, что не так с другими командами? Почему они приводят к ошибке?

  • судо
  • MySQL

3

Ваши первые две команды не были запущены от имени пользователя root, так что это ожидаемое поведение. Вы должны быть пользователем root, чтобы остановить/запустить mysql.

Однако:

 sudo /etc/init.d/mysql start
 

должен работать. Действительно, для меня это так:

 kojan:~> sudo /etc/init.d/mysql restart
[sudo] пароль для Криса:
Остановка сервера базы данных MySQL: mysqld. 
Запуск сервера базы данных MySQL: mysqld.
Проверка на наличие поврежденных, не полностью закрытых и требующих обновления таблиц.
 

Я использовал перезагрузку, а не запуск, так как он уже был запущен, но эффект тот же. Вы уверены, что правильно ввели пароль? 🙂 Вы вообще редактировали свою конфигурацию sudo, что остановило бы ее работу?

Этот…

 sudo /etc/init.d/mysql - root -p start
 

Аргументы неверны. сценарий init.d принимает только запуск или остановка или перезапуск — всего одно слово, говорящее, что делать. Вы не можете дать ему несколько аргументов, как вы пытались сделать.

В любом случае, краткий ответ — это тот, который вы действительно получили для работы, это рекомендуемый способ. Служба со временем заменяет все скрипты init.d, так что вы должны привыкнуть использовать служба . Страница, на которую вы ссылаетесь, была написана в 2008 году, поэтому к ней нужно относиться с осторожностью 🙂

5

Также помогает перепроверить правильность имени службы «mysql». В моем случае не было. Я продолжал получать следующий ответ: mysql: нераспознанная служба при запуске службы

, статус mysql
 

Затем я проверил /etc/init.d и нашел скрипт с именем mysqld, в котором указано имя процесса: mysqld и prog=mysqld

Итак, я сделал

 статус службы mysqld
служба mysqld останавливается
запуск службы mysqld
 

и все они работали нормально.

6

Новые версии Ubuntu используют systemd.

НАЧАТЬ MYSQL:

 запуск sudo mysql
 

RESTART MYSQL:

 sudo restart mysql # Служба должна быть запущена
 

STOP MYSQL:

 sudo stop mysql # Служба должна быть запущена
 

5

Я получил странную ошибку, когда установил mysql-workbench на свой компьютер с Ubuntu. После этого я попытался запустить службу mysql с помощью этой команды:

 service mysql start
 

Это показало, что сервер MySQL не был установлен, поэтому я установил его, и моя проблема была решена. Команда для установки mysql-сервера:

 sudo apt-get install mysql-server
 

После успешной установки запустите сервер MySQL:

 запуск службы mysql
 

У меня была такая же проблема с Ubuntu64, и я решил, просто не используя systemctl, а вместо этого:

 перезапуск службы sudo mysql
 

Надеюсь, эта команда вам подойдет.

После установки MySQL в вашей системе выполните следующую команду:

 статус службы mysql
 

Если служба не работает:

 запуск службы mysql
 

Чтобы остановить это:

 остановить службу mysql
 

1

Это должно работать для созданного вручную сервера mysql:

 sudo /usr/local/mysql/bin/mysqld_safe --user=mysql
 

В Ubuntu 18.04 сокет определен в файле /etc/mysql/mysql.conf.d/mysqld.cnf :

 socket = /var/run/mysqld/mysqld.sock
 

Каталог отсутствовал, поэтому я создал его вручную, как показано ниже:

 sudo mkdir -p /var/run/mysqld
 

Перезапустите MySQL.