Установка mysql в Ubuntu 13.04 - 12.04

В этой статье я расскажу, как установить mysql сервер и клиент, графическую оболочку workbench для работы с mysql сервером. А также расскажу, как решить проблему с кодировкой сервера. Так как по умолчанию на сервере используется кодировка latin1.


1. Установка Mysql сервер и клиент.

Для установки открываем консоль и вводим:
sudo apt-get install mysql-server mysql-client

В процессе установки, в консоле будет затребовано ввести пароль администратора сервера mysql. Введите дважды его (для перехода в консоле к кнопочке "ок" используется клавиша "Tab" если кто не в курсе :) ). Всё, ожидаем окончание установки

Проверяем работоспособность.
Вводим в терминале команду, чтобы зайти на сервер:
mysql -uroot -p
У вас будет запрошено ввести пароль, вводим, и если успешно, то появиться: Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 5.5.31-0ubuntu0.12.04.2 (Ubuntu)

Copyright (c) 2000, 2013, 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> 

Можете теперь вводить sql команды (книги по sql в помощь). Также можете ввести /h появится список вспомогательных команд.

Что нужно сделать, чтобы подключаться к серверу mysql из вне, а не только локально?
Открываем в текстовом редакторе из под админа конфиг mysql сервера.
sudo gedit /etc/mysql/my.cnf
И находим строчку: "bind-address = 127.0.0.1" и закомментируем ее, придав ей вид:
#bind-address = 127.0.0.1 (знак # означает то, что последующее в строке не будет выполняться и учитываться).
То есть должно получиться так:


Всё. Сохраняем и перезапускаем сервис mysql:
sudo service mysql restart

Для того, чтобы остановить сервер, команда: sudo service mysql stop Для того, чтобы запустить: sudo service mysql start

2. Установка графического клиента для работы с Mysql.
Кто-то может возразить и сказать, что нужно ставить phpMyAdmin. Ваше решение, я с ним не работал, поэтому расскажу про то, что использую в работе WorkBench.
Кстати, для установки phpMyAdmin:
sudo apt-get install phpmyadmin

Для установки WorkBench аналогичная команда: sudo apt-get install mysql-workbench

Открываем программу:


Первое, что делаем, это создаем новое соединение (new connection):


В имени указываем то, что хотим.
Остальные настройки по стандарту уже стоят, разве что вам нужно будет сменить username, если вы не под root заходите, либо сменить hostname, прописать ваш IP. Далее жмем "тест". Вводим пароль, если все хорошо, то жмем "ok".
Потом Вы просто будете нажимать "открыть соединение".

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

По этому поводу всё.

3. Разберемся с кодировкой сервера Mysql.

Открываем соединение в WorkBench и выполняем sql запрос, либо в консоле то же самое:
mysql> SHOW VARIABLES LIKE 'char%';
Появится сообщение с кодировками MySql:


Видим, что кодировка сервера не UTF8, будет проблема с отображением русских символов.

Это легко исправляется:
Открываем в текстовом редакторе из под админа конфиг mysql сервера.
sudo gedit /etc/mysql/my.cnf
И нужно в следующих пункта добавить следующие строчки:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
skip-character-set-client-handshake

[client]
default-character-set=utf8

[mysqldump]
default-character-set=utf8
 После чего, перезапускаем сервис mysql. Выше написано как это делать.

И выполняем команду, для просмотра кодировок.
Теперь везде будет utf8:


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

Поделиться:

Если у Вас возникли вопросы.

Приглашаю задавать их на сервисе вопросов и ответов: Ask LinuxRussia.com.
Там Ваши вопросы не потеряются и Вы быстрее получите ответ, в отличие от комментариев.

10 коммент. :

  1. спасибо а можно ли от а до я как установить и настроить почтовый сервер используя убунту сервер пожалуйста хочется отправлять и получать e-mail со своего личного сервера спасибо ещё раз.

    ОтветитьУдалить
    Ответы
    1. Я почтовый сервер не поднимал ни разу на Linux. Если столкнусь с этим, то статью напишу. А так не обещаю.

      Удалить
  2. Описание корректной настройки мне видится полезной. Но автору безусловно виднее! ,

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

    ОтветитьУдалить
    Ответы
    1. Очень хорошая статья.
      Я просто рассказал в статье, как я настраиваю MySql сервер.
      Вот на данный момент тот способ с кодировкой, что я описал работает. Хотя я перепробовал кучу других способов, описанных и в документации Ubuntu в том числе.
      Ни в коем случае я не считаю себя каким-то гуру, просто описал работающие настройки. Вот и всё.
      Так как завал на основной работе, то на выходных выпущу статью про WorkBench.

      Удалить
  3. Дада, мне будет интересно почитать. Жду статей на подобную тематику.

    ОтветитьУдалить
  4. Нельзя изменять файл my.cnf. Могут возникнуть проблемы при следующем обновлении MySQL. В файле my.cnf в конце есть строчка !includedir /etc/mysql/conf.d/ . Эта строчка говорит о том что нужно создать отдельный файл и поместить его в каталог etc/mysql/conf.d/ и для того что бы изменить кодировку нужно. Создать файл utf8_charset.cnf поместить его в указанный каталог и отредактировать добавив следующее:

    [mysqld]
    character-set-server = utf8
    collation-server = utf8_general_ci
    skip-character-set-client-handshake

    [client]
    default-character-set=utf8

    [mysqldump]
    default-character-set=utf8

    После этого перезагрузить сервер MySQL sudo service mysql restart. И всё кодировка будет UTF8.

    ОтветитьУдалить
    Ответы
    1. Спасибо большое за такое решение, исправлю статью :)

      Удалить
  5. mysql -uroot -p, у вас опечатка, пробел надо между -u и root

    ОтветитьУдалить