Рубрика: Mysql

Длина строки mysql: MySQL Функция LENGTH()

Длина строки mysql: MySQL Функция LENGTH()

Существуют ли ограничения на длину строки в MySQL?

Я использую базу данных MySQL с Rails. Я создал поле типа string. Существуют ли ограничения по длине? Как насчет типа text?
Также как text имеет переменный размер, я считаю, что будут дополнительные расходы, связанные с использованием текстовых объектов. Насколько важными они могут стать, если вообще могут?

3 ответов


строка, в общем случае, должна использоваться для короткого текста. Например, это VARCHAR(255) под MySQL.

Text использует больший текст из базы данных, например, в MySQL, тип TEXT.

для получения информации о том, как это работает и внутренние в MySQL и пределы и такие, см. другой ответ Pekka.

Если вы запрашиваете, скажем, абзац, я бы использовал текст. Если вы запрашиваете имя пользователя или адрес электронной почты, используйте string.

Доступ извне к mysql: Как отркрыть доступ к mysql из-вне

Доступ извне к mysql: Как отркрыть доступ к mysql из-вне

Как отркрыть доступ к mysql из-вне

Для доступа к MySQL из-вне должно быть выполнено 2 условия:

  1. MySQL должен слушать все адреса, а не только 127.0.0.1
  2. У пользователя должны быть пермишены для коннекта не только с localhost (с самого сервера где установлена БД), а и других адресов.

Слушать все адреса

Во-первых, изначально mysql слушает только localhost. Нужно исправить это в конфигурационном файле my.cnf (обычно в линуксах путь /etc/mysql/my.cnf). В my.cnf находим строку:

bind-address = 127.0.0.1

И заменяем её на:

bind-address = 0.0.0.0

Теперь после service mysql restart мы можем коннектиться к mysql с любого ip (если создан пользователь). При этом для супер-пользователя root доступ из-вне под пустым паролем остаётся закрыт.

bind-address 127.0.0.1 означает, что mysql слушает соединения только с текущего хоста.

Создание пользователя для коннекта к базе данных из-вне

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

CREATE USER 'username'@'%' IDENTIFIED BY 'password'; #создаём пользователя username с паролем password
GRANT ALL PRIVILEGES ON database.* TO 'username'@'%'; #даём пользователю username все права для работы с базой данных database
FLUSH PRIVILEGES; # применяем новые права (чтобы не делать restart)

В команде CREATE USER мы создали пользователя, который может коннектиться к mysql со всех ip. Мы можем разрешать коннектиться только с определённых ip, например:

#создаём пользователя user с паролем pass, который может подключаться только с ip '10.10.50.50
CREATE USER 'user'@'10.10.50.50' IDENTIFIED BY 'pass';

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

В случае проблем с внешними подключениями, проверить не блокирует ли брандмауэр или фаервол MySQL-порт 3306 или другой, если используете не стандартный порт.

Узнать порт mysql:

mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0,05 sec)

После изменения bind-address в MySQL и создания пользователя с пермишенами (либо грант пермишенов текущим пользователям), к базе данных можно подключиться передавая параметр -h <host>. Хост — адрес машины, на которой установлен MySQL:

mysql -u -root -p -h <ip адрес>

Как разрешить внешние подключения к MySQL и MariaDB в Linux Ubuntu

По умолчанию сервер MySQL настроен таким образом, что к нему разрешены подключения только с локальной машины, следовательно, подключиться из-вне (по интернет или локальной сети) не получится.

Убедиться в этом можно набрав на сервере команду:

sudo netstat -tlp

В результате получите что-то типа этого:

Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:mysql *:* LISTEN 634/mysqld 
tcp 0 0 *:http *:* LISTEN 987/nginx -g daemon
tcp 0 0 *:ssh *:* LISTEN 375/sshd 
tcp6 0 0 [::]:http [::]:* LISTEN 987/nginx -g daemon
tcp6 0 0 [::]:ssh [::]:* LISTEN 375/sshd

Отсюда видно, что mysql слушает только интерфейс localhost (127.0.0.1). Это не всегда удобно, особенно когда есть необходимость выделить под сервер mysql отдельный сервер. А в рамках корпоративной локальной сети такое бывает очень часто.

Чтобы разрешить серверу MySQL принимать запросы из-вне необходимо предпринять несколько несложных шагов:

  1. Поменять одну строчку в конфигурационном файле MySQL;
  2. Создать сетевого пользователя с необходимыми правами.

Разрешаем MySQL слушать интерфейс, который смотрит во внешнюю сеть

Открываем конфигурационный файл любимы редактором, например nano, из под привилегированного пользователя:

sudo nano /etc/mysql/my.cnf

Если у вас установлен сервер mariaDB, то конфигурационный файл находится в другом месте:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Находим строчки:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1

и меняем 127.0.0.1 на 0.0.0.0 — тогда сервер будет слушать все интерфейсы компьютера, либо задаем конкретный ip-адрес локального интерфейса, который смотрит в локальную сеть. Например — 192.168.122.10.

Получаем

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0

Теперь остается только перезапустить сервис MySQL:

sudo service mysql restart

Теперь осталось только завести пользователя, которому разрешено обращаться к серверу MySQL извне.

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

Теперь нужной подключиться к MySql с паролем суперпользователя системы (системы!!! а не MySQL):

sudo mysql

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

mysql> GRANT ALL PRIVILEGES ON userdata.* TO 'user'@'%' IDENTIFIED BY 'password';

Здесь дается полный доступ к базе данных userdata пользователю с логином user и паролем password, подключающемуся с любого ip.

Можно ограничить права пользователя, разрешив ему подключаться к базе только с определенного ip. Для этого меняем % на конкретный ip-адрес, например 192.168.122.16

mysql> GRANT ALL PRIVILEGES ON userdata.* TO 'user'@'192.168.122.16' IDENTIFIED BY 'password';

А можно и разрешить пользователю всё — подключаться ко всем базам с любого ip-адреса

mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password';

Это делать не желательно, если конечно вы не заводите себя.

MySql настройка удаленного доступа (Ubuntu Linux)

По умолчанию MySql настроен таким образом, что к нему разрешены подключения только с локальной машины, следовательно, подключиться из-вне (по интернет или локальной сети) не получится.

Чтобы настроить удаленный доступ к MySql (настройка производится на операционной системе Ubuntu Linux и может отличаться для других ОС) необходимо отредактировать файл с настройками (конфигурационный файл). Обычно он располагается по пути /etc/mysql и называется my.cnf, хотя бывают и другие настройки.

Чтобы отредактировать файл с настройками MySql необходимо выполнить следующую команду:

sudo nano /etc/mysql/my.cnf

Если файл с настройками находится по пути /etc/mysql/mysql.conf.d/ и называется mysqld.cnf, тогда так:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Далее необходимо найти такую строку в открытом файле:

bind-address	= 127.0.0.1

В данной строке указывается, с каких адресов разрешено подключение к MySql, в данном случае только с адреса 127.0.0.1, то есть с локальной машины (127.0.0.1 = localhost). Для того, чтобы открыть доступ к нужному IP, его нужно прописать вместо 127.0.0.1. Если необходим доступ с любого адреса, то написать как показано ниже.

bind-address	=  0.0.0.0

После замены настроет bind-address MySql, его необходимо перезапустить:

sudo service mysql restart

Или так:

/etc/init.d/mysql restart

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

sudo mysql -p

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

mysql> GRANT ALL PRIVILEGES ON userdatabase.* TO 'user'@'192.168.0.10' IDENTIFIED BY 'password'; 

В данном случае дается полный доступ к базе данных userdatabase пользователю с логином user и паролем password, подключающемуся с IP 192.168.0.10.

Если необходимо разрешить доступ ко всем базам, то вместо имени базы данных пишется знак *, если необходимо разрешить доступ с любого IP, то вместо IP адреса пишется знак %. Ниже представлен пример, разрешающий пользователю user полный доступ ко всем базам данных с любого IP.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password'; 

Данная инсрукция справедлива и для других linux дистрибутивах, основанных на debian.

Как удаленно подключиться к MySQL – База знаний Timeweb Community

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

Я расскажу, как подключиться к удаленной базе данных MySQL, какие существуют способы, а также опишу некоторые типичные ошибки.

Подключение через панель управления TimeWeb

Чтобы подключиться удаленно к MySQL, необходимо для начала открыть сайт хостинга и авторизоваться в личном кабинете. В панели управления следует выбрать раздел «Базы данных MySQL», через него и будем проводить операции. В новом открывшемся окне находим ссылку «Добавить доступ» напротив того сервера, к которому планируется подключиться. Для разрешения доступа к подсети /24 меняем последний актет IP-адреса на знак %.

При установлении соединения используем имя сервера или его IP-адрес. Данная информация доступна на главной странице в разделе «Информация о сервере». Порт указываем 3306, имя пользователя будет тем же, что и название базы данных. Вводим пароль и устанавливаем соединение.

phpMyAdmin

phpMyAdmin – программное средство, предоставляющее веб-интерфейс для работы с сервером MySQL. Подключиться к базе можно, открыв раздел «Базы данных MySQL» в панели управления хостингом. Находим на странице ссылку «phpMyAdmin» и жмем по ней для подключения. Если она недоступна, значит, пользователем был превышен лимит доступных БД. Увеличить его можно сменой тарифа.

Входим в данный раздел, вбиваем все данные и подключаемся.

Соединение через SSH туннель

Данный тип подключения считается более безопасным, потому что все данные по SSH-туннелю передаются в зашифрованном виде, исключая возможность перехвата.

Подключение в Windows

В данной ОС соединение по SSH протоколу можно осуществить с помощью специальных программ для управления базами данных. Например, PuTTY (бесплатная программа) или SecureCRT (платное ПО, но с пробной версией на 30 дней).

Мы для работы выбрали PuTTY. Скачиваем установщик с официального сайта и устанавливаем приложение. Запускаем программу, затем переходим в раздел «Session». В поле «Host Name» вводим свой домен или указываем его IP-адрес.

Далее переходим в категорию «Connection», открываем вкладку «SSH», затем «Tunnels». В поле «Source Port» указываем значение 3306, в «Destination» вбиваем localhost:3306, потом жмем на кнопку «Add» для добавления порта в список. И только потом жмем кнопку «Open» для установления соединения с хостом.

Логин и пароль те же самые, которые используются для входа в панель управления. При подключении используем имя пользователя и пароль, выданные при создании базы данных. Адрес сервера — 127.0.0.1, порт для подключения 3306.

Предупреждаем, что если вы уже устанавливали сервер баз данных MySQL на своем компьютере, то соединение через порт 3306 будет недоступно. Надо будет указать другое значение, например 3307.

Подключение в Linux

В ОС Linux никакого дополнительного ПО устанавливать не придется, можно все провести через командную строку «Терминал». Перед тем как подключиться к MySQL удаленно, нужно создать SSH-туннель. Вводим вот такую команду:


ssh -L3306:localhost:3306 -n логин@site.com

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


sudo nano /etc/mysql/my.cnf

Далее комментируем нужную нам строку. В итоге она должна выглядеть вот таким образом:


# bind-address = 127.0.0.1

Сохраняем изменения, потом перезапускаем MySQL вот такой командой:


sudo service mysql restart

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


GRANT ALL ON *.* TO имя_пользователя@127.0.0.1 IDENTIFIED BY 'пароль'

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


mysql -u имя_пользователя –h 127.0.0.1 –p

mysql -h наименование_хоста -u dbUser -p dbName

Как проверить соединение с базой данных MySQL

Для проверки подключения к базе данных MySQL во всех ОС используем утилиту telnet. Нужно просто открыть командную строку и набрать в ней вот такую команду:


telnet 127.0.0.1 3306

Если соединение установится, то настройка туннеля прошла успешно, можно приступать к подключению. Если нет, рекомендуем тщательно проверить все настройки.

Распространенные проблемы и ошибки при подключении к MySQL

Как подключиться к MySQL удаленно, если возникают какие-то ошибки? Трудности обычно возникают при наличии запрещающих правил. Проверить, существуют ли такие, можно вот таким запросом:


iptables-save

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


/sbin/iptables -A INPUT -i eth0 -p tcp —destination-port 3306 -j ACCEPT

Если при подключении возникает ошибка «Can’t connect to Mysql Server on ‘IP_адрес'(10061)», соединение заблокировал брандмауэр, firewall, outpost, антивирус и прочие программы. Для UFW, инструмента брандмауэра в Ubuntu, можно задать вот такую команду, разрешающую доступ с любого IP-адреса:


sudo ufw allow 3306/tcp

Есть еще возможность открыть доступ для определенного IP-адреса, и это куда более безопасный способ. Для этого потребуется ввести такой запрос:


sudo ufw allow from IP_адрес to any port 3306

Если же появляется ошибка типа «Client does not support autentification protocol request by server; consider upgrading MySQL client», это значит, что установленный клиент не поддерживает требуемый сервером протокол.

Эту ошибку можно исправить, установив пароль старого формата:


SET PASSWORD FOR [email protected] = OLD_PASSWORD('password')

Если при проверке выходит ошибка формата «ERROR 2003 (HY000): Can’t connect to MySQL server», это значит, что порт 3306 не открыт. Либо сервер MySQL не прослушивает указанный IP-адрес.

В случае, когда выходит сообщение «ERROR 1130 (HY000): Host ‘10.8.0.5’ is not allowed to connect to this MySQL server», указывается отсутствие прав доступа к удаленному серверу у пользователя.

Ошибка «1045 невозможно подключиться к серверу MySQL» возникает при попытке подключиться удаленно к базам данных через phpMyAdmin. Причиной тому может быть неправильно введенный логин или же отсутствие пароля у пользователя или его неправильная смена.

Заключение

MySQL – один из самых популярных серверов баз данных с открытым исходным кодом. Подключиться к нему можно разными способами, причем как локально, так и удаленно. Если в процессе соединения возникают нетипичные ошибки, рекомендуем связаться со службой технической поддержки. 

Как разрешить удаленные подключения к серверу базы данных MySQL

По умолчанию сервер MySQL прослушивает соединения только от localhost, что означает, что к нему могут обращаться только приложения, работающие на одном хосте.

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

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

Первый шаг – настроить сервер MySQL на прослушивание определенного IP-адреса или всех IP-адресов на компьютере.

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

Для этого вам нужно отредактировать файл конфигурации MySQL и добавить или изменить значение опции bind-address. Вы можете установить один IP-адрес и IP-диапазоны. Если адрес есть 0.0.0.0, сервер MySQL принимает соединения на всех интерфейсах IPv4 хоста. Если в вашей системе настроен IPv6 0.0.0.0, используйте вместо ::.

Расположение файла конфигурации MySQL зависит от дистрибутива. В Ubuntu и Debian файл находится по адресу /etc/mysql/mysql.conf.d/mysqld.cnf, в то время как в дистрибутивах на основе Red Hat, таких как CentOS, файл находится по адресу /etc/my.cnf.

Откройте файл в текстовом редакторе :

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Найдите строку, которая начинается с bind-address и установите в качестве значения IP-адрес, который должен прослушивать сервер MySQL.

По умолчанию установлено значение 127.0.0.1 (прослушивается только на локальном хосте).

В этом примере мы настроим сервер MySQL на прослушивание всех интерфейсов IPv4, изменив значение на 0.0.0.0
mysqld.cnf

bind-address           = 0.0.0.0
# skip-networking

Если есть строка, содержащая skip-networking, удалите ее или закомментируйте, добавив # в начале строки.

В MySQL 8.0 и выше директива bind-address может отсутствовать. В этом случае добавьте ее в разделе [mysqld].

После этого перезапустите службу MySQL, чтобы изменения вступили в силу. Только root или пользователи с привилегиями sudo могут перезапускать сервисы.

Чтобы перезапустить службу MySQL в Debian или Ubuntu, введите:

sudo systemctl restart mysql

В дистрибутивах на основе RedHat, таких как CentOS, для перезапуска службы выполните:

sudo systemctl restart mysqld

Следующим шагом является предоставление доступа к базе данных удаленному пользователю.

Войдите на сервер MySQL от имени пользователя root, введя:

sudo mysql

Если вы используете старый плагин аутентификации MySQL для входа в систему от имени пользователя root, введите команду ниже и введите пароль при появлении запроса:

mysql -uroot -p

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

GRANT ALL ON database_name.* TO [email protected]'ip_address' IDENTIFIED BY 'user_password';

Где:

  • database_name – Имя базы данных, к которой будет подключаться пользователь.
  • user_name – это имя пользователя MySQL.
  • ip_address – это IP – адрес , с которого пользователь будет подключаться. Используйте, %чтобы позволить пользователю подключаться с любого IP-адреса.
  • user_password – это пароль пользователя.

Например, чтобы предоставить доступ к базе данных dbname пользователю с именем andreyex с паролем my_passwd с клиентского компьютера с IP 10.8.0.5, вы должны выполнить:

GRANT ALL ON dbname.* TO [email protected]'10.8.0.5' IDENTIFIED BY 'my_passwd';

Последний шаг – настройка брандмауэра для разрешения трафика через порт 3306( порт MySQL по умолчанию) с удаленных компьютеров.

Если вы используете iptables в качестве брандмауэра, команда ниже разрешит доступ с любого IP-адреса в Интернете к порту MySQL. Это очень небезопасно.

sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT

Разрешить доступ с определенного IP-адреса:

sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT

UFW – это инструмент брандмауэра по умолчанию в Ubuntu. Чтобы разрешить доступ с любого IP-адреса в Интернете (очень небезопасно), выполните:

sudo ufw allow 3306/tcp

Разрешить доступ с определенного IP-адреса:

sudo ufw allow from 10.8.0.5 to any port 3306

FirewallD является инструментом управления брандмауэром по умолчанию в CentOS. Чтобы разрешить доступ с любого IP-адреса в Интернете (очень небезопасно), введите:

sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload

Чтобы разрешить доступ с определенного IP-адреса на конкретном порту, вы можете создать новую зону FirewallD или использовать расширенное правило. Хорошо создайте новую зону с именем mysqlzone:

sudo firewall-cmd --new-zone=mysqlzone --permanentsudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32
sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp
sudo firewall-cmd --reload

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

mysql -u user_name -h mysql_server_ip -p

Где user_name имя пользователя, которому вы предоставили доступ и mysql_server_ip, IP-адрес хоста, на котором работает сервер MySQL.

Если все настроено правильно, вы сможете войти на удаленный сервер MySQL.

Если вы получаете сообщение об ошибке, как показано ниже, либо порт 3306 не открыт, либо сервер MySQL не прослушивает IP-адрес.

ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"

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

"ERROR 1130 (HY000): Host ‘10.8.0.5’ is not allowed to connect to this MySQL server"

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

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

  1. Настройте сервер MySQL для прослушивания всего или определенного интерфейса.
  2. Предоставьте доступ удаленному пользователю.
  3. Откройте порт MySQL в вашем брандмауэре.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

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

Даем доступ к базе данных MySQL из вне — WebSofter

Часто, этот процесс сопровождается ошибкой запрета доступа извне типа на подобие:

host ‘myhost’ is not allowed to connect to this mysql server

или таким:

Can't Connect to MySQL Server on IPAddress (10061)

Для решения данной проблемы нужно сделать следующие шаги

Для начала, проверим настройки в файле /etc/mysql/mysql.conf.d/mysqld.cnf

port = 3306
#skip-networking (в смысле, закомментировано)
bind-address = IP_СЕРВЕРА_(НЕ_127.0.0.1)

Дальше, когда пытаемся присоединиться к базе, например, любой управлялкой базами (SQL Manager Lite как вариант — удобно, бесплатно, но на буржуйском наречии), получаем соообщение о том, что наш комп не может соединяться с мускул сервером…

Вариант с firewall исключим для простоты восприятия, но проверить не помешает на будущее.

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

Сначала входим в консоль MySQL:

mysql -u <username> -p<password> <database_name>

Создаем пользователя test с полными правами для базы my_db с паролем superpass

GRANT ALL PRIVILEGES ON `my_db`.* TO [email protected]'%' IDENTIFIED BY 'superpass'

Это создаст пользователя и даст ему права (GRANT) на соединение со всех хостов кроме localhost (127.0.0.1)!

А следующий запрос даст право читать таблицу my_table в базе my_db пользователю test с компьютера 192.168.0.10 с паролем superpass:

GRANT SELECT ON my_db.my_table TO [email protected] IDENTIFIED BY 'superpass';

По умолчанию, режим безопасности подключения к MySQL находится под статусом MEDIUM , нам нужно перевести его в режим LOW командой MySQL

mysql> SET GLOBAL validate_password_policy=LOW;

Или это же можно сделать через конфигурационный файл, записав в  my.cnf строчку:

[mysqld]
validate_password_policy=LOW

 

 

 

Управление удалённым доступом к серверу MySQL

Нередко, удалённый доступ к серверу MySQL — это единственный способ управления своими базами данных (БД). Для хостинг-провайдеров подобная техническая возможность является обязательной для качественного предоставления услуг клиентам. Для веб-разработчиков (вообще для разработчиков) удалённый доступ позволяет использовать один общий ресурс для обслуживания БД. В любом случае, просто так по-умолчанию сервер MySQL удалённые подключения не допускает. Для включения удалённого доступа к MySQL необходимо конфигурирование определённых параметров как самого сервера, так и обслуживаемых БД и их пользователей. В данной статье будут рассмотрены основные принципы предоставления удалённого доступа к серверу MySQL.

Что для этого нужно?

Сервер MySQL по-умолчанию в целях безопасности сконфигурирован таким образом, что может принимать только локальные соединения, поступающие через локальный сокет с той же самой машины, на которой работает и сам сервер. Эта настройка обслуживается опцией «bind-address» в конфигурационном файле MySQL-сервера

/etc/mysql/mysql.conf.d/mysqld.cnf. Изменив значение указанной опции и перезапустив сервер MySQL можно предоставить доступ для удалённых клиентов.
Кроме самой возможности удалённого подключения к серверу MySQL необходимо также и позаботиться о предоставлении соответствующих привилегий удалённым пользователям. Это также очень важно как для комфортной работы, так и для безопасности. Привилегии пользователей MySQL предоставляются как для подключений, так и для работы

непосредственно с БД. В первом случае для пользователя могут быть заданы привилегии, ограничивающие его действия для конкретного типа подключения. Например, удалённо пользователь не может удалять БД. При этом неважно, что сервер корректно настроен для удалённого доступа. Во втором случае у пользователя могут быть заданы ограничения на уровне самих БД, таблиц и процедур, действующие только при удалённом подключении и отсутствующие при локальном. Например, так бывает, когда системный администратор MySQL не хочет, чтобы БД, таблицы, данные можно было удалить работая с сервером через удалённое подключение, а только локально.

Таким образом, существует возможность задания привилегий, т. е. управления доступом не только для самих пользователей и групп. Но и для характера их подключения к серверу — удалённого или локального. Это необходимо учитывать при организации и управлении удалённым доступом к MySQL-серверу.

Настройка сервера MySQL

По-умолчанию для опции «bind-address» в файле /etc/mysql/mysql.conf.d/mysqld.cnf задано значение 127.0.0.1. И подключиться к серверу можно только локально:

. . .
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
. . .

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

. . .
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
. . .

Сделав изменения в и сохранив файл нужно перезапустить сам сервер MySQL:

$ sudo systemctl restart mysql

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

$ mysql -u user_name -h db_host -p

Здесь «db_host» – это адрес (IP или имя хоста) компьютера, на котором работает сервер MySQL. При удачном подключении пользователь будет переведён в интерфейс командной консоли MySQL.

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

На сервере MySQL может быть несколько пользователей с одинаковым именем, но разным режимом доступа. Например, пользователь с именем john, которому доступно только локальные подключения. На самом деле распознается сервером MySQL как пользователь с именем «[email protected]». Для того, чтобы пользователь john мог подключаться ещё и удалённо с любого IP. На сервере должна быть создана ещё одна учётная запись с именем «[email protected]%». Вот как выглядит создание такой учётной записи в веб-интерфейсе phpMyAdmin:

Как можно видеть, в системе управления доступом MySQL для учётной записи пользователя существует отдельный атрибут «имя хоста», регламентирующий режим подключения. Это сделано как для повышения самой безопасности, так и для более гибкого управления и администрирования. Тот случай, когда одно другому не только не мешает. Но в совокупности поднимает эффективность и безопасность всего сервиса.

Поскольку учётные записи [email protected] и [email protected]% являются разными (хотя и принадлежат одному пользователю), то для них можно отдельно настраивать привилегии. Например, для учётной записи [email protected]% в phpMyAdmin это выглядит следующим образом:

Как можно видеть, администратор запретил пользователю john удалять БД через удалённое подключение. Таким же образом можно устанавливать (или убирать) ограничения на уровне БД. Т. е. при работе с таблицами, а также на уровне таблиц — при работе непосредственно с данными.

Заключение

В заключение стоит ещё раз отметить, что предоставление удалённого доступа к БД путём изменения параметра bind-address в значение 0.0.0.0 должно проводиться с учётом принятых мер по обеспечению дополнительной безопасности сервера.

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

Как включить внешний доступ к серверу MySQL?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
.

phpmyadmin — Удаленный доступ к MySQL на моем веб-сервере

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

Внешний доступ к базе данных WP

@davidwilbour.,

У меня один вопрос: нужен ли вам доступ к таблицам, отличным от WP, в исходном коде WordPress или во внешнем источнике?

Если это в wp, вы можете получить доступ с помощью глобальной переменной $ wpdb

https://codex.wordpress.org/Class_Reference/wpdb

Каждый раз, когда вы получаете сообщение об ошибке «Доступ запрещен», это потому, что вы используете неправильное имя пользователя / пароль для пользователя MySL, настроенного для этой базы данных.Вы видите ошибку MySQL, а не WordPress. Вам нужно будет проверить учетные данные пользователя, которые вы используете, и увидеть, где они неверны.

Catacaustic,
Я тоже подумал, что это неправильный пользователь / пароль, но я могу подключиться нормально. Ошибка возникает только тогда, когда я выполняю инструкцию SQL. Если я меняю пароль или пользователя на что-то явно неправильное, я сразу получаю сообщение об ошибке «Доступ запрещен». Я пытаюсь открыть соединение, поэтому я думаю, что это должно быть что-то другое.

Rajan,
Я уже могу получить доступ к таблицам, отличным от WP, это таблицы WP, к которым я не могу получить доступ из внешней программы.

Насколько мне известно, открытие соединения только подключает к серверу, это фактически не проверяет, есть ли у пользователя права доступа к этой базе данных. Ошибка отказа в доступе возникает из-за того, что у пользователя не установлены разрешения для этой базы данных при попытке выполнить запрос. Я бы перепроверил разрешения, чтобы убедиться, что MySQL, который вы используете, имеет необходимые разрешения для таблиц, которые вы пытаетесь запросить.

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

ВЫБРАТЬ * ИЗ wp_posts

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

Решено!

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

Простите за то, что потратил впустую время. По крайней мере, это может помочь следующему новичку!

.

Как ограничить доступ к порту MySQL

В некоторых дистрибутивах Linux порт 3306 открыт после установки MySQL. В этой статье описаны два метода ограничения или блокировки доступа к порту 3306 на неуправляемом сервере.

Информация в этой статье относится только к неуправляемым продуктам. У вас должен быть root-доступ к серверу, чтобы выполнять описанные ниже процедуры.

Метод №1: отключение сети MySQL

Если вам не нужен доступ к MySQL с внешнего компьютера, вы можете отключить сеть MySQL.

Следуйте процедуре, описанной ниже для вашего дистрибутива Linux.

Даже с отключенной сетью MySQL вы все равно можете безопасно получить доступ к MySQL с удаленного компьютера, если вам нужно. Для этого вы можете настроить SSH-туннель. Информацию о том, как это сделать, см. В этой статье.
CentOS и Fedora

Чтобы отключить сеть MySQL в CentOS и Fedora, выполните следующие действия:

  1. Войдите на свой сервер, используя SSH.
  2. В командной строке используйте предпочитаемый текстовый редактор, чтобы открыть файл / etc / my.cnf файл.
  3. Найдите следующую строку в файле my.cnf :
     # пропустить-сеть 

    Если этой строки нет в файле my.cnf , добавьте ее.

  4. Удалите знак # в начале строки, чтобы строка выглядела следующим образом:

     skip -etwork 
  5. Сохраните изменения в файле /etc/my.cnf , а затем выйти из текстового редактора.
  6. Введите следующую команду для перезапуска службы MySQL:

     service mysqld restart 

    Порт 3306 теперь закрыт на сервере.

Debian и Ubuntu

По умолчанию MySQL в Debian и Ubuntu настроен на использование только интерфейса localhost (IP-адрес 127.0.0.1) для работы в сети. Это означает, что порт 3306 закрыт для внешних подключений. Чтобы убедиться, что это конфигурация вашего сервера, выполните следующие действия:

  1. Войдите на свой сервер, используя SSH.
  2. В командной строке используйте предпочитаемый текстовый редактор, чтобы открыть файл /etc/mysql/my.cnf .
  3. Найдите строку MySQL адрес привязки в файле my.cnf . Должно получиться так:
     адрес привязки = 127.0.0.1 

    Если строка MySQL bind-address установлена ​​на 0.0.0.0 (или вообще без адреса), то соединения открыты на всех интерфейсах.

  4. Если вы внесли изменения
.
Mysql создание пользователя: Как создать нового пользователя и настроить права доступа в MySQL

Mysql создание пользователя: Как создать нового пользователя и настроить права доступа в MySQL

Пользователи MySQL. Как создать пользователя MySQL

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

Пользователи MySQL. Как создать пользователя MySQL

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

Как получить доступ к MySQL серверу

Содержание статьи:

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

Перед тем, как создать пользователя MySQL, не забудьте настроить сервер при помощи конфигурационного файла my.ini. Чтобы получить доступ к MySQL серверу нужно установить соединение, для этого требуется ввести логин и пароль. Если сервер баз данных удаленный, то потребуется ввести еще и имя хоста, на котором он установлен, если вы не указываете имя хоста, то соединение будет установлено с локальным сервером.

Установить соединение с локальным сервером, вы можете, используя следующую команду в командной строке операционной системы:

mysql –h localhost –p –u root

mysql –h localhost –p –u root

Подтверждаем команду нажатием клавиши Enter, после чего MySQL предложит ввести вам пароль этого пользователя, вводим и нажимаем Enter. Обратите внимание: если вы работает в операционной системе Windows 7, то командную строку нужно запускать от имени администратора. Иногда MySQL сервер может быть не найден, о решении данной проблемы мы поговорим в другой статье.

Разберемся с этой командой. Данная команда запускает консоль MySQL сервера, оболочку, которая позволяет работать с базами данных, операции, которые можно производить с данными, могут быть самыми различными, все зависит от прав доступа пользователя MySQL, в данном случае вы можете производить любые операции со всеми базами данных, поскольку вход осуществлен от имени root пользователя MySQL. На заметку начинающим пользователям UNIX-подобных операционных систем: root пользователь MySQL сервера и root пользователь операционной системы – это два разных пользователя. Имя пользователя MySQL сервера пишется после конструкции «-u».

Пароль пользователя MySQL сервера пишется после конструкции «-p». Его можно сразу не вводить, тогда его придется ввести после того, как нажмете Enter. После конструкции «-h» пишется имя хоста, на котором находится MySQL сервер, в данном случае мы явно указываем, что соединение нужно устанавливать с локальным сервером баз данных, этого можно и не делать.

После того, как будет выполнена данная команда, вам потребуется ввести пароль пользователя MySQL. Если пользователь MySQL не имеет пароля, то после выполнения команды следует нажать клавишу Return. Надеюсь, что мы разобрались с получением доступа к MySQL серверу и каких-то вопросов тут не возникнет.

Как посмотреть информацию о существующих базах данных MySQL сервера

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

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

Чтобы изменять базу данных, нужно начать ее использовать, для этого существует команда use.

Обратите внимание: команда use – это не SQL запрос, поэтому точку с запятой в конце этой команды можно не ставить, а можно и поставить, результат будет один: вы начнете работать с указанной базой данных MySQL сервера. Database_name – это имя базы данных, с которой будет работать пользователь MySQL, оно может быть любым из полученного списка, который выдала команда show databases. Думаю, это все, что нужно знать, чтобы в дальнейшем разобраться с тем, как создать пользователя MySQL.

Как создать пользователя MySQL. Команда GRANT.

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

  1. Root пользователь MySQL. Способен делать все, это главный администратор MySQL сервера, зачастую права root излишни, с этими правами вы можете навредить сами себе.
  2. Пользователи MySQL, которых создал root. Эти пользователи MySQL сервера обладают различными правами, права назначаются пользователем root при помощи SQL запроса GRANT.

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

GRANT priv_type [(column_list)] [, priv_type [(column_list)] …] ON {tbl_name | * | *.* | db_name.*} TO user_name [IDENTIFIED BY ‘password’] [, user_name [IDENTIFIED BY ‘password’] …] [WITH GRANT OPTION]

GRANT priv_type [(column_list)] [, priv_type [(column_list)] …]

 

ON {tbl_name | * | *.* | db_name.*}

 

TO user_name [IDENTIFIED BY ‘password’]

 

[, user_name [IDENTIFIED BY ‘password’] …]

 

[WITH GRANT OPTION]

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

Мы создадим нового пользователя MySQL. На моем сервере есть база данных с именем mydb, вы можете создать базу данных свою собственную с нужным вам именем. Стоит обратить внимание: даже если пользователь MySQL уже существует, ему все равно придется дать определенные привилегии командой GRANT. Итак, создадим нового пользователя, который может совершать любые действия с базой данных mydb сервера MySQL. Приведу вводные данные. Имя пользователя MySQL: «newusermysql», пароль пользователя MySQL: «userpassword». Хост, на котором установлен сервер: localhost. Действия, котороые сможет выполнять новый пользователь: любые действия с базой данных mydb. Запрос GRANT на создание пользователя MySQL с указанными правами:

GRANT ALL ON mydb.* TO ‘newusermysql’@’localhost’IDENTIFIED BY ‘userpassword’;

GRANT ALL ON mydb.* TO ‘newusermysql’@’localhost’IDENTIFIED BY ‘userpassword’;

Точка с запятой в конце команды обязательна, так как GRANT – это SQL запрос. Разберем команду для создания пользователя MySQL по частям. IDENTIFIED BY ‘userpassword’: установить пароль для пользователя MySQL, как «userpassword». ‘newusermysql’@’localhost’: указываем хост, с которым будет соединен пользователь с именем «newusermysql».  Инструкция GRANT может использоваться только root пользователем MySQL. Инструкция ALL ON предоставляет все полномочия пользователю newusermysql на базу данных mydb.

На заметку: база данных WordPress находится под управлением MySQL сервера, поэтому пользователей WordPress можно создавать вручную, заполняя соответствующие поля и давая им привилегии, с другой стороны: WordPress – это CMS, которая облегчает жизнь вебмастера и предоставляет графический интерфейс для создания пользователей.

Думаю, что я подробно рассмотрел вопрос о том, как создать пользователя MySQL, теперь вы сможете создавать новых пользователей, о привилегиях пользователей MySQL мы поговорим в одной из следующих публикаций,  если все-таки возникают вопросы по данной теме, то прошу задавать их в комментариях, если вы считаете, что статья вам помогла и вы хотите помочь ресурсу – воспользуйтесь блоком социальных кнопок на этой странице, буду очень вам признателен и благодарен! Спасибо за внимание!

Создание нового пользователя в MySQL и предоставление разрешения базы данных MySQL

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

Давайте начнем с входа в систему

Чтобы войти в нашу систему MySQL, мы используем следующую команду:

# mysql -u root -p

 

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

Если вы не установили MySQL на сервере, вы можете проверить статью о том, как установить MySQL на Ubuntu 16.04.

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

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

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

 

Совет: всегда используйте надежный пароль для всех учетных записей. Который Вы можете сгенерировать из командной строки.

Еще одна интересная вещь, об этой команде является то, что имя хоста нового пользователя, которого мы только что создали может быть другое имя хоста или IP – адрес, если мы хотим, чтобы пользователь вошел в систему удаленно.
В качестве примера:

CREATE USER 'new_user'@'10.20.30.111' IDENTIFIED BY 'password';

 

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

GRANT SELECT ON *.* TO 'new_user'@'localhost';

 

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

GRANT <permission type> ON <database>.<table> TO '<username>'@'<host>';

 

Мы также можем поручить MySQL, забрать определенное разрешение от пользователя в том же формате, что и выше, только заменив ключевое слово GRANT на REVOKE и ключевое слово TO на FROM:

REVOKE <permission type> ON <database>.<table> FROM '<username>'@'<host>';

 

Примечание:

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

Для того, чтобы наши новые установленные разрешения вступили в силу, нам нужно перезагрузить все привилегии:

FLUSH PRIVILEGES;

Предоставление пользователям других видов разрешений

В предыдущем разделе мы видели, как предоставить разрешения на чтение для пользователя с помощью ключевого слова SELECT. В этом разделе мы рассмотрим другие ключевые слова, которые позволят устанавливать различные типы разрешений на пользователе.

  • USAGE – дает пользователю право доступа для входа на сервер MySQL (задается по умолчанию при создании нового пользователя)
  • SELECT – дает пользователю разрешение на использование команды выбора для извлечения данных из таблиц
  • INSERT – дает разрешение на добавление новых строк в таблицах
  • UPDATE – дает пользователю право изменять существующие строки в таблицах
  • DELETE – дает пользователю право удалять существующие строки из таблиц
  • CREATE – дает пользователю разрешение для создания новых таблиц или баз данных
  • DROP – дает пользователю право удалить существующие таблицы или базы данных
  • ALL PRIVILEGES – дает пользователю право иметь неограниченный доступ на базы данных или всей системы (с помощью звездочки в позиции базы данных)
  • GRANT OPTION – дает пользователю право разрешать или удалять разрешения других пользователей

Удаление пользователей осуществляется таким же образом, как и с базами данных или таблицами с помощью команды DROP:

DROP USER 'new_user'@'localhost';

 

Наконец, мы можем протестировать нашего нового пользователя, введите следующую команду для завершения текущего активного сеанса:

exit;

 

А потом мы снова войдем в систему, введя следующую команду в командной строке:

mysql -u new_user -p

 

Примечание:

Не забудьте заменить new_user на собственное необходимое имя пользователя.

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

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

Создание пользователя MySQL — Ваши финансы

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

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

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

1. Как создать пользователя MySQL

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

mysql -u root -p

Теперь можно работать. Для создания пользователя используется команда CREATE USER, её синтаксис такой:

CREATE USER ‘имя_пользователя’@’хост’ IDENTIFIED BY ‘пароль’;

Кроме имени пользователя, здесь нужно задать хост, с которого может авторизоваться этот пользователь. Здесь может быть доменное имя, IP-адрес, адрес подсети или знак «%», который означает все возможные хосты. Это очень удобно, потому что вы можете создать пользователя, к которому можно будет подключится только локально или настроить отдельно права для локального или удалённого пользователя.

Например, давайте создадим локального пользователя test_user с паролем password:

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

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

CREATE USER 'test_user'@'%' IDENTIFIED BY 'password';

Смотрим наших пользователей:

SELECT User,Host FROM mysql.user;

Все пользователи созданы.

2. Права пользователя MySQL

Создать пользователя — это ещё далеко не всё, теперь нужно назначить ему права. Для этого используется команда GRAT. У неё такой синтаксис:

GRANT привилегии ON база_данных . таблица TO ‘имя_пользователя’@’хост’;

Здесь можем дать определённые привилегии для опредёленного пользователя к базе данных или таблице. Если нужно дать права для всех баз данных или таблиц, используйте вместо названия звездочку — «*». Вот основные права пользователя MySQL, которые вы можете использовать:

  • ALL PRIVILEGES — все, кроме GRANT;
  • USAGE PRIVILEGES — никаких привилегий;
  • SELECT — делать выборки из таблиц;
  • INSERT — вставлять данные в таблицу;
  • UPDATE — обновлять данные в таблице;
  • DELETE — удалять данные из таблицы;
  • FILE — разрешает читать файлы на сервере;
  • CREATE — создавать таблицы или базы данных;
  • ALTER — изменять структуру таблиц;
  • INDEX — создавать индексы для таблиц;
  • DROP — удалять таблицы;
  • EVENT — обработка событий;
  • TRIGGER — создание триггеров.

Также доступны такие привилегии администрирования баз данных:

  • GRANT — изменять права пользователей;
  • SUPER — суперпользователь;
  • PROCESS — получение информации о состоянии MySQL;
  • RELOAD — позволяет перезагружать таблицы привилегий;
  • SHUTDOWN — позволяет отключать или перезапускать базу данных;
  • SHOW DATABASES — просмотр списка баз данных;
  • LOCK TABLES — блокирование таблиц при использовании SELECT;
  • REFERENCES — создание внешних ключей для связывания таблиц;
  • CREATE USER — создание пользователей;

Чтобы дать права пользователю MySQL на обновление и добавление записей для базы данных test_database, выполните:

GRANT SELECT,UPDATE,INSERT ON test_database . * TO 'test_user'@'localhost';

Дальше дадим этому же пользователю все права над этой базой данных:

GRANT ALL PRIVILEGES ON test_database . * TO 'test_user'@'localhost';

Теперь посмотрим привилегии нашего пользователя:

SHOW GRANTS FOR 'test_user'@'localhost';

Мы видим, что для всех баз данных и таблиц привелегий нет, но зато есть все привилегии для базы данных test_database. Вот так это работает. После обновления прав пользователя необходимо обновить таблицу прав пользователей MySQL  в памяти. Для этого выполните:

FLUSH PRIVILEGES;

3. Удаление прав пользователя MySQL

Чтобы отозвать права у пользователя MySQL, используйте команду REVOKE вместо GRANT. Её синтаксис похож на GRANT:

REVOKE привилегии ON база_данных . таблица FROM ‘имя_пользователя’@’хост’;

Например, заберём все права на базу данных test_database у нашего пользователя:

REVOKE ALL PRIVILEGES ON test_database . * FROM 'test_user'@'localhost';

4. Создание суперпользователя MySQL

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

GRANT ALL PRIVILEGES ON * . * TO 'test_user'@'localhost';

Даём все привилегии для пользователя test_user над всеми базами данными и всеми таблицами. Но наш пользователь не сможет давать права другим пользователям. Чтобы это исправить, нужно дать ему привилегию GRANT, а для этого используется такая команда:

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

Теперь этот пользователь является суперпользователем для MySQL и, авторизовавшись от его имени в PhpMyAdmin, вы можете делать всё то же самое, что и с  помощью root.

Работа в командной строке с MySQL может показаться довольно сложной. Но сделать это надо всего один раз -после установки базы данных. А дальше можно выполнять все действия в Phpmyadmin.

losst.ru

Создать пользователя базы данных MySQL

Создать пользователя базы данных MySQL можно из консоли, подключиться требуется с правами root. То же самое можно проделать через веб-интерфейс PHPMYADMIN, но описанный ниже способ универсален.

 

Прежде всего нужно подключиться к консоли

mysql -h localhost -u root -p

 

Пользователь создается следующим образом MySQL:

CREATE USER ‘user’@’localhost’ IDENTIFIED BY ‘password’;

 

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

 

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

GRANT ALL PRIVILEGES ON * . * TO ‘user’@’localhost’;

 

* . * здесь означает все таблицы всех баз данных.

ALL PRIVILEGES предполагает права на чтение, редактирование, изменение и удаление и т.п. таблиц и баз.

 

 

Полный список возможных опций:

  • ALL PRIVILEGES — полный доступ к заданной таблице/базе данных или всем таблицам/базам.
  • CREATE — право создавать новые таблицы/базы данных.
  • DROP — право удалять таблицы/базы данных.
  • SELECT — право выполнять чтение из таблиц/баз данных
  • UPDATE — право редактировать строки таблиц
  • DELETE — право удалять строки из таблиц
  • INSERT — право добавлять строки в таблицу
  • GRANT OPTION — право назначать или удалять права доступа для других пользователей

 

Чтобы изменения вступили в силу необходимо выполнить:

FLUSH PRIVILEGES;

 

Команду нужно выполнять каждый раз при редактировании реквизитов пользователей и прав доступа

 

 

Права можно также забрать используя REVOKE

 

Например:

REVOKE UPDATE ON *.* FROM ‘user’@‘localhost’;

 

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

quit

 

и подключившись к ней и реквизитами добавленного пользователя, в примере это user

 

mysql -u user -p

 

Пользователя можно удалить тем же образом, что и базу данных

DROP USER ‘user’@’localhost’;

 

 

Обновить пароль пользователя сервера баз данных

UPDATE mysql.user SET Password=PASSWORD(‘password123′) WHERE USER=’user’ AND Host=’localhost’;

 

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

SELECT host, user, password FROM mysql.user;

Добавление новых пользователей в MySQL

Добавление новых пользователей в MySQL

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

CREATE USER ‘cibergod’@’localhost’ IDENTIFIED BY ‘11111’;

GRANT ALL PRIVILEGES ON *.* TO ‘cibergod’@’localhost’ WITH GRANT OPTION;


Пользователей можно добавлять двумя различными способами — при помощи команды GRANT или напрямую в таблицы назначения привилегий MySQL. Предпочтительнее использовать команду GRANT — этот способ проще и дает меньше ошибок. See section 4.3.1 Синтаксис команд GRANTи REVOKE.

Существует также большое количество программ (таких как phpmyadmin), которые служат для создания и администрирования пользователей. @xref{Portals}.

В приведенных ниже примерах демонстрируется, как использовать клиент mysql для задания новых пользователей. В примерах предполагается, что привилегии установлены в соответствии с принятыми по умолчанию значениями, описанными в предыдущем разделе. Это означает, что для внесения изменений на том же компьютере, где запущен mysqld, необходимо подсоединиться к серверу как пользователь MySQL root, и у пользователя root должна быть привилегия INSERT для базы данных mysql, а также административная привилегия RELOAD. Кроме того, если был изменен пароль пользователя root, его необходимо указать здесь для команды mysql.

Новых пользователей можно добавлять, используя команду GRANT:

shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected]
    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected]"%"
        -> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO [email protected];
mysql> GRANT USAGE ON *.* TO [email protected];

Эти команды GRANT создают трех новых пользователей:

monty
Полноценный суперпользователь — он может подсоединяться к серверу откуда угодно, но должен использовать для этого парольsome_pass. Обратите внимание на то, что мы должны применить операторы GRANT как для [email protected], так и для [email protected]"%". Если не добавить запись с localhost, запись анонимного пользователя для localhost, которая создается при помощи mysql_install_db, будет иметь преимущество при подсоединении с локального компьютера, так как в ней указано более определенное значение для поля Host, и

Создание баз данных и пользователей — база данных Azure для MySQL

  • Чтение занимает 3 мин

В этой статье

применимо к: База данных Azure для MySQL — база данных Azure с одним сервером для MySQL — гибкий сервер

В этой статье описывается создание пользователей на сервере базы данных Azure для MySQL.This article describes how you can create users in an Azure Database for MySQL server.

Примечание

Обмен данными без смещенияBias-free communication

Корпорация Майкрософт поддерживает различные и включенные среды.Microsoft supports a diverse and inclusionary environment. Эта статья содержит ссылки на слово Slave.This article contains references to the word slave. В соответствии с руководством по стилю Майкрософт для обмена данными без пересчета этот термин распознается как исключение.The Microsoft style guide for bias-free communication recognizes this as an exclusionary word. Это слово используется в этой статье для обеспечения согласованности, так как в настоящее время это слово, которое отображается в программном обеспечении.The word is used in this article for consistency because it’s currently the word that appears in the software. При обновлении программного обеспечения для удаления слова эта статья будет обновлена для выравнивания.When the software is updated to remove the word, this article will be updated to be in alignment.

При создании первой базы данных Azure для MySQL вы указали имя пользователя и пароль администратора сервера, используемые для входа.When you first created your Azure Database for MySQL, you provided a server admin login user name and password. Дополнительные сведения см. в этом кратком руководстве.For more information, you can follow the Quickstart. Имя пользователя администратора сервера можно найти на портале Azure.You can locate your server admin login user name from the Azure portal.

Администратор сервера получает определенные привилегии для выполнения следующих операций на сервере:The server admin user gets certain privileges for your server as listed:

ВЫБОР, ВСТАВКА, ОБНОВЛЕНИЕ, УДАЛЕНИЕ, СОЗДАНИЕ, УДАЛЕНИЕ, ПЕРЕЗАГРУЗКА, ОБРАБОТКА, ССЫЛКИ, ИНДЕКСИРОВАНИЕ, ИЗМЕНЕНИЕ, ОТОБРАЖЕНИЕ БАЗ ДАННЫХ, СОЗДАНИЕ ВРЕМЕННЫХ ТАБЛИЦ, БЛОКИРОВКА ТАБЛИЦ, ВЫПОЛНЕНИЕ, ВЕДОМАЯ РЕПЛИКАЦИЯ, КЛИЕНТ РЕПЛИКАЦИИ, СОЗДАНИЕ ПРЕДСТАВЛЕНИЯ, ПОКАЗАТЬ ПРЕДСТАВЛЕНИЕ, СОЗДАТЬ ПОДПРОГРАММЫ, ALTER ПОДПРОГРАММА, СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ, СОБЫТИЕ, ТРИГГЕРSELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER

После создания сервера базы данных Azure для MySQL с помощью первой учетной записи администратора сервера можно создать дополнительных пользователей и предоставить им права администратора.Once the Azure Database for MySQL server is created, you can use the first server admin user account to create additional users and grant admin access to them. Кроме того, учетная запись администратора сервера может использоваться для создания менее привилегированных пользователей, имеющих доступ к отдельным схемам базы данных.Also, the server admin account can be used to create less privileged users that have access to individual database schemas.

Примечание

Роль SUPER Privilege и DBA не поддерживаются.The SUPER privilege and DBA role are not supported. Проверьте права в статье ограничения, чтобы понять, что не поддерживается в службе.Review the privileges in the limitations article to understand what’s not supported in the service.

Создание базы данных с пользователем, не являющимся администратором, в базе данных Azure для MySQLHow to create database with non admin user in Azure Database for MySQL

  1. Получите сведения о подключении и имя пользователя администратора.Get the connection information and admin user name. Чтобы подключиться к серверу базы данных, вам потребуются учетные данные администратора для входа и полное имя сервера.To connect to your database server, you need the full server name and admin sign-in credentials. Вы можете легко найти данные для входа на странице Обзор сервера или на странице Свойства на портале Azure.You can easily find the server name and sign-in information from the server Overview page or the Properties page in the Azure portal.

  2. Используйте учетную запись и пароль администратора для подключения к серверу базы данных.Use the admin account and password to connect to your database server. Используйте предпочитаемый клиентский инструмент, например MySQL Workbench, mysql.exe, HeidiSQL и т. д.Use your preferred client tool, such as MySQL Workbench, mysql.exe, HeidiSQL, or others. Если вы не знаете, как подключиться, см. статью Использование MySQL Workbench для подключения и запроса данных для одного сервера или подключения и запроса данных для гибкого сервера .If you are unsure of how to connect, see how to use MySQL Workbench to connect and query data for Single Server or connect and query data for Flexible Server

  3. Измените и выполните следующий код SQL.Edit and run the following SQL code. Замените значение заполнителя db_user новым именем пользователя, а значение заполнителя testdb — именем базы данных.Replace the placeholder value db_user with your intended new user name, and placeholder value testdb with your own database name.

    Этот код SQL создает базу данных testdb для примера.This sql code syntax creates a new database named testdb for example purposes. Затем он создает пользователя в службе MySQL и предоставляет ему все привилегии для новой схемы базы данных (testdb.*).Then it creates a new user in the MySQL service, and grants all privileges to the new database schema (testdb.*) for that user.

    CREATE DATABASE testdb;
    
    CREATE USER 'db_user'@'%' IDENTIFIED BY 'StrongPassword!';
    
    GRANT ALL PRIVILEGES ON testdb . * TO 'db_user'@'%';
    
    FLUSH PRIVILEGES;
    
  4. Проверьте предоставление привилегий в базе данных.Verify the grants within the database.

    USE testdb;
    
    SHOW GRANTS FOR 'db_user'@'%';
    
  5. Войдите на сервер, указав эту базу данных и введя новое имя пользователя и пароль.Log in to the server, specifying the designated database, using the new user name and password. В этом примере показана командная строка MySQL.This example shows the mysql command line. После ввода этой команды вам будет предложено ввести пароль для имени пользователя.With this command, you are prompted for the password for the user name. Укажите собственные имя сервера, имя базы данных и имя пользователя.Replace your own server name, database name, and user name.

mysql --host mydemoserver.mysql.database.azure.com --database testdb --user [email protected] -p
mysql --host mydemoserver.mysql.database.azure.com --database testdb --user db_user -p

Как создать дополнительных администраторов в базе данных Azure для MySQLHow to create additional admin users in Azure Database for MySQL

  1. Получите сведения о подключении и имя пользователя администратора.Get the connection information and admin user name. Чтобы подключиться к серверу базы данных, вам потребуются учетные данные администратора для входа и полное имя сервера.To connect to your database server, you need the full server name and admin sign-in credentials. Вы можете легко найти данные для входа на странице Обзор сервера или на странице Свойства на портале Azure.You can easily find the server name and sign-in information from the server Overview page or the Properties page in the Azure portal.

  2. Используйте учетную запись и пароль администратора для подключения к серверу базы данных.Use the admin account and password to connect to your database server. Используйте предпочитаемый клиентский инструмент, например MySQL Workbench, mysql.exe, HeidiSQL и т. д.Use your preferred client tool, such as MySQL Workbench, mysql.exe, HeidiSQL, or others. Если вы не знаете, как подключиться, прочитайте раздел База данных Azure для MySQL: подключение и запрос данных с помощью MySQL Workbench.If you are unsure of how to connect, see Use MySQL Workbench to connect and query data

  3. Измените и выполните следующий код SQL.Edit and run the following SQL code. Замените новым именем пользователя значение заполнителя new_master_user.Replace your new user name for the placeholder value new_master_user. Эта синтаксическая конструкция предоставляет перечисленные привилегии для всех схем базы данных (.) имени пользователя (new_master_user в этом примере).This syntax grants the listed privileges on all the database schemas (.) to the user name (new_master_user in this example).

    CREATE USER 'new_master_user'@'%' IDENTIFIED BY 'StrongPassword!';
    
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'new_master_user'@'%' WITH GRANT OPTION;
    
    FLUSH PRIVILEGES;
    
  4. Проверка разрешенийVerify the grants

    USE sys;
    
    SHOW GRANTS FOR 'new_master_user'@'%';
    

Дальнейшие действияNext steps

Откройте брандмауэр для IP-адресов компьютеров новых пользователей, чтобы обеспечить их подключение:Open the firewall for the IP addresses of the new users’ machines to enable them to connect:

Чтобы получить дополнительные сведения об управлении учетными записями пользователей, ознакомьтесь с управлением учетными записями пользователей, синтаксисом GRANT и привилегиями в документации по продукту MySQL.For more information regarding user account management, see MySQL product documentation for User account management, GRANT Syntax, and Privileges.

Создаем пользователя в MySQL, добавляем привилегии

Документация MySQL хорошо описывает все нюансы администрирования и использования баз данных. В конце данного поста будет ссылка на руско-язычную документацию, где вы более тщательно сможете ознакомиться касательно этой темы. Здесь же представлена выжимка касательно темы добавления нового пользователя в MySQL.
Добавить пользователя можно двумя способами, с помощью команды GRANT либо напрямую в таблицы назначения привилегий MySQL. Рекомендуется пользоваться командой GRANT, т.к. данный способ предполагает меньше ошибок, да и прост по сравнению со вторым способом.
Первое что мы сделаем, это подключимся к консоли управления MySQL:


#mysql -u root -p

Будет предложено ввести пароль от учетной записи root в MySQL, после успешного ввода двигаемся дальше. Создадим новую базу, затем добавим пользователя с полными правами на данную базу.
Создаем базу:


CREATE DATABASE <DB_NAME>;

Создаем нового пользователя, выставляем права:


GRANT ALL PRIVILEGES ON <DB_NAME>.* TO 'user'@'localhost'
IDENTIFIED BY 'password' WITH GRANT OPTION;

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


GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'
IDENTIFIED BY 'password' WITH GRANT OPTION;

Запись ‘user’@’localhost’ говорит о том, что пользователь user может получать доступ только с localhost. Можно добавить пользователя, который может подключаться к базе с любого хоста, делается это так:


GRANT ALL PRIVILEGES ON <DB_NAME>.* TO 'my_user'@'%' 
IDENTIFIED BY 'my_password' WITH GRANT OPTION;

Вместо localhost мы указали знак %. Собственно вот самое основное, здесь мы рассмотрели добавление пользователя и его привилегий с помощью команды GRANT, про второй способ добавления непосредственно в таблицу привилегий вы можете по вкуривать в документации.
Касательно темы: просмотр привилегий пользователя MySQL.

Создание баз данных и пользователей — База данных Azure для MySQL

  • 3 минуты на чтение

В этой статье

ОТНОСИТСЯ К: База данных Azure для MySQL — один сервер База данных Azure для MySQL — гибкий сервер

В этой статье описывается, как создавать пользователей в базе данных Azure для сервера MySQL.

Примечание

Связь без смещения

Microsoft поддерживает разнообразную и инклюзивную среду. В этой статье есть упоминания о слове slave . В руководстве по стилю Microsoft для беспристрастного общения это слово признано исключительным. Это слово используется в этой статье для единообразия, потому что в настоящее время оно используется в программном обеспечении. Когда программное обеспечение будет обновлено, чтобы удалить слово, эта статья будет обновлена, чтобы соответствовать.

При первом создании базы данных Azure для MySQL вы указали имя пользователя и пароль для входа в систему администратора сервера. Для получения дополнительной информации вы можете следовать краткому руководству. Вы можете найти имя пользователя для входа в систему администратора сервера на портале Azure.

Администратор сервера получает определенные привилегии для вашего сервера:

SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATE VIEWINE, REPLICATION VIEW CLEWIENT ALTER ROUTINE, CREATE USER, EVENT, TRIGGER

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

Примечание

Привилегия SUPER и роль DBA не поддерживаются. Ознакомьтесь с правами в статье об ограничениях, чтобы понять, что не поддерживается в службе.

Как создать базу данных с пользователем без администратора в базе данных Azure для MySQL

  1. Получите информацию о подключении и имя пользователя admin. Чтобы подключиться к серверу базы данных, вам потребуется полное имя сервера и учетные данные администратора.Вы можете легко найти имя сервера и информацию для входа на странице обзора сервера или на странице Properties на портале Azure.

  2. Используйте учетную запись администратора и пароль для подключения к серверу базы данных. Используйте предпочитаемый вами клиентский инструмент, например MySQL Workbench, mysql.exe, HeidiSQL или другие. Если вы не знаете, как подключиться, узнайте, как использовать MySQL Workbench для подключения и запроса данных для одного сервера или подключения и запроса данных для Flexible Server

    .
  3. Отредактируйте и запустите следующий код SQL.Замените значение заполнителя db_user на ваше предполагаемое новое имя пользователя, а значение заполнителя testdb на свое собственное имя базы данных.

    Этот синтаксис кода sql создает новую базу данных с именем testdb для примера. Затем он создает нового пользователя в службе MySQL и предоставляет ему все привилегии для новой схемы базы данных (testdb. *).

      СОЗДАТЬ БАЗУ ДАННЫХ testdb;
    
    СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'db_user' @ '%' ИДЕНТИФИЦИРОВАННЫЙ 'StrongPassword!';
    
    ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА testdb.* TO 'db_user' @ '%';
    
    ПРИВИЛЕГИИ ПРОМЫВКИ;
      
  4. Проверьте гранты в базе данных.

      USE testdb;
    
    ПОКАЗАТЬ ГРАНТЫ ДЛЯ 'db_user' @ '%';
      
  5. Войдите на сервер, указав указанную базу данных, используя новое имя пользователя и пароль. В этом примере показана командная строка mysql. С помощью этой команды вам будет предложено ввести пароль для имени пользователя. Замените собственное имя сервера, имя базы данных и имя пользователя.

  mysql --host mydemoserver.mysql.database.azure.com --database testdb --user db_user @ mydemoserver -p
  
  mysql --host mydemoserver.mysql.database.azure.com --database testdb --user db_user -p
  

Как создать дополнительных пользователей-администраторов в базе данных Azure для MySQL

  1. Получите информацию о подключении и имя пользователя admin. Чтобы подключиться к серверу базы данных, вам потребуется полное имя сервера и учетные данные администратора. Вы можете легко найти имя сервера и информацию для входа на странице обзора сервера или на странице Properties на портале Azure.

  2. Используйте учетную запись администратора и пароль для подключения к серверу базы данных. Используйте предпочитаемый вами клиентский инструмент, например MySQL Workbench, mysql.exe, HeidiSQL или другие. Если вы не знаете, как подключиться, см. Использование MySQL Workbench для подключения и запроса данных

  3. Отредактируйте и запустите следующий код SQL. Замените свое новое имя пользователя значением заполнителя new_master_user . Этот синтаксис предоставляет перечисленные привилегии для всех схем базы данных (.) к имени пользователя (в данном примере new_master_user).

      СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'new_master_user' @ '%' ИДЕНТИФИЦИРОВАНО 'StrongPassword!';
    
    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION VIEWIN, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *. * TO 'new_master_user' @ '%' С ОПЦИЕЙ GRANT;
    
    ПРИВИЛЕГИИ ПРОМЫВКИ;
      
  4. Подтвердить гранты

      USE sys;
    
    ПОКАЗАТЬ ГРАНТЫ ДЛЯ 'new_master_user' @ '%';
      

Следующие шаги

Откройте брандмауэр для IP-адресов компьютеров новых пользователей, чтобы позволить им подключиться:

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

.

admin — Невозможно создать пользователя в MySQL 5.6

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

Как предоставить все привилегии пользователю root в MySQL 8.0

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

  1. Авторизоваться зарегистрироваться
  2. Текущее сообщество

.

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

Я хочу иметь другого пользователя с такими же разрешениями, что и у главного пользователя для моей службы Amazon Relational Database Service (Amazon RDS) или Amazon Aurora MySQL DB. Как мне продублировать или клонировать главного пользователя?

Разрешение

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

1. Запустите команду SHOW GRANTS , чтобы получить список разрешений, доступных в настоящее время главному пользователю, и скопируйте этот список разрешений для использования позже:

  mysql> ПОКАЗАТЬ ГРАНТЫ для master_username;  

Команда обеспечивает вывод, аналогичный следующему:

  + ----------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------- +
| Гранты для master_user @% |
+ ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----- +
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, ССЫЛКИ, ИНДЕКС, ALTER, ПОКАЗАТЬ БАЗЫ ДАННЫХ, СОЗДАТЬ ВРЕМЕННЫЕ ТАБЛИЦЫ, БЛОКИРОВАТЬ ТАБЛИЦЫ, ВЫПОЛНИТЬ, РЕПЛИКАЦИЮ SLAVE, СОЗДАТЬ ПРОСМОТР ВИДА, СОЗДАТЬ ПРОСМОТР ВИДА ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, LOAD FROM S3, SELECT IN TO S3, INVOKE LAMBDA, INVOKE SAGEMAKER, INVOKE COMPREHEND ON *.* TO 'master_user' @ '%' С ОПЦИЕЙ GRANT |
+ ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----- +  

Примечание: В приведенной выше команде главный пользователь имеет имя пользователя master_user .

2. Создайте нового пользователя, выполнив команду CREATE USER :

  mysql> СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'new_master_user' @ '%' ИДЕНТИФИЦИРОВАНО 'паролем';  

Примечание: Замените new_master_user и password своим именем пользователя и паролем.

3. Предоставьте новому пользователю список разрешений, полученных на шаге 1, выполнив команду GRANT :

  mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SHOW CLAVE VIE, , CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'new_master_user' @ '%' С ОПЦИЕЙ GRANT;  

Новый пользователь теперь имеет те же права, что и главный пользователь.


Эта статья вам помогла?


Вам нужна биллинг или техническая поддержка?

.
Как добавить в таблицу столбец mysql: MYSQL. Добавить столбец(колонку) в таблицу » PacificSky.Ru

Как добавить в таблицу столбец mysql: MYSQL. Добавить столбец(колонку) в таблицу » PacificSky.Ru

Вставка столбцов: ALTER TABLE ADD

Небольшие доработки по сайту иногда требуют вставки новых столбцов в таблицу базы данных MySQL. Речь идет о столбце, который необходимо добавить в какую-либо таблицу базы данных посредством консоли. Давайте рассмотрим несколько примеров добавление столбцов. Для вставки новых столбцов в MySQL есть команда ALTER TABLE ADD, про использование которой я буду говорить далее.
Если у вас был опыт работы с SQL запросами, то наверняка вам не составит большого труда разобраться что тут и к чему.

Синтаксис:


ALTER TABLE table_name ADD field_name parameters;

Описание параметров использованных в запросе:
table_name — название таблицы;
field_name — название столбца;
parametrs — параметры поля;

В параметрах столбца обязательным является указание типа данных.
Попробуем вставить в таблицу t_posts столбец tags текстового типа.


ALTER TABLE t_posts ADD tags TEXT;

Новый столбец tags будет добавлено по умолчанию в конец таблицы. Чтобы столбец оказался в начале таблицы необходимо добавить ещё один ключевой параметр — FIRST.


ALTER TABLE t_posts ADD tags TEXT FIRST;

После выполнения команды в таблицу будет добавлен новый столбец в начало таблицы. Если нужно разместить столбец таблицы не в начале и не в конце, а после определенного столбца, то следует добавить параметр AFTER с указанием столбца после которого будет размещен новый столбец.


ALTER TABLE t_posts ADD tags TEXT AFTER comments;

После выполнение команды в таблицу t_post будет добавлен столбец типа TEXT после столбца description.

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


ALTER TABLE t_post ADD tags TEXT, ADD preview_text TEXT, ADD detail_text TEXT

Команда предполагает добавление столбцов tags, prevew_text, detail_text типа TEXT.

По аналогии с указанием размещения после других столбцов.


ALTER TABLE t_post ADD tags TEXT AFTER comments, ADD preview_text TEXT AFTER views;

Столбец tags будет добавлен после столбца comments, а столбец preview_text будет добавлен после столбца views.

Как добавить новый столбец в таблицу на SQL? | Info-Comp.ru

Продолжаем изучать SQL и сегодня мы поговорим о том, как можно добавить новую колонку в уже существующую таблицу с данными. И как обычно рассмотрим примеры реализации этого в разных СУБД.

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

Заметка! Профессиональный видеокурс по T-SQL для начинающих.

Добавляем колонку в таблицу в PostgreSQL

Сначала начнем разбирать пример на СУБД PostgreSQL. Допустим, у нас есть таблица «users» и в ней уже есть данные:

id Name Fam
1 User1 Fam1
2 User2 Fam2
3 User3 Fam3

Другими словами у нас в таблице имеется:

  • id – это уникальный идентификатор пользователя;
  • Name – это имя пользователя;
  • Fam – это фамилия пользователя.

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

Переходим к добавлению столбца:

   
   ALTER TABLE work.users ADD COLUMN otch VARCHAR (20)


где,

  • ALTER TABLE – инструкция изменения таблицы;
  • users – название нужной таблицы;
  • work – схема, в которой расположена таблица;
  • add column – инструкция добавления столбца;
  • otch – название нашей новой колонки;
  • varchar (20) – тип данных, 20 это максимальное количество символов.

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

   
   UPDATE work.users SET Otch = 'Otch2'
   WHERE name = 'User1'


После этого можете проверить данные, выполнив запрос на выборку с помощью нам уже известного оператора SELECT:

   
   SELECT * FROM work.users
   WHERE name = 'User1'


Вы получите следующий результат:

id Name Fam Otch
1 User1 Fam1 Otch2

Добавляем новую колонку в таблицу в MS SQL Server 2000

Думаю, что с PostgreSQL мы разобрались, а точнее научились добавлять колонки в существующие таблицы.

Теперь попробуем проделать то же самое в MS SQL Server 2000. Все исходные данные допустим, будут такими же.

Здесь запрос практически такой же, но все равно он немного отличается:

   
   ALTER TABLE users ADD otch VARCHAR (20)


Здесь уже название схемы указывать необязательно (по умолчанию таблица будет определена на основе контекста подключения), а также ключевое слово column тоже нет необходимости писать. Давайте также обновим и проверим наши данные:

Обновление

   
   UPDATE users SET Otch = ' Otch2'
   WHERE name = 'User1'


Проверка

   
   SELECT * FROM users
   WHERE name = 'User1'


Вот и все! Надеюсь, Вам помог этот небольшой урок по добавлению колонок в существующие таблицы с использованием языка SQL. Удачи!

Нравится7Не нравится1

ALTER TABLE оператор MySQL — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

В этом учебном пособии вы узнаете, как использовать MySQL оператор ALTER TABLE для добавления столбца, изменения столбца, удаления столбца, переименования столбца или переименования таблицы (с синтаксисом и примерами).

Описание

MySQL оператор ALTER TABLE используется для добавления, изменения или удаления столбцов в таблице. Оператор MySQL ALTER TABLE также используется для переименования таблицы.

Добавить столбец в таблицу

Синтаксис

Синтаксис добавления столбца в таблицу MySQL (с использованием оператора ALTER TABLE):

ALTER TABLE table_name
ADD new_column_name column_definition
[ FIRST | AFTER column_name ];

table_name — имя таблицы для изменения.
new_column_name — имя нового столбца для добавления в таблицу.
column_definition — тип данных и определение столбца (NULL или NOT NULL и т. д.).
FIRST | AFTER column_name — необязательный. Он сообщает MySQL, где в таблице создается столбец. Если этот параметр не указан, то новый столбец будет добавлен в конец таблицы.

Пример

Рассмотрим пример, который показывает, как добавить столбец в таблицу MySQL, используя оператор ALTER TABLE.
Например:

ALTER TABLE contacts ADD last_name varchar(40) NOT NULL AFTER contact_id;

ALTER TABLE contacts

  ADD last_name varchar(40) NOT NULL

    AFTER contact_id;

Этот MySQL пример ALTER TABLE добавит столбец с именем last_name в таблицу contacts. Он будет создан как столбец NOT NULL и появится в таблице после поля contact_id.

Добавить несколько столбцов в таблицу

Синтаксис

Синтаксис добавления нескольких столбцов в таблицу MySQL (с использованием оператора ALTER TABLE):

ALTER TABLE table_name
ADD new_column_name column_definition
[ FIRST | AFTER column_name ],
ADD new_column_name column_definition
[ FIRST | AFTER column_name ],

;

table_name — имя таблицы для изменения.
new_column_name — имя нового столбца для добавления в таблицу.
column_definition — тип данных и определение столбца (NULL или NOT NULL и т. д.).
FIRST | AFTER column_name — необязательный. Он сообщает MySQL, где в таблице создается столбец. Если этот параметр не указан, новый столбец будет добавлен в конец таблицы.

Пример

Рассмотрим пример, который показывает, как добавить несколько столбцов в таблицу MySQL, используя оператор ALTER TABLE.
Например:

ALTER TABLE contacts ADD last_name varchar(40) NOT NULL AFTER contact_id, ADD first_name varchar(35) NULL AFTER last_name;

ALTER TABLE contacts

  ADD last_name varchar(40) NOT NULL

    AFTER contact_id,

  ADD first_name varchar(35) NULL

    AFTER last_name;

Этот пример ALTER TABLE добавит в таблицу contacts два столбца — last_name и first_name.

Поле last_name будет создано как столбец varchar (40) NOT NULL и появится в таблице contacts после столбца contact_id. Столбец first_name будет создан как столбец NULL varchar (35) и появится в таблице после столбца last_name.

Изменить столбец в таблице

Синтаксис

Синтаксис для изменения столбца в таблице MySQL (с использованием оператора ALTER TABLE):

ALTER TABLE table_name
MODIFY column_name column_definition
[ FIRST | AFTER column_name ];

table_name — имя таблицы для изменения.
column_name — имя столбца для изменения в таблице.
column_definition — измененный тип данных и определение столбца (NULL или NOT NULL и т. д.).
FIRST | AFTER column_name — необязательный. Он сообщает MySQL, где в таблице помещается столбец, если вы хотите изменить его позицию.

Пример

Рассмотрим пример, который показывает, как изменить столбец в таблице MySQL с помощью оператора ALTER TABLE.
Например:

ALTER TABLE contacts MODIFY last_name varchar(50) NULL;

ALTER TABLE contacts

  MODIFY last_name varchar(50) NULL;

Этот пример ALTER TABLE изменит столбец с именем last_name как тип данных varchar (50) и установит для столбца значения NULL.

Изменить несколько столбцов в таблице

Синтаксис

Синтаксис для изменения нескольких столбцов в таблице MySQL (с использованием оператора ALTER TABLE):

ALTER TABLE table_name
MODIFY column_name column_definition
[ FIRST | AFTER column_name ],
MODIFY column_name column_definition
[ FIRST | AFTER column_name ],

;

table_name — имя таблицы для изменения.
column_name — имя столбца для изменения в таблице.
column_definition — измененный тип данных и определение столбца (NULL или NOT NULL и т. д.).
FIRST | AFTER column_name — необязательный. Он сообщает MySQL, где в таблице помещается столбец, если вы хотите изменить его позицию.

Пример

Рассмотрим пример, который показывает, как изменить несколько столбцов в таблице MySQL, используя оператор ALTER TABLE.

ALTER TABLE contacts MODIFY last_name varchar(55) NULL AFTER contact_type, MODIFY first_name varchar(30) NOT NULL;

ALTER TABLE contacts

  MODIFY last_name varchar(55) NULL

    AFTER contact_type,

  MODIFY first_name varchar(30) NOT NULL;

Этот пример ALTER TABLE будет изменять в таблице contacts два столбца — last_name и first_name.
Поле last_name будет изменено на столбец NULL varchar (55) и появится в таблице после столбца contact_type. Столбец first_name будет изменен на столбец varchar (30) NOT NULL (и не изменит позицию в определении таблицы contacts, так как не указано FIRST | AFTER).

Удаление столбца из таблицы

Синтаксис

Синтаксис для удаления столбца из таблицы в MySQL (с использованием оператора ALTER TABLE):
Например:

ALTER TABLE table_name
DROP COLUMN column_name;

table_name — имя таблицы для изменения.
column_name — имя столбца для удаления из таблицы.

Пример

Рассмотрим пример, который показывает, как удалить столбец из таблицы в MySQL с помощью оператора ALTER TABLE.
Например:

ALTER TABLE contacts DROP COLUMN contact_type;

ALTER TABLE contacts

  DROP COLUMN contact_type;

Этот пример ALTER TABLE удаляет столбец с именем contact_type из таблицы contacts.

Переименование столбца в таблице

Синтаксис

Синтаксис для переименования столбца в таблице MySQL (с использованием оператора ALTER TABLE):

ALTER TABLE table_name
CHANGE COLUMN old_name new_name
column_definition
[ FIRST | AFTER column_name ];

table_name — имя таблицы для изменения.
old_name — столбец для переименования.
new_name — новое имя столбца.
column_definition — тип данных и определение столбца (NULL или NOT NULL и т. д.). Вы должны указать определение столбца при переименовании столбца, даже если оно не изменится.
FIRST | AFTER column_name — необязательный. Он сообщает MySQL, где в таблице помещается столбец, если вы хотите изменить его позицию.

Пример

Рассмотрим пример, который показывает, как переименовать столбец в таблице MySQL с помощью оператора ALTER TABLE.
Например:

ALTER TABLE contacts CHANGE COLUMN contact_type ctype varchar(20) NOT NULL;

ALTER TABLE contacts

  CHANGE COLUMN contact_type ctype

    varchar(20) NOT NULL;

Этот MySQL пример ALTER TABLE переименует столбец с именем contact_type в ctype. Столбец будет определен как столбец varchar (20) NOT NULL.

Переименовать таблицу

Синтаксис

Синтаксис для переименования таблицы в MySQL:

ALTER TABLE table_name
RENAME TO new_table_name;

table_name — таблица для переименования.
new_table_name — новое имя таблицы для использования.

Пример

Рассмотрим пример, который показывает, как переименовать таблицу в MySQL с помощью оператора ALTER TABLE.
Например:

ALTER TABLE contacts RENAME TO people;

ALTER TABLE contacts

  RENAME TO people;

Этот пример ALTER TABLE переименует таблицу contacts в people.

Узнайте как использовать оператор ALTER TABLE в распространенных БД:

Как добавить столбец в таблицу из другой таблицы в Mysql?

У меня есть две таблицы

  1. table1
  2. Таблица 2

Tabel1 содержит 2 столбца

  1. id
  2. имя

Tabel2 содержит 2 столбца

  1. id
  2. возраст

a хотите добавить столбец возраста из table2 в table1 (где table1.id = table2.id)

тогда таблица 1 должна содержать 3 колонки

  1. id
  2. имя
  3. возраст

7

Mysql запуск сервера: Как запустить сервер mysql? — Хабр Q&A

Mysql запуск сервера: Как запустить сервер mysql? — Хабр Q&A

Как запустить MySQL через командную строку « с толкача»

От автора: девушка, у вас машина не заводится? Может «с толкача» попробуем? Я помогу! Не знаете, как это? «С толкача» заводили только сервер СУБД через cmd? Значит, как запустить MySQL через командную строку вы знаете, а автомобиль – даже не догадываетесь. Мадмуазель, вы «странная» блондинка!.

Странности в описании MySQL

При подготовке каждой статьи мне приходится «основательно» шерстить интернет в поисках справочных материалов по той или иной «сайтостроительной» дисциплине. По большей части «наук» в Сети опубликовано множество подробных руководств и учебников, но только не по MySQL.

Конечно, есть достойные образовательные ресурсы, но в основной части по СУБД приводятся лишь примеры написания команд, и даже без указания синтаксиса. В такой ситуации любому «чайнику» понять, например, как подключиться к MySQL через командную строку, почти нереально.

Чтобы найти ответ новичку, придется перешерстить с десяток тематических форумов, где профессиональные разработчики (корча из себя чуть ли не «академиков») снизойдут до того, чтобы хоть что-то нормально пояснить начинающему.

Стоит понимать, что настоящему админу следует знать все способы запуска и работы с сервером БД. Понятно, что программные оболочки – самый удобный метод, но ведь они не всегда могут оказаться «под рукой». Поэтому знание того, как включить MySQL через командную строку, не раз спасет и данные сайта, и вашу репутацию специалиста (если собираетесь заниматься веб-разработкой профессионально).

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Рассмотрим эту тему более подробно. И не корчите, пожалуйста, мины, если что-то из сказанного в данном материале покажется вам таким же простым, как заводить автомобиль «с толкача» .

Запускаем cmd

Для запуска MySQL из командной строки сначала активируем саму утилиту (cmd), которая входит в стандартный набор Windows. Сделать это можно несколькими способами:

Клавиатурным сочетанием Win+R, а затем в появившемся диалоге «Выполнить» ввести cmd

Через панель «Пуск».

Кроме этого MySQL может поставляться с «родной» оболочкой. Например, если вы устанавливаете сервер БД на локальную машину как самостоятельное «приложение», которое не входит в набор для «джентльменов».

Родная MySQL командная строка запускается также как и обычная cmd. Отличие в работе обеих утилит проявится позже. Об этом мы поговорим в следующем разделе.

Работа с командной строкой

Сначала разберемся со встроенной в операционную систему утилитой. Рассмотрим, как запустить MySQL из командной строки Windows. Для этого нужно:

Путь к папке в файловой системе ПК, куда вы установили сервер БД.

Учетная запись пользователя – логин и пароль.

Если вы работаете с Денвером, то исполняемый файл находится на виртуальном диске, который создается после запуска локального сервера, по этому пути: Z:\usr\local\mysql-5.5\bin

Как я уже сказал, командная строка MySQL в Denwer запускается через cmd OC. То есть, сначала запускаем ее, а затем прописываем путь к исполняемому файлу СУБД. Пароль и логин для доступа можно указывать сначала или потом после активации утилиты MySQL. Как по мне, то удобнее прописывать все сразу: Z:\usr\local\mysql-5.5\bin\mysql.exe -u root

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Мы зашли на сервер СУБД под правами администратора. У меня пароль для root не установлен, поэтому его значение не указано. После того, как мы запустили MySQL из командной строки, внизу появится справочная информация о версии утилиты, сервера и id подключения.

Теперь давайте проверим правильность проведенной процедуры и «силу» своих прав. Например, выведем список всех таблиц, которые сейчас используются на сервере:

MySQL в командной строке Windows выдал нам лишь таблицы, входящие в состав системной базы. Это потому, что все данные, хранящиеся в ней, используются в работе запущенного экземпляра СУБД. Таким образом мы узнали, что сервер работает и что мы зашли на него с правами администратора, как и планировали.

Схема работы с оболочкой, устанавливаемой вместе с системой управления БД, немного отличается. Чтобы «прочувствовать» все это на себе, давайте активируем MySQL через эту командную строку.

После ее запуска появляется окно, в котором нужно сразу вводить пароль. В остальном весь процесс взаимодействия с утилитой одинаков.

Работа с другими приложениями

Состав стандартного набора средств СУБД не ограничивается одним «экзешником» сервера. Их ассортимент можно просмотреть, заглянув в ту же папку, где «стоит» сервер БД. Для примера запустим утилиту dump MySQL через командную строку.

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

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

mysqldump -uroot world>C:\Users\домашний\Desktop\dump\copy.sql

mysqldump -uroot  world>C:\Users\домашний\Desktop\dump\copy.sql

После ввода команды нажмите «Enter». Результатом работы MySQL из командной строки должна стать созданная копия базы, расположенная по указанному пути. Как видим, мы нажали на кнопку и получили ожидаемый результат.

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

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

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

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Хотите изучить MySQL?

Посмотрите курс по базе данных MySQL!

Смотреть

Установка сервера MySQL 5.7.11 на Windows 7: поэтапная инструкция

Вступление

Обращу внимание, в этой статье я ставлю, только MySQL Server (сервер базы данных) без визуальных «плюшек», MySQL Workbench, Connectors и т.д.

Зачем нужна отдельная установка сервера MySQL

Зачем нужна отдельная установка сервера? Например, для обучения работе с базами данных через «черный экран» командной строки. Или чтобы изучить команды SQL языка и «в прямом эфире» увидеть свои ошибки и поупражняться. Или для самостоятельной сборки локального сервера. Не важно, зачем это нужно, важно, что это можно сделать.

Что такое MySQL

Прежде чем заняться установкой сервера MySQL 5.7.11 на Windows 7 вспомним, что такое MySQL, зачем это нужно. Если вы в курсе, смело пропускайте первую, вступительную, часть.

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

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

Одной из частей, локального сервера является СУБД (система управления базами данных). Для разработки и создания сайтов, вполне достаточно установить бесплатную СУБД MySQL компании Aracle. На март 2016 года актуальна версия MySQL 5.7.11.

Установка сервера MySQL 5.7.11 на Windows 7 поэтапная инструкция

1.

Скачать MySQL 5.7.11 для Windows

Идем на официальный сайт продукта (http://www.mysql.com/downloads/) и страницу скачивания бесплатных компонентов (http://dev.mysql.com/downloads/).

 

Идем на вкладку MySQL Community EditionВыбираем downloads community server

При скачивании внимательно выбираем инсталлятор не путая тип системы компьютера bit-32 и bit-64 Windows 7. Хотя 32 битная программа будет работать на 64-битном процессоре.

Для скачивания выбираем MySQL Installer MSI

Для удобства из способов установки MySQL берем не ZIP архив, а MSI Installer. Это автоматический установщик, который через сеть закачает выбранные программные продукты. Недостаток файла – работает только на машинах подключенных к Интернет, компенсируется простотой установки.

Для скачивания MySQL можно нерегистрироваться

Напомню, посмотреть тип системы своей машины можно в меню Пуск→Компьютер→Свойства→Тип системы.

Проверка типа процессора на компьютере2.

Запуск инсталлятора

Скачанный exe файл проверяем на вирусы, своей антивирусной программой. Если файл брали на официальном сайте он гарантированно безопасен.

Запускаем инсталлятор MySQL3.

Побочная установка программных продуктов

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

  • .NET Framework 4
  • Visual Studio C++

По умолчанию Windows 7 уже укомплектован этими программами, правда версии могут быть поменьше.

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

  • Установить .NET Framework 4
  • Установить Visual Studio C++
4.

License Agreement

Продолжаем установку MySQL. Окно License Agreement. Это стандартное подписание лицензии.

установка сервера MySQL 5.7.11 на Windows 7 соглашение с лицензией5.

Choosing a Setap Type

Именно на этом этапе, выбираем тип установки, вернее, устанавливаемый комплект MySQL.

  • Developer Default (MySQL Server, MySQL Workbench, Connectors в комплекте)
  • Server Only – выбираем и ставим его, только сервер.
  • Client Only
  • Full (MySQL Server, MySQL Workbench, Connectors на выбор)
  • Custom

Если вы четко понимаете, что делаете, можно выбрать, Custom и в наборе программных продуктов, выбрать нужную комплектацию.

По умолчанию СУБД будет установлена в папку: C:\Program Files\MySQL\MySQL5.7

Еще раз поясню, почему вам может пригодиться, установка Server Only. Например, вы на своем компьютере не используете Visual Studio или, изучаете язык SQL и хотите изнутри понять, как работать с базами данных из командной строки, а не «играть» в визуальные картинки.

6.

Installation

Installation server mysql 5.7.11

7.

Product Configuration

Устанавливаем конфигурацию MySQL8.

Type and Networking

Type and Networking MySQL 5.7.11

На локальной машине MySQL поддерживает порт TCP/IP- ставим галочку;

Обратите внимание: Если поставить галочку в строке: Open freewall port for network access (открытый порт брандмауэра для доступа к сети), то не нужно будет делать дополнительный разрешительных настроек в брандмауэре Windows 7.

9.

Account and Roles

Задаем пароль MySQL

Здесь нам нужно задать пароль для работы в MySQL. Не будем нарушать традиций и ставим пароль: root. Кстати, без установки пароля на следующую страницу не попасть.

Задаем root пароль MySQL10.

Windows Server

Это окно простых настроек запуска MySQL. Если нужно, чтобы сервер запускался с запуском машины, то выделяете чекбокс, как на фото. Если хотите запускать его по необходимости, чекбокс не выделяете (лучше галочку поставить).

Конфигурация MySQL для Windows server

Здесь тормозим: Смотрим на чекбокс: Show advanced options (показать дополнительные функции).

11.

На следующей странице сервис наполнится конфигурацией, о чем сообщит зелеными галочками.

12.

Установка завершена

Всё! Установка сервера MySQL 5.7.11 на ОС Windows 7, завершена. Можно сделать копию входа в буфер обмена и положить на рабочий стол.

установка сервера MySQL 5.7.11 на Windows 7 завершена

Запуск сервера MySQL

Установка сервера MySQL 5.7.11 на Windows 7 завершена. Проверяем правильность установки и запускаем сервер MySQL.

  • Идем в меню Пуск;

  • Жмем на иконку запуска сервера: MySQL Command Line Client – Unicode. Он  там появится, если вы поставили галочку в пункте (10 Windows Server), в чекбоксе: Start the MySQL Server at System Startup.
  • Откроется «черное окно» приложения: MySQL5.7 Command Line Client.
  • Вводим пароль: root и работаем с СУБД из окон MySQL5.7 Command Line Client.

Пробуем первую команду: знак вопроса [?] или [help]. Сервер покажет элементарные служебные команды.

На самом деле, экран будет «черный».

©www.wordpress-abc.ru

Другие статьи раздела: Локальный сервер 

Похожие посты:

Похожее

Установка MySQL 5.6.23 на Windows 7 — пошаговая инструкция | Info-Comp.ru

Сегодня мы подробно рассмотрим процесс установки СУБД MySQL версии 5.6.23 на операционную систему Windows 7, помимо этого мы также установим средство разработки и администрирования MySQL Workbench 6.2.4.

Несколько лет назад мы с Вами уже рассматривали установку MySQL на примере версии 5.5, но время идет, технологии развиваются, выходят новые версии, поэтому сейчас пришло время обновить свои знания в области MySQL, а конкретно в установке данной СУБД. И так как этот сайт для начинающих, мы будем рассматривать установку на операционную систему Windows 7 с пошаговым описанием всего процесса. Также данный материал будет полезен начинающим программистам баз данных, которые хотят потренироваться писать запросы на SQL или просто поближе познакомиться с сервером баз данных MySQL. Тем более что описанный ниже процесс установки будет включать не только установку самого сервера, но и средство разработчика MySQL Workbench, плагин для Excel «MySQL for Excel», MySQL Connectors, а также примеры и документацию.

Так как в прошлой статье мы с Вами уже затрагивали вопрос о том, что вообще такое MySQL, поэтому сегодня заострять внимания на этом не будем, а сразу перейдем к теме материала, т.е. процессу установки и начнем мы, конечно же, с того, где же взять нам дистрибутив MySQL для Windows.

Заметка! Что такое СУБД.

Где скачать последнюю версию MySQL для Windows?

И так как устанавливать мы будем на ОС Windows 7 то лучше всего скачивать MySQL Installer (установщик, дистрибутив) который как мы уже отметили выше будет включать не только сервер MySQL но и многое другое. Для того чтобы скачать, установщик необходимо перейти на официальную страницу загрузки, вот она, так как рекомендуется загружать только с официальных источников, это, кстати, относится не только к MySQL но и ко всему программному обеспечению.

После того как Вы перешли на страницу в нижней части находите блок «MySQL Installer 5.6.23» и нажимаете «Download»

Затем Вам предложат авторизоваться, если, например, у Вас есть Account от Oracle или если нет, то создать его, но если Вы не хотите регистрироваться, то просто нажимаете ссылку «No thanks, just start my download»

В итоге загрузится пакет установщика Windows файл mysql-installer-community-5.6.23.0.msi размером 282.4 мегабайт.

Установка MySQL 5.6.23 на Windows 7

Теперь переходим к установке, для этого запускаем скаченный файл (установщик). Но если вдруг при запуске у Вас появилась ошибка, т.е. окно со следующим содержимом

то это означает, что у Вас не установлен Microsoft .NET Framework нужной версии, так как для работы всех компонентов входящих в состав данного установщика необходим минимум клиентский профиль Microsoft .NET Framework 4, о том, что это такое и как его установить мы подробно разговаривали в материале про установку Microsoft .NET Framework 4.0. Также для работы программы MySQL Workbench обязательно требуется Microsoft Visual C++ Redistributable for Visual Studio 2013, поэтому его тоже нужно установить. Кстати, если Вы не знаете что установлено у Вас в системе, а что нет, не переживайте, в процессе установки установщик будет проверять Вашу систему на наличие необходимых внешних компонентов, которые нужны для работы каждого из выбранных продуктов MySQL, и выдаст их список, и в случае необходимости вы можете их быстро установить (чуть ниже мы это еще затронем).

Примечание! Язык программы установки английский также как и интерфейс программы MySQL Workbench.

Шаг 1

Соглашаемся с условиями лицензионного соглашения, для этого ставим соответствующую галочку и жмем «Next»

Шаг 2

Затем отмечаем то, что мы хотим установить, а так как мы решили установить все то, что нужно начинающему разработчику то выбираем тип установки по умолчанию, т.е. «Developer Default» и жмем «Next»

Шаг 3

Далее программа установки будет проверять Вашу систему на наличие необходимых компонентов, Вам в свою очередь необходимо установить эти компоненты (т.е. выделить их и нажать «Execute») или нажать «Next» но в этом случае соответствующие компоненты не будут работать. Но, например если Вам эти компоненты и не нужны, допустим, Вы не используете Visual Studio, поэтому и устанавливать компонент не нужно. У меня, например, на этом тестовом компьютере не установлен Microsoft Office и Visual Studio, поэтому в данном случае перечисленные компоненты я устанавливать не буду, жму «Next».

Небольшое предупреждение, связанное с отсутствием некоторых компонентов, жмем «Yes»

Шаг 4

Затем установщик скажет нам, что конкретно он будет устанавливать, мы жмем «Execute»

И вот началась установка

После установки всех компонентов появится кнопка «Next» мы ее и нажимаем

Шаг 5

Далее необходимо настроить пару компонентов, жмем «Next»

Шаг 6

И так как мы только начинающие на первом окне предлагаю оставить все по умолчанию, т.е. ничего не менять, а сразу нажать «Next»

Шаг 7

На следующем окне нужно придумать пароль для root пользователя, т.е. для главного администратора, также, если хотите здесь можно сразу добавить и других пользователей, т.е. создать их через кнопку «Add User», жмем «Next»

Шаг 8

Затем оставляем все по умолчанию и жмем «Next»

Шаг 9

Далее необходимо применить все настройки, для этого жмем «Execute»

Все, сервер MySQL сконфигурирован, жмем «Finish»

Шаг 10

Теперь необходимо настроить тестовые данные для MySQL сервера, жмем «Next»

Подключаемся к серверу, жмем сначала «Check» затем «Next»

Далее жмем «Execute», а потом «Finish»

Шаг 11

Все, установка практически завершена, жмем «Next»

А затем «Finish», кстати, если поставить галку «Start MySQL Workbench after Setup» то сразу запустится программа MySQL Workbench

Запуск MySQL Workbench и подключение к серверу MySQL

Запустить MySQL Workbench можно из меню Пуск->MySQL->MySQL Workbench 6.2 CE

После запуска необходимо выбрать экземпляр сервера MySQL для того чтобы к нему подключится, в нашем случае он всего один (локальный), мы просто по нему щелкаем

Вводим пароль root пользователя (который мы придумали, когда настраивали сервер)

И вот мы подключились к серверу MySQL с помощью MySQL Workbench, мы видим тестовые базы и можем сразу писать какие-нибудь SQL запросы

На этом предлагаю заканчивать, надеюсь, все было понятно. Удачи!

Нравится12Не нравится

Ручная установка MySQL на Windows

Когда автоматическая установка дает сбой, на помощь приходит ручной режим.

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

1. Качаем zip-архив MySQL со страницы загрузки: http://www.mysql.com/downloads/mysql/.

Для Win 32 выбираем дистрибутив: Windows (x86, 32-bit),  Zip-Archive.

Для Win 64: Windows (x86, 64-bit),  Zip-Archive.

После нажатия на кнопку Download вы увидите форму для регистрации, ее можно пропустить, нажав на ссылку внизу – No thanks, just take me to the downloads.

2. Создаем папку установки. Например C:\Program Files\MySQL\MySQL Server 5.5. И распаковываем в нее содержание архива таким образом, чтобы папки bin, data, docs и прочие были в корне папки установки.

3. Переходим к созданию конфигурационного файла (my.ini). За основу берем один из типовых файлов:

  • my-small.ini – подойдет тем, кто использует MySQL время от времени и не хочет, чтобы сервер занимал много ресурсов.
  • my-medium.ini – тоже не требовательная к ресурсам конфигурация, но подойдет тем, кто использует MySQL на постоянной основе (хороший выбор для для домашнего веб-сервера).
  • my-large.ini и my-huge.ini – для систем, использующихся как выделенный MySQL сервер. Впрочем, my-large.ini можно использовать для домашнего сервера, если нужна дополнительная производительность MySQL (512 Мб оперативной памяти не так уж и много по нынешним временам).
  • my-innodb-heavy-4G – для выделенных серверов, имеющих от 4 Гб оперативной памяти и использующих только таблицы типа InnoDB.

В этом примере за основу я выбрал my-medium.ini. Переименовываем его в my.ini и размещаем в корне папки установки (C:\Program Files\MySQL\MySQL Server 5.5).

Открываем для редактирования (в обычном Блокноте) и сразу после строчки [mysqld] дописываем два параметра:

basedir=C:/Program Files/MySQL/MySQL Server 5.5
datadir=C:/Program Files/MySQL/MySQL Server 5.5/data

Обратите внимание, что в путях используется прямой слэш (/), а не обратный (\).

basedir – это путь к папке установки.

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

На всякий случай привожу фрагмент конфигурационного файла, после внесения изменений:

# The MySQL server
[mysqld]
basedir=C:/Program Files/MySQL/MySQL Server 5.5
datadir=C:/Program Files/MySQL/MySQL Server 5.5/data
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
InnoDB_sort_buffer_size = 8M

4. Следующий этап – добавить путь C:\Program Files\MySQL\MySQL Server 5.5\bin в переменную среды PATH, чтобы упростить запуск MySQL из командной строки. Для этого открываем Свойства системы -> Дополнительные параметры системы -> на закладке Дополнительно в самом низу кнопка “Переменные среды…”. В открывшемся окне пролистываем системные переменные пока не найдем Path. Выделяем эту строку и нажимаем “Изменить…”. В конце строки дописываем свой путь, сохраняя существующие параметры:

Меняем PATH

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

5. Перед тем как осуществить пробный пуск, открываем входящий порт TCP 3306 в брандмауэре Windows:

Открываем порт TCP 3306

Если в системе установлен дополнительный брандмауэр, то в нем также необходимо открыть порт TCP 3306 для входящих подключений.

6. Теперь осуществляем тестовый запуск. В командной строке, запущенной от имени администратора (это обязательно, если на Семерке или Висте включен UAC), выполняем:

mysqld --console

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

Version: '5.5.9-log'  socket: ''  port: 3306  MySQL Community Server (GPL)

Оставляем это окно открытым, и открываем еще одно окно командной строки, в котором вводим:

mysql -u root

Если подключение прошло без ошибок, вы увидите приглашение командной строки: mysql>

Посмотрим какие базы у нас есть:

show databases;

Точка с запятой в конце SQL-запроса ОБЯЗАТЕЛЬНА!

Ответ команды:

Командная строка MySQL

Теперь мы окончательно убеждены, что сервер работает.

7. Переходим к следующему этапу – необходимо установить пароль администратора MySQL (пользователь root). По умолчанию пароль не установлен, и это надо исправить. В том же окне MySQL вводим следующие команды:

use mysql

UPDATE user SET password = PASSWORD('ваш_пароль') WHERE user = 'root';

Проверяем результат:

SELECT user, host, password FROM user;

Ответ:

Таблица users

Как видно на скриншоте колонка password заполнена, значит пароль установлен.

Перед выходом выполняем команду:

FLUSH PRIVILEGES;

и затем:

exit

Теперь при подключении необходимо вводить пароль. Для этого используем ключ -p:

mysql -u root -p

Для завершения работы MySQL выполняем:

mysqladmin -u root -p shutdown

8. Последний этап – запуск MySQL в качестве системной службы Windows.

Убедитесь, что в системе нет активных процессов MySQL.

В командной строке, запущенной от имени администратора, выполняем:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --install

Путь к mysqld необходимо указывать полностью (даже если он прописан в PATH)!

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

Запуск службы MySQL

Или проще через командную строку:

net start mysql

Для удаления службы, предварительно ее останавливаем:

net stop mysql

и выполняем:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --remove

Статьи по теме:

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

От автора: один мой товарищ за день умудрился сначала сорвать спину, когда ставил дома новый шкаф. А затем на работе «надорвал» себе мозги, когда пытался разобраться, как установить MySQL на Windows. В общем, спину я не смог вылечить, но вот ум его от «закипания» спас. Может, и кого-то из вас избавлю от головной боли, рассказав об установке СУБД.

Альтернатива Денверу?

И сразу может родиться встречный вопрос: зачем искать себе на «котелок» головную боль, если есть уже собранный и простой в установке набор, в состав которого входит «любимая» СУБД? Правильно! Не нужно искать головную боль там, где ее нет. Это сейчас у вас нет проблемы, связанной с установкой MySQL на Windows. Но может возникнуть, если:

Нужна только СУБД, а не весь набор целиком – возможно, вы надумаете еще сильнее углубиться в изучение MySQL. Ну, а PHP и веб-сервер пока не будут востребованы. При запуске Денвера получится, что эти составляющие набора буду крутиться сами по себе, постоянно «кушая» мощности аппаратной части компьютера. Особенно эта проблема остра для устаревших моделей портативных ПК. Я зная о чем говорю, поскольку долгое время использовал такой. Мой старый ноут «грузили» по полной пару открытых вкладок в браузере. В общем, каждый процент производительности был на счету.

Установка более новой версии – в состав Денвера входит актуальная версия MySQL, но иногда требуется самая новая версия. Например, для разработки БД под конкретное «издание» СУБД.

Модернизация системы управления учетными записями в phpMyAdmin – через данную программную оболочку, входящую в состав набора для джентльменов, можно работать только под одной учетной записью, которая установлена по умолчанию. То есть через root с пустым паролем. Но иногда нужно входить на сервер MySQL под другим пользователем, чтобы протестировать какой-нибудь запрос, триггер или хранимую процедуру. Конечно, можно через командную строку, но хочется работать «с комфортом» .

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Создание ADO приложений с использованием другого серверного языка – никто не спорит с тем, что «PHP и MySQL – forever». Но существуют и другие серверные языки программирования, для разработки приложений на которых может потребоваться установка MySQL на Windows 10 или другую версию ОС.

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

Скачиваем свой экземпляр

Дистрибутив СУБД на официальном ресурсе разработчиков доступен для скачивания в двух вариантах:

В виде автоматического пакета установки с расширением .msi – его мы рассматривали в одном из наших предыдущих материалов, поэтому пропустим его.

В форме бинарного кода, запакованного в ZIP – данный вариант мы и применим сегодня.

Также стоит отметить, что я буду производить установку MySQL на Windows 7, но для всех остальных (более «свежих») версий ОС эта инструкция также актуальна. Винда – она и в Африке винда . Стартуем! Переходим сюда и скачиваем нужный вариант архива. У меня 32-разрядная архитектура компьютера, поэтому скачиваю архив под эту версию операционки.

На следующем шаге будет предлагаться пройти регистрацию, но можно обойтись и без нее. Для этого жмите на ссылку ниже (отмечена на скриншоте). После чего начнется скачивание архива. Обратите внимание, что его размер больше 300 «метров». А такой объем для лимитного «3Г» интернета может оказаться неподъемным. Да и по скорости тоже – на это уйдет минут 40 точно.

После этого создаем директорию для установки и извлекаем в нее скачанный архив. Чтобы избежать путаницы в будущем, лучше осуществлять установку MySQL 5 6 в Windows сразу на диск C.

Редактируем файл конфигурации

Теперь находим в папке файл my-default.ini, и открываем его с помощью Блокнота. Сейчас займемся редактированием параметров нашего будущего сервера СУБД. Сначала прописываем пути к основной директории и папке, где будут храниться данные. А также указываем порт и кодировку:

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

basedir = «C:/Users/домашний/Documents/MySQL 5.6″ datadir = «C:/Users/домашний/Documents/MySQL 5.6/data» port = 3306 character-set-server=utf8

basedir = «C:/Users/домашний/Documents/MySQL 5.6»

datadir = «C:/Users/домашний/Documents/MySQL 5.6/data»

port = 3306

character-set-server=utf8

Затем прописываем значение нескольких основных переменных. Их подробное описание можете посмотреть в документации к СУБД.

default-storage-engine=INNODB explicit_defaults_for_timestamp = TRUE skip-external-locking

default-storage-engine=INNODB

explicit_defaults_for_timestamp = TRUE

skip-external-locking

Установку MySQL 5 6 в Windows 7 продолжим указанием объемов для всех буферов и очисткой от заданного значения параметр sql_mode:

Затем переименуйте файл в my.ini и сохраните его. После этого переходим в папку bin и запускаем командную строку от имени администратора. Вводим в нее следующую команду:

Жмем «Enter» и на экране должны отобразиться данные и параметры подключения. Не закрывая этого окна, запускаем еще одно (в CMD). Затем входим на сервер под root с пустым паролем, который установлен по умолчанию:

Проверяем правильность подключения и инсталляции сервера БД. Для этого выводим список всех баз, имеющихся на нем.

Мы закончили. Стоит отметить, что установка MySQL 5 5 на Windows 7 проходит примерно также, поэтому данная инструкция применима и для этой версии СУБД. Надеюсь, я смог хоть немного понизить градус кипения вашего «котелка». Ну, а если сорвали спину, перетаскивая шкаф, то загляните в него. Может там кто-то прячется .

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

Хотите изучить MySQL?

Посмотрите курс по базе данных MySQL!

Смотреть

включение сервера и доступ к его администрированию – QNAP Россия и СНГ

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

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

Множество приложений, такие как MediaWiki, Joomla, WordPress, Asterisk поддерживают таблицы MySQL и нуждаются в них для полноценной работы.

 

Чтобы включить сервер откройте веб-интерфейс QNAP Turbo NAS и зайдите в меню Панель Управления > Серверы приложений > Сервер MySQL. Установите галочки Включить сервер MySQL и установите галочку Включить сеть TCP/IP, если сервер будут использовать приложения в локальной сети или Интернете.

Нажмите Применить.

 

Теперь сервер MySQL включен и работает. Этого достаточно для работы некоторых приложений.

 

Для управления сервером понадобится установить phpMyAdmin.

PHPMyAdmin — веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. PHPMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд, предоставляя дружественный интерфейс.

На сегодняшний день PHPMyAdmin широко применяется на практике. Последнее связано с тем, что разработчики интенсивно развивают свой продукт, учитывая все нововведения СУБД MySQL.

Приложение распространяется под лицензией GNU General Public License и поэтому многие другие разработчики интегрируют его в свои разработки, например XAMPP, Denwer, AppServ, Open Server.

 

Установить phpMyAdmin можно через App Center. Откройте App Сenter через главное меню, или запустив ярлык на рабочем столе веб-конфигуратора.

 

Введите часть названия phpMyAdmin в строку поиска. Нажмите Добавить на карточке приложения.

 

Дождитесь, пока приложение пройдет все стадии установки.

 

Проверьте включен ли у вас веб-сервер. Если нет, то включите. Зайдите в меню Панель управления > Серверы приложений > Веб-сервер. Установите галочку Включить, нажмите Применить.

 

 

Запустите приложение phpMyAdmin через главное меню, или кликнув на ярлык на рабочем столе веб-конфигуратора.

 

Приложение откроется в новой вкладке браузера. Приложение использует тот порт, который назначен на вашем QNAP Turbo NAS для веб-сервера (по умолчанию 80). Это следует учитывать, если вы хотите предоставить удаленный доступ из Интернета к этому приложению.

Логин по умолчанию root, пароль по умолчанию admin.

 

Можно приступать к редактированию базы.

 

В нашей базе знаний есть статьи по схожим темам:


Полезные дополнительные ссылки:

Как установить MySQL на сервер с Ubuntu 18.04 – База знаний Timeweb Community

MySQL — СУБД с открытым исходным кодом, которая часто устанавливается в качестве части сборки LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Она использует реляционную базу данных и SQL для работы с данными.

Короткая установка простая — просто обновите индекс пакетов, установите пакет mysql-server и запустите скрипт безопасности:


$ sudo apt update

$ sudo apt install mysql-server

$ sudo mysql_secure_installation

Более развернутую инструкцию с нюансами, касающимися версий MySQL, читайте ниже.

Требования

На сервере должна быть установлена ОС Ubuntu 18.04, должен быть создан пользователь с sudo привилегиями и настроен фаервол.

 

 

Шаг 1: установка MySQL

Репозиторий Ubuntu 18.04 по умолчанию содержит только последнюю версию MySQL. На момент написания статьи это 5.7.

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

А затем выполните установку:


$ sudo apt install mysql-server

Выполнив эту команду, вы установите MySQL, однако запросов на установку пароля или других настроек не будет. Поэтому следующий шаг после установки — это настройка MySQL.

Шаг 2: настройка MySQL

Если вы установили одну из свежих версий MySQL, то вы можете просто запустить включенный в нее скрипт безопасности. Он позволит изменить некоторые базовые настройки (например, настройки для удаленного доступа). В более старых версиях вносить эти изменения приходилось вручную (в то время как сейчас они будут выполнены автоматически).

Запустите скрипт безопасности:


$ sudo mysql_secure_installation

После этого вы сможете внести некоторые изменения в настройки безопасности MySQL.

Первый запрос — хотите ли вы использовать Validate Password Plugin, который используется для тестирования вашего пароля (плагин проверяет надежность пароля с точки зрения взлома).

Следующий запрос — установка пароля для суперпользователя. Введите и подтвердите выбор пароля.

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

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

  • mysql_install_db  — для версий до 5.7.6;
  • mysqld —initialize — для версий 5.7.6 и более поздних.

Если вы следовали этой инструкции, то каталог данных был создан автоматически, и вам ничего делать не надо. И если вы введете команду, то увидите следующую ошибку:


mysqld: Can't create directory '/var/lib/mysql/' (Errcode: 17 - File exists)

. . .

2018-06-20T13:48:00.572066Z 0 [ERROR] Aborting

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

Шаг 3: настройка аутентификации и привилегий

В ОС Ubuntu c MySQL 5.7 (и более поздними версиями) аутентификация суперпользователя MySQL по умолчанию настроена на использование плагина auth_socket, а не пароля. С точки зрения безопасности это хороший вариант, однако могут быть некоторые проблемы, особенно в тех случаях, когда вам нужно дать другой программе (например, phpMyAdmin) доступ к пользователю.

Если вы хотите использовать пароль для подключения к MySQL в качестве суперпользователя, вам нужно изменить метод аутентификации с auth_socket на mysql_native_password. Для этого откройте консоль MySQL:

Далее проверьте, какой метод аутентификации используется для каждого из ваших пользовательских аккаунтов MySQL:


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

Например, вывод может быть вот таким:

+------------------+-------------------------------------------+-----------------------+-----------+

| user          | authentication_string                  | plugin             | host   |

+------------------+-------------------------------------------+-----------------------+-----------+

| root          |                                        | auth_socket        | localhost |

| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |

| mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |

| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |

+------------------+-------------------------------------------+-----------------------+-----------+

4 rows in set (0.00 sec)

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


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

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

Еще раз запросите, какие аутентификационные методы используются:


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

Вывод должен выглядеть теперь вот так:


+------------------+-------------------------------------------+-----------------------+-----------+

| user          | authentication_string                  | plugin             | host   |

+------------------+-------------------------------------------+-----------------------+-----------+

| root          | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |

| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |

| mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |

| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |

+------------------+-------------------------------------------+-----------------------+-----------+

4 rows in set (0.00 sec)

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

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

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

Теперь создайте нового пользователя и задайте надежный пароль:


mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

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


mysql> GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

В данном случае использовать команду FLUSH PRIVILEGES не нужно — она используется только в тех случаях, когда вы изменяете таблицы представлений с использованием INSERT, UPDATE или DELETE.

Поэтому просто выйдите из консоли MySQL:

Теперь перейдем к тестированию MySQL.

Шаг 4: тестирование MySQL

Вне зависимости от того, как вы установили MySQL, СУБД должна запуститься автоматически.

Проверить статус можно следующей командой:


$ systemctl status mysql.service

Вывод должен быть примерно вот таким:


mysql.service - MySQL Community Server

   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: en

   Active: active (running) since Wed 2018-06-20 21:21:25 UTC; 30min ago

Main PID: 3754 (mysqld)

Tasks: 28

   Memory: 142.3M

   CPU: 1.994s

   CGroup: /system.slice/mysql.service

           └─3754 /usr/sbin/mysqld

Если же MySQL по какой-то причине не работает, ее можно запустить командой:


$ sudo systemctl start mysql

Дополнительно можно выполнить проверку, используя mysqladmin, который позволяет использовать административные команды. Например, при помощи команды ниже можно подключиться к MySQL в качестве суперпользователя (-u root), запросить пароль (-p) и показать версию:


$ sudo mysqladmin -p -u root version

Вывод будет примерно вот таким:


mysqladmin  Ver 8.42 Distrib 5.7.21, for Linux on x86_64

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

Server version   5.7.21-1ubuntu1

Protocol version 10

Connection   Localhost via UNIX socket

UNIX socket  /var/run/mysqld/mysqld.sock

Uptime:      30 min 54 sec

Threads: 1  Questions: 12  Slow queries: 0  Opens: 115 Flush tables: 1  Open tables: 34 Queries per second avg: 0.006

Значит, MySQL запущена и работает.

2 Первый запуск сервера в Windows

В этом разделе дается общий обзор запуска MySQL. сервер. В следующих разделах представлена ​​более конкретная информация. для запуска сервера MySQL из командной строки или как Сервис Windows.

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

Примеры в этих разделах предполагают, что MySQL установлен. в папке по умолчанию C: \ Program Файлы \ MySQL \ MySQL Server 8.0 . Настроить имена путей, показанные в примерах, если у вас установлен MySQL в другое место.

У клиентов есть два варианта. Они могут использовать TCP / IP, или они могут использовать именованный канал, если сервер поддерживает подключения по именованному каналу.

MySQL для Windows также поддерживает соединения с общей памятью, если сервер запущен с shared_memory системная переменная включен.Клиенты могут подключаться через общую память, используя --protocol = ПАМЯТЬ опция.

Для получения информации о том, какой двоичный файл сервера запускать, см. Выбор типа сервера MySQL.

Тестирование лучше всего проводить из командной строки в окне консоли. (или «окно DOS»). Таким образом вы можете получить сервер отображает статусные сообщения в окне, где их легко чтобы увидеть. Если что-то не так с вашей конфигурацией, эти сообщения помогут вам определить и исправить любые проблемы.

Запись

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

Чтобы запустить сервер, введите эту команду:

  C: \> "C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin \ mysqld" --console  

Для сервера, который включает поддержку InnoDB , вы должны увидеть сообщения, похожие на следующие, так как это начинается (имена путей и размеры могут отличаться):

  InnoDB: первый указанный файл данных c: \ ibdata \ ibdata1 не существует:
InnoDB: будет создана новая база данных!
InnoDB: установка размера файла c: \ ibdata \ ibdata1 на 209715200
InnoDB: база данных физически записывает полный файл: подождите...
InnoDB: файл журнала c: \ iblogs \ ib_logfile0 не существует: будет создан новый
InnoDB: установка размера файла журнала c: \ iblogs \ ib_logfile0 на 31457280
InnoDB: файл журнала c: \ iblogs \ ib_logfile1 не существует: новый будет создан
InnoDB: установка размера файла журнала c: \ iblogs \ ib_logfile1 на 31457280
InnoDB: файл журнала c: \ iblogs \ ib_logfile2 не существует: необходимо создать новый
InnoDB: установка размера файла журнала c: \ iblogs \ ib_logfile2 на 31457280
InnoDB: буфер двойной записи не найден: создание нового
InnoDB: создан буфер двойной записи
InnoDB: создание системных таблиц ограничений внешнего ключа
InnoDB: созданы системные таблицы ограничений внешнего ключа
011024 10:58:25 InnoDB: запущено  

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

  mysqld: готов к подключению
Версия: '8.0,23 'разъем:' порт: 3306  

Сервер продолжает писать в консоль и дальше диагностический вывод, который он производит. Вы можете открыть новое окно консоли в котором к

.

Как запустить, остановить и перезапустить сервер базы данных MySQL?

В этом посте мы увидим, как запускать, останавливать и перезапускать MySQL Server в macOS, Linux и Windows.

1. На Mac

Вы можете запускать / останавливать / перезапускать сервер MySQL через командную строку.

  • Для версии MySQL старше 5.7:
  sudo /usr/local/mysql/support-files/mysql.server start
sudo /usr/local/mysql/support-files/mysql.server stop
sudo / usr / local / mysql / файлы поддержки / mysql.перезапуск сервера
  
  • Для MySQL версии 5.7 и новее:
  sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
  
  • Или вы можете включить / выключить его через панель настроек macOS


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

  • Чтобы включить / выключить, достаточно одного щелчка мышки на панели управления сервером:


2. В Linux

  • В Linux запуск / остановка из командной строки:
  /etc/init.d/mysqld start
/etc/init.d/mysqld stop
/etc/init.d/mysqld перезапуск
  
  • Некоторые разновидности Linux также предлагают служебную команду
  запуск службы mysqld
остановка службы mysqld
перезапуск службы mysqld
  
  запуск службы mysql
служба mysql stop
перезапуск службы mysql
  

3.В Windows

  • Открыть окно запуска с помощью Winkey + R
  • Тип services.msc
  • Служба поиска MySQL в зависимости от установленной версии.
  • Нажмите «Остановить», «запустить» или перезапустить опцию обслуживания.

Или вы можете запустить / остановить MySQL из командной строки:

  C: \> "C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin \ mysqld"
C: \> "C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin \ mysqladmin" -u root shutdown
  

Нужен хороший инструмент с графическим интерфейсом для MySQL в MacOS и Windows? TablePlus — это современный собственный инструмент с элегантным графическим интерфейсом, который позволяет одновременно управлять несколькими базами данных, такими как MySQL, PostgreSQL, SQLite, Microsoft SQL Server и другими.

Загрузить TablePlus для Mac . В любом случае это бесплатно!

Не на Mac? Загрузите TablePlus для Windows .

.

4.3 mysql.server — сценарий запуска сервера MySQL

4.3 mysql.server — сценарий запуска сервера MySQL

Дистрибутивы MySQL для Unix и Unix-подобных систем включают скрипт с именем mysql.server , запускающий Сервер MySQL с использованием mysqld_safe . Может быть используется в таких системах, как Linux и Solaris, которые используют System Каталоги запуска в стиле V для запуска и остановки системных служб. это также используется элементом запуска macOS для MySQL.

mysql.server — используемое имя скрипта в дереве исходного кода MySQL. Установленное имя может быть разные (например, mysqld или MySQL ). В следующем обсуждении настройте имя mysql.server в соответствии с вашим система.

Запись

Для некоторых платформ Linux установка MySQL из RPM или Пакеты Debian включают поддержку systemd для управления MySQL запуск и завершение работы сервера.На этих платформах mysql.server и mysqld_safe не установлены, потому что они не нужны. Для получения дополнительной информации см. Управление сервером MySQL с помощью systemd.

Чтобы запустить или остановить сервер вручную с помощью mysql.server , вызовите его из командная строка с начала или остановить аргументы:

  оболочка> запуск mysql.server
оболочка> mysql.остановка сервера  

mysql.server изменяет местоположение на MySQL каталог установки, затем вызывает mysqld_safe . Чтобы запустить сервер как некоторые конкретного пользователя, добавьте соответствующий параметр пользователя в группу [mysqld] глобального /etc/my.cnf файл параметров, как показано ниже в эта секция. (Возможно, вам придется отредактировать mysql.server , если вы установили двоичный файл распространение MySQL в нестандартном месте.Измените его на измените местоположение в соответствующий каталог перед его запуском mysqld_safe . Если вы это сделаете, ваш измененный версия

.

2 Первый запуск сервера в Windows

В этом разделе дается общий обзор запуска MySQL. сервер. В следующих разделах представлена ​​более конкретная информация. для запуска сервера MySQL из командной строки или как Сервис Windows.

Информация здесь применима в первую очередь, если вы установили MySQL. используя версию noinstall , или, если хотите для настройки и тестирования MySQL вручную, а не с графическим интерфейсом инструменты.

Запись

Сервер MySQL автоматически запустится после использования установщика MySQL, и MySQL Notifier можно использовать для запуска / остановки / перезапуска в любое время.

Примеры в этих разделах предполагают, что MySQL установлен. в папке по умолчанию C: \ Program Файлы \ MySQL \ MySQL Server 5.7 . Настроить имена путей, показанные в примерах, если у вас установлен MySQL в другое место.

У клиентов есть два варианта. Они могут использовать TCP / IP, или они могут использовать именованный канал, если сервер поддерживает подключения по именованному каналу.

MySQL для Windows также поддерживает соединения с общей памятью, если сервер запущен с shared_memory системная переменная включен. Клиенты могут подключаться через общую память, используя --protocol = ПАМЯТЬ опция.

Для получения информации о том, какой двоичный файл сервера запускать, см. Выбор типа сервера MySQL.

Тестирование лучше всего проводить из командной строки в окне консоли. (или «окно DOS»). Таким образом вы можете получить сервер отображает статусные сообщения в окне, где их легко чтобы увидеть. Если что-то не так с вашей конфигурацией, эти сообщения помогут вам определить и исправить любые проблемы.

Запись

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

Чтобы запустить сервер, введите эту команду:

  C: \> "C: \ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqld" --console  

Для сервера, который включает поддержку InnoDB , вы должны увидеть сообщения, похожие на следующие, так как это начинается (имена путей и размеры могут отличаться):

  InnoDB: первый указанный файл данных c: \ ibdata \ ibdata1 не существует:
InnoDB: будет создана новая база данных!
InnoDB: установка размера файла c: \ ibdata \ ibdata1 на 209715200
InnoDB: база данных физически записывает полный файл: подождите...
InnoDB: файл журнала c: \ iblogs \ ib_logfile0 не существует: будет создан новый
InnoDB: установка размера файла журнала c: \ iblogs \ ib_logfile0 на 31457280
InnoDB: файл журнала c: \ iblogs \ ib_logfile1 не существует: новый будет создан
InnoDB: установка размера файла журнала c: \ iblogs \ ib_logfile1 на 31457280
InnoDB: файл журнала c: \ iblogs \ ib_logfile2 не существует: необходимо создать новый
InnoDB: установка размера файла журнала c: \ iblogs \ ib_logfile2 на 31457280
InnoDB: буфер двойной записи не найден: создание нового
InnoDB: создан буфер двойной записи
InnoDB: создание системных таблиц ограничений внешнего ключа
InnoDB: созданы системные таблицы ограничений внешнего ключа
011024 10:58:25 InnoDB: запущено  

Когда сервер завершит свою последовательность запуска, вы должны увидеть

.
Apache и mysql установка и настройка: Как установить веб-сервер Apache c PHP, MySQL и phpMyAdmin на Windows

Apache и mysql установка и настройка: Как установить веб-сервер Apache c PHP, MySQL и phpMyAdmin на Windows

Установка и настройка apache+php+mysql на Windows. Часть 1. « Все о WEB программировании

Ромчик

2

Доброго времени суток. По некоторым причинам пришлось поработать на Windows машине. А заниматься web-программирование, как Вы понимаете, без настроенного Apache сервера с поддержкой PHP и настроенного MySQL сервера как-то не очень. Поэтому я в данной статье и остановлюсь на установке и настройке Apache+PHP+MySQL. И опишу с какими трудностями я столкнулся. Да, Вы можете возразить “А зачем это делать? Есть замечательные сборки, как XAMPP или Denver”. На, что я Вам отвечу: последняя версия XAMPP поддерживает PHP 5.1, а мне необходим 5.3, а Denver я не люблю, да и нагружать лишним машину не хочется. Так, что кому интересно как установить Apache, PHP и MySQL на Windows. И как все это настроить читаем ниже.

Установка Apache на Windows.

Первое, что нам необходимо сделать так это скачать дистрибутив Apache c официального сайта. На момент написания данной статьи это была версия Apache 2.2.22. После того, как скачали наш web-сервер приступаем к его установке.

Жмем Next. В следующем окне читаем лицензионное соглашение, соглашаемся с ним и жмем Next

В следующем окне читаем (кому не лень) что такое apache и для чего он нужен, и жмем Next.

В следующем окне вводим необходимую информацию, выбираем по какому порту будет работать наш HTTP сервер и жмем Next.

На следующем шаге выбираем тип установки Typical или Custom. Я не заморачивался и выбрал Typical. Жмем Next.

В следующем окне выбираем путь установки нашего Apache. Я оставил путь по умолчанию. Жмем Next.

В следующем окне просто жмем Install и приступаем непосредственно к установке web-сервера Apache.

Ждем окончания процесса установки HTTP-сервера.

Когда установка Apache завершена просто жмем Finish.

На этом установка сервера Apache завершена. Теперь на панели задач появился значок управления сервером Apache. С помощью, которого мы можем стартовать (Start) сервер, остановить (Stop) сервер и перезапустить (Restart) сервер.

Настройка Apache.

Итак, web-сервер Apache мы установили. Перейдем к настройке Apache. Во-первых определимся, где будут храниться наши проекты. У меня это папка myproject, которая находиться в корне диска d.
Во-вторых нашему apache необходимо указать данную папку. Это делается в файле основных настроек apache. Данный файл конфигурации находиться в папке, в которую Вы установили http-сервер, в подпапке conf и называется httpd.conf. Так у меня путь к данному файлу следующий: c:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\
Откроем файл обычным блокнотом. Я в качестве замены стандартного блокнота использую notepad++.
Ищем в этом файле следующий код:



<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>


Замечание: строка <Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi-bin»> может отличаться от Вашей.
И после него вставляем:



<Directory <путь к папке с Вашими проектами>>
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>


Этой вставкой мы указали где apache искать наши html-документы.
Apache позволяет на одном сервере поднимать несколько виртуальных серверов. Для этого необходимо раскомментировать следующую строку Include conf/extra/httpd-vhosts.conf (удалить в начале строки символ #) в файле конфигурации apache. Тем самым к основному файлу конфигурации httpd.conf мы подключим файл httpd-vhosts.conf, в котором и описываются виртуалаьные хосты.
Теперь в папке наших проектов создадим подпапку test, где будут расположены еще две подпапки logs — для хранения логов нашего виртуального хоста и подпапка www — где и будут расположены наши html — документы.
Теперь отредактируем файл httpd-vhosts.conf, добавив следующий код:



<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "d:/myproject/test/www"
ServerName test
           ServerAlias test
ErrorLog "d:/myproject/test/logs/error.log"
CustomLog "d:/myproject/test/logs/access.log" common
</VirtualHost>


Тем самым мы создали виртуальный хост.
После всех изменений в конфигурации apache сервер необходимо перезапустить.
Теперь отредактируем файл hosts, данный файл отвечает за резолвинг доменных имен без обращения к DNS серверу.
Файл hosts находиться на диске, где установлена операционная система, в папке Windows->System32->Drivers->etc
Для тех, у кого установлена Windows7 данный файл Вы не найдете. Для того, чтобы его отредактировать необходимо найти файл notepad.exe, который находиться в папке Windows и запустить его с правами администратора. Теперь из notepad открыть данный файл. И добавить в конец данного файла следующую строку:
test 127.0.0.1
И сохранить. Теперь при вводе в адресной строке адреса test наш браузер будет попадать на виртуальный хост test.
Давайте проверим в папке нашего виртуального хоста в подпапке www создадим файл index.html и добавим в него следующий код:



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title></title>
    </head>
    <body>
        <h2>Вы зашли на виртуальный хост - test</h2>
    </body>
</html>


Теперь заходим в браузер и переходим по адресу test. Если все сделали правильно, то должны увидеть надпись: Вы зашли на виртуальный хост — test.
На этом настройка web-сервера apache завершена. В следующей статье мы установим и настроим PHP. А также настроим apache для работы в связке с PHP. Так, что не пропускайте выхода новых статей, подписавшись на RSS-рассылку данного блога.

Понравилась статья? Поделись с друзьями.

Установка Apache — Настройки Apache — Установка PHP — Настройка PHP — Установка MySQL

В этой статья я расскажу о том как настроить локальную среду разработки своими руками. Конечно, можно пользоваться уже готовыми решениями, например Денвером и иже с ним. Но, посмотрите на комментарии к статье об установке Денвера и работе с базами данных в Денвере. То Денвер не устанавливается, то Apache не запускается, то не известно куда Денвер попрятал базы данных.

К тому же, на сервере хостинг-провайдера стоит не пакет разработки, а родные дистрибутивы Apache, MySQL и PHP. Буквально на днях я столкнулся с ситуацией, когда создаваемый сайт нормально работал в установленной и сконфигурированной в ручную среде разработки, а под Денвером не работал вообще.

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

Лично у меня присутствует какой-то шизофренический страх перед тем, что сборщик пакета локальной разработки залез своими руками в дистрибутив, что-то там поправил по своему усмотрению, наковырял, а может быть и засунул вирусняк (поэтому я не пользуюсь различными твикнутыми сборками Windows и сам настраиваю локальную среду разработки).

Я подробно опишу процесс установки и настройки сервера Apache на локальный компьютер. Это позволит избавиться от магического трепета перед принципами работы сайта с сервера хостинг-провадера.

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

Установка и настройка MySQL. Точно такая же ситуация. Автор — я сам.

Пару слов для новичков. Зачем вообще нужна среда локальной разработки. Если вы разрабатываете сайт, который будет состоять из нескольких статических HTML-страниц, то среда разработки — это всего-на-всего удобство при просмотре сайта в браузере в процессе отладки. Удобно заходить на разрабатываемый сайт по доменному имени. Вот кажется и все преимущества.

В случае разработки динамического сайта (применение php-скриптов и MySQL-баз данных), а так же при работе с движками, локальная среда разработки — это необходимость. Т.к., в этом случае, вам нужен инструмент, обрабатывающий php-скрипты и SQL-запросы.

Ну что же, поехали!

Установка Apache

Я обещал избавить вас от магического трепета перед принципами загрузки сайта с сервера хостинг-провайдера в вашем браузере. Сейчас я это сделаю.

Сервер — это ничто иное, как мощный компьютер, на жестком диске которого хранятся файлы вашего сайта. Обычно такой компьютер работает под управлением Unix-подобных систем . На этом компьютере запущена программа, которая называется Apache. При обращении к 80-му порту сервера, программа Apache выдаст обратившемуся компьютеру HTML-код и графические файлы, хранящиеся на жестком диске. Браузер компьютера пользователя примет полученные данные и оформит их в привычную нам страницу сайта.

На жестком диске сервера может находится сразу несколько сайтов. Все они распределены по папкам с уникальными именами (в этом случае сайты называются виртуальными хостами). Apache настроен таким образом, что при обращении к 80-му порту с определенным URL-адресом сайта, точно знает какие данные и из какой папки нужно отправить обратившемуся компьютеру.

Вот и вся магия. Когда я только начал разбираться с интернет-технологиями, подобный ответ на мой вопрос «да как же все-таки работают сайты», который я вычитал в одной из книг, расставил в моей голове все по своим местам, чему я был очень рад. Надеюсь кто-то из уважаемых читателей был обрадован сейчас не меньше чем я в свое время.

Теперь я расскажу, как установить и настроить Apache на локальном компьютере.

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

Шаг 1. Скачиваем Apache.

Скачать Apache можно с сайта разработчика. На момент написания этой статьи актуальной является версия 2.2.14. Поскольку работаем мы с вами под операционной системой Windows, то качаем Apache apache_2.2.14-win32-x86-openssl-0.9.8k.msi. Я его уже закачал и вы можете дернуть закаченный мною дистрибутив с Deposit Files (5.7 МБайт).

Скачивается обычный, до слез знакомый нам инсталятор. Запускаем его и переходим ко второму шагу.

Шаг 2. Установка Apache.

В запущенной программе установки Apache кликаем Next, соглашаемся с различными лицензионными соглашениями, пока не появится вот такое окно:

В поля Network Domain, Server Name, Administrator`s e-mail address можно вводить все что угодно (только сохраняя формат введенных значений).  Данная информация выводится в случае возникновения ошибки при загрузки сайта для контактов с администратором сервера, т.е. с вами.

Выбранный по умолчанию пункт for All Users, on port 80, as a Service — это то что нужно. Не зря данный пункт рекомендован.

Нажимаем Next и подтверждаем Typical-установку Apache.

Следующий шаг предлагает выбрать нам место для установки. Я, на всякий случай, устанавливаю в предложенный по умолчанию путь C:\Program Files\Apache Software Foundation\Apache2.2\.

Нажимаем Next.

На этом предварительные настройки установки Apache сделаны, запускаем установку нажав Install.

Вот и все, Apache установлен на локальный компьютер.

После установки, рядом с часами, должен появится значок, символизирующий запущенный Apache.

Кликнув по значку левой клавишей мыши вы можете запустить, остановить или перезапустить локальный Apache-сервер (Start, Stop, Restart).

Установка PHP

Если предполагается разработка проектов, содержащих php-скрипты, то эти скрипты кто-то должен обработать и преобразовать в HTML-код (ваш браузер ничего кроме HTML и JavaScript не понимает). А уж потом Apache отправит подключившемуся к 80-му порту компьютеру сгенерированный кем-то HTML.

Этот кто-то — PHP.

Приступаем к его установке.

Шаг 1.  Скачиваем PHP.

Дистрибутив PHP можно скачать с сайта разработчика. Я не рекомендую ставить свежайшую, на момент написания статьи, версию PHP 5.3.0. Новая версия на столько хорошая, что может вызвать глюки со старыми движками и php-фримворками.

Предлагаю скачать и установить старую добрую PHP 5.2.9-2, которую можно скачать с Deposit Files (18.62 МБайт)

Шаг 2. Установка PHP.

Запускаем установочный файл и приступаем к процессу установки PHP.

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

После выбора пути установки PHP спрашивает нас о версии Apache, которую мы установили. Устанавливали мы с вами версию 2.2.14 поэтому нужно выбирать соответствующий пункт:

Нажимаем Next и в следующем окне указываем путь к файлам конфигурации Apache. Они находятся здесь: C:\Program Files\Apache Software Foundation\Apache2.2\conf\


Нажимаем Next.

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

Program — оставляем по умолчанию.

Extensions — этот раздел содержит кучу различных компонентов. Здесь давайте поступим следующим образом: если вы знаете, какие компоненты вам могут понадобится, а какие нет, выбирайте в соответствии со своими знаниями; если знаний в данной области у вас пока не достаточно, то выбирайте все компоненты.

Extras — из этого раздела нам ничего не нужно.

Вот что у нас получилось:

Нажимаем Next.

Поздравляю Вас, уважаемый читатель, вы установили PHP.

Установка MySQL

Дело в том, что все современные сайты работают с MySQL базами данных. Именно из них извлекается контент при помощи php-скриптов и SQL-запросов. Механизм, позволяющий работать с базами данных — это программа MySQL-сервер, которую мы будем сейчас устанавливать.

Шаг 1. Скачиваем MySQL.

Скачать MySQL можно с сайта разработчика. На момент написания статьи актуальной является версия mysql-essential-5.1.39-win32, которую я и предлагаю скачать с Deposit Files (39 МБайт).

Шаг 2. Установка MySQL.

Тип установки рекомендую выбрать Complete.

Нажимаем Next и на следующем шаге знакомимся с местом установки MySQL и местом расположения файлов с содержимым баз данных.

Приступаем к установке нажав Install.

После установки программы нажимаем несколько раз Next, пролистывая информацию для ознакомления, пока не увидим вот это:

Нажав кнопку финиш мы переходим к настройке MySQL.

Настройка MySQL

В программе визуальной настройки MySQL, которая запустится, если вы оставили галочку на против соответствующего пункта (см. предыдущую картинку), заданные по умолчанию параметры подходят для нас оптимально. После запуска программы настройки нажимаем кнопку Next 7-раз, пока не появится следующее:

На этапе 8-го Next-а рекомендую вам в ручную указать кодировку по умолчанию UTF-8. Нажимаем Next. Вы можете ознакомится с подробной статьей о кодировка и перекодировках, а так же выборе между Windows-1251 и UTF-8.

На следующем экране обязательно установите галочку в пункте Include Bin Directory in Windows PATH:

Если вы этого не сделаете, то PHP не сможет найти нужный ему файл и будет ругаться.

Нажимаем Next. В следующем окне нам нужно указать пароль администратора баз данных. Укажите что-то легкозапоминающееся. Потом, подключаясь к базам данных, вам понадобится вводить этот пароль:

На этом процесс задания директив для настройки завершен и можно приступать к их применению:

Теперь нашу локальную среду разработки можно считать установленной. Остается ее настроить.

Настройка Apache и настройка PHP

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

У меня это папка www в корне диска «С».

Шаг 1. Разрешение доступа Apache к папе www на жестком диске.

Теперь в настройках Apache мне нужно указать путь к этой папке и разрешить доступ.

Для этого нужно открыть в любом текстовом редакторе основной файл конфигурации Apache. Это файл C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf.

В файле ищем блок инструкций:


<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

Ниже этого блока вставляем следующие инструкции:


<Directory "C:/www">
    AllowOverride All
#    Options None
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>

Тем самым мы разрешили доступ Apache к папке www в корне жесткого диска.

Шаг 2. Создаем место для хранения файлов сайта.

В папке www необходимо создать папку с именем нашего сайта (например moysite). В папке moysite создаем еще две папки: www — для хранения файлов сайта и logs — сюда Apache будет автоматически записывать ошибки, связанные с работой сервера и информацию о подключениях к сайту.

Так как обычно работа ведется с несколькими сайтами (т.е. в папке www корня жесткого диска, может находится несколько проектов: moysite, moysite1, noviysite и т.д.) , доступными по разным локальным URL, то нужно настроить работу Apache с виртуальными хостами.

Для этого в файле конфигурации C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf необходимо подключить файл дополнительной конфигурации виртуальных хостов.

Ищем в файле httpd.conf строку #Include conf/extra/httpd-vhosts.conf . Процесс подключения файла дополнительной конфигурации виртуальных хостов заключается в удалении символа решетка (#) перед этой строкой.

Было:


#Include conf/extra/httpd-vhosts.conf

Стало:


Include conf/extra/httpd-vhosts.conf

Дело в том, что в настройках Apache символом решетка (#) обозначается закомментированная строка, которая не участвует в конфигурации сервера.

Теперь файл дополнительной конфигурации подключен. Вот этот файл: C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf. Опять таки, открываем данный файл любым текстовым редакторе и описываем доступ к разрабатываемому сайту.

В конце файла необходимо добавить следующий блок:


<VirtualHost *:80>
	ServerName moysite.loc
	DocumentRoot "C:/www/moysite/www"
	ErrorLog "C:/www/moysite/logs/error.log"
	CustomLog "C:/www/moysite/logs/access.log" common
</VirtualHost>

Пункт ServerName задает URL, по которому будет осуществляться доступ из браузера локального компьютера к разрабатываемому сайту, файлы которого находятся в папке C:/www/moysite/www. Файл C:/www/moysite/logs/error.log будет содержать информацию об ошибках в работе сайта, а файл C:/www/moysite/logs/access.log — информацию о подключениях.

Шаг 3. Перенаправление запросов на локальный сервер.

Последний шаг — это перенаправление запросов на локальный сервер. Нам нужно сообщить Windows о том, что при запросе в браузере URL moysite.loc его должен обработать наш локальный Apache. Для этого открываем файл C:\WINDOWS\system32\drivers\etc\host в любом текстовом редакторе и в конце дописываем одну строчку: 127.0.0.1 moysite.loc.

Вот и все, теперь перезапускаем Apache, кликнув левой клавишей по иконке рядом с часами и выбрав пункт Restart.

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

Наводим лоск

Если при разработке проекта вы применяете ЧПУ, то необходимо включить модуль mod_rewrite.so в файле основной конфигурации Apache C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf.

Включение модуля осуществляется простым раскомментированием строки LoadModule rewrite_module modules/mod_rewrite.so

Было:


#LoadModule rewrite_module modules/mod_rewrite.so

Стало:


LoadModule rewrite_module modules/mod_rewrite.so


Использование укороченных тегов. Некоторые ленивые программисты вместо полного кода <?php…, в начале php-скрипта, используют укороченную форму <?… Для включения укороченных тегов необходимо настроить файл конфигурации PHP C:\Program Files\PHP\php.ini:

Было:


short_open_tag = Off

Стало:


short_open_tag = On

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

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

1. В папке C:\www\ создать новую папку noviysite, внутри которой создать папку www и logs.

2. В файле настройки виртуальных хостов Apache C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf указать настройки для нового виртуального хоста noviysite.loc:


<VirtualHost *:80>
	ServerName noviysite.loc
	DocumentRoot "C:/www/noviysite/www"
	ErrorLog "C:/www/noviysite/logs/error.log"
	CustomLog "C:/www/noviysite/logs/access.log" common
</VirtualHost>

3.  В файле C:\WINDOWS\system32\drivers\etc\hosts указать перенаправление для нового виртуального хоста на локальный сервер: 127.0.0.1 noviysite.loc

4. Перезапустить Apache, кликнув левой клавишей по значку рядом с часами и выбрав пункт Restart.

P. S.:Естественно в папке C:\www\noviysite\www должны лежать файлы сайта, которые и будут отображаться в браузере при вводе URL noviysite.loc/….

В случае, если вводится только доменное имя noviysite.loc из папки C:\www\noviysite\www будет загружаться файл index.html (таким образом настроен Apache по умолчанию и именно данный файл является автоматически-запускающимся при вводе лишь доменного имени).

Поскольку, в последнее время, большое распространение получили динамические сайты, написанные на языке PHP, то стартовый файл будет носить имя не index.html, а index.php. Для того, чтобы на ряду с index.html при вводе лишь доменного имени автоматически запускался еще и index.php нужно внести небольшие изменения в файл C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf:

Находим блок директив DirectoryIndex index.html. После директивы DirectoryIndex index.html нужно дописать через пробел index.php, чтобы получилось вот так: DirectoryIndex index.html index.php.

Хочу заметитье, что в этом случае Apache будет сначала искать файл index.html и пытаться запустить его, а потом уже index.php.

В случае, если папка с сайтом не содержит файла index.html или index.php (а в ней находится файл с именем kakoeto_imya.html), то набор URL noviysite.loc в браузере ничем хорошим не закончится (Apache не найдет файлов, которые захочет запустить по умолчанию). Для запуска файла из папки сайта с именем kakoeto_imya.html необходимо набрать URL noviysite.loc/kakoeto_imya.html.

Возникает законный вопрос: Каким образом администрировать базы данных MySQL, если phpMyAdmin нет?
Ответом на этот вопрос является программа HeidiSQL и видеоурок по работе с ней.

На сладкое

После прочтения данной статьи, я надеюсь, у вас возникла ясность в вопросе «как работает сайт с сервера хостинг-провайдера», а так же «как самому установить и настроить Apache, PHP и MySQL». Теперь не грех выпить чашечку кофейка и посмотреть забавный видеоролик.

С уважением, Андрей Морковин.

Выражаю благодарность отличному программисту Павлу Красько

за помощь в написании данной статьи.

Один из видеоуроков курса по PHP я посвятил проблеме установке локальной среды разработки на компьютер под управлением Windows. Если, после прочтения статьи, локальную среду запустить не удалось — очень рекомендую посмотреть видеоурок.

Установка и настройка apache+php+mysql на Windows. Часть 3 « Все о WEB программировании

Ромчик

1

Доброго времени суток. И мы продолжаем устанавливать и настраивать связку apache, php и mysql на ОС Windows. Так мы уже установили и настроили apache, установили и насторили php, а также настроили связку apache и php. А сегодня мы поговорим об установке и настройке сервера баз данных MySQL. И рассмотрим одну замечательную утилиту phpmyadmin. Приступим…

Установка MySQL.

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

В следующем окне читаем лицензионное соглашение, соглашаемся с ним и жмем Next.

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

В следующем окне жмем Install.

Ждем пока установится сервер баз данных MySQL.

Во время установки нам предложат ознакомиться с Enterprise версией MySQL, читаем жмем Next.

Установка завершена. Ставим галочку напротив Launch the MySQL Instance Configuration Wizard для перехода к мастеру конфигурации. Жмем Finish.

Конфигурирование MySQL.

Если Вы выбрали Launch the MySQL Instance Configuration Wizard, то после нажатия Finish появиться мастер настройки сервера баз данных MySQL

В следующем окне нам предложат способ конфигурации детальный (Detailed Configuration) и стандартный (Standard Configuration). Выбираем Detailed Configuration и жмем Next.

В следующих окнах все оставляем по умолчанию.

В окне с выбором кодировки выбираем UTF8 и жмем Next

В следующем окне отмечаем Include Bin Directory in Windows PATH для того, чтобы MySQL прописался в переменные среды и мы могли им управлять из командной строки. Жмем Next.

В следующем окне мы задаем пароль для root пользователя MySQL, если необходимо можем разрешить удаленное подключение root пользователя к данному серверу баз данных. И жмем Next.

В следующем окне просто жмем Execute для того, чтобы наша конфигурация применилась.

Если все прошло успешно, то Вы увидите следующее окно, в котором жмем Finish для завершения конфигурирования MySQL.На этом настройка сервера баз данных MySQL завершена.

Установка phpMyAdmin

Если Вы не работали с MySQL, если Вы не знаете как правильно работать с MySQL при помощи SQL-запросов, то я Вам рекомендую воспользоваться утилитой phpMyAmin, которая позволяет создавать базы данных, создавать в них таблицы, редактировать привилегии  пользователей и многое другое. Конечно phpMyAdmin не панацея от всех бед, но пока Вы изучаете SQL-запросы, он будет просто необходим.
Скачать phpMyAdmin можно с официального сайта. Последняя версия на момент написания статьи 3.5.0. По этому речь и будет идти о phpMyAdmin 3.5.0.
Создадим виртуальный хост для phpMyAdmin и назовем phpmyadmin. Как добавить виртуальный хост я описывал в статье “Установка и настройка apache+php+mysql на Windows. Часть 1” . Не забываем прописать в hosts. Переходим по адресу phpmyadmin и видим

На этом установку и настройку сервера баз данных MySQL на ОС Windows мы закончили. Для работы с базами данных мы установили phpMyAdmin. Итак мы подготовили рабочее пространство для web-разработчика. А в следующих статьях мы начнем разработку web проекта на фреймворке kohana. Так, что следите за обновлениями данного блога, подписавшись на RSS-рассылку.

Понравилась статья? Поделись с друзьями.

Установка Apache, PHP, MySQL, phpMyAdmin в Ubuntu Linux. Linux статьи

Комментарии

Voland

17.09.2010, 11:24

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Дополню — такая установка допустима только для локальной машины. Для много пользовательского режима, выделения квот и ограничения доступа нужно устанавливать систему так, чтобы /var (ну, или где там будут у кого вирт. хосты) была на отдельном разделе. Ну, там много нюансов. И еще — php-cgi надежнее php_mod_apache. Кушает оперативку, но запуск php-cgi (php-fastcgi) в safe_mode оправдает все потери в производительности. Админ, надеюсь, расскажешь начинающим линуксоидам и об этих нюансах. И еще — отличная заметка )

GS

24.03.2011, 19:20

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Какие нюансы можете рассказать ?

Voland

04.10.2011, 21:06

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Ну, например, пользователь, «живущий» в /home/user может сдлеать хардлинк на что-то из /etc
Если администратор, к примеру, хостинга, поведется на «с правами доступа какая-то проблема, обновите, пожалуйста, владельца файлов» и сделает пользователю
chown -R user: /home/user
то хардлинк сделает свое коварное дело. Chow`нется не только жесткая ссылка, но и файл, на который она ссылается. И пользователь получит права на запись.чтение системного файла. Поскольку хардлинк создается лишь в пределах одного раздела, то вынесение пользовательского каталога на отдельную парцию обезопасит от такого вторжения. Пользователь сможет создать лишь симлинк, но это ему ничего не даст. А развести админа на chown не так уж сложно. Не всякий, даже опытный, сразу поймет, что к чему.

Vermilion

09.05.2011, 21:56

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Не только для локальной машины. Если серверное железо хорошее, то сетевой затык незначительный. Сравним виндовый и линуксовый.fastcgi через одно место интегрируется в виндовый веб-серер (если ещё нормально встанет) и имеет проблемы с поддержкой css+html. Линуксовый, что греха таить требует знания команд и аккуратности. Не забывайте многие пользуются скриптами быстрой установки контента управления сайтами, не будем лукавить и дело тут как раз в пользовании ими и в самих контентах. Просто надо иметь не кривые руки

Akellacom

17.09.2010, 11:30

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Спасибо огромное! Я сегодня только искал как настроить данную связку и попал на этот сайт! Очень помогло!

verybadbug

12.10.2010, 20:44

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Статья — то, что надо, спасибо…. по части виртуальных хостов — тож инфа очень нужная… будем ждать

Nurick

02.01.2011, 11:46

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Благодарю ребят хорошая статья очень помогла!!! хорошо было бы если еще статью по виртуальным хостам по читать

yuriy

02.01.2011, 17:13

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Спасибо, по виртуальным хостам статья уже есть: http://pingvinus.ru/note/apache-virtual-host

Alizeo

02.01.2011, 18:55

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

А к чему такие сложности? Через тот же Synaptic мета-пакет LAMP ставится без проблем. Почему в статье об этом ни слова?

yuriy

02.01.2011, 19:10

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Это не сложности 🙂 Это основы :). А на этой основе уже ‘сформирован’ LAMP. Про LAMP можно будет отдельно написать тогда заметку потом.

Vermilion

09.05.2011, 21:43

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Потому, что сложности себе сами делают. Eсли ставить например ubuntu 10.4 LAMP в синаптике при отметке на обновление сразу на установку, а в ubuntu 10.10 ручками надо. В ubuntu 11.04 вообще изврат.

Voland

04.10.2011, 21:10

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

И правда. Зачем думать и понимать, как и что работает? Лучше так, бездумно, как в винде: тык кнопку. А на сервере какой synaptic? Или на сервере иксы поднимать да графическую оболочку? IF надо уметь руками работать ELSE идти в винду.

deburger

05.01.2011, 19:15

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

спасибо!

Сергей

29.01.2011, 23:56

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравитсяhttp://localhost/phpmyadmin
пишет
Not Found

в чем может быть проблема?
хотя раньше вроде так же ставил все роботало

yuriy

31.01.2011, 09:08

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

В файле /etc/hosts localhost прописан на нужный ip?

михаил

06.07.2012, 13:49

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

как это сделать,как прописать помоги плиз.

yuriy

06.07.2012, 14:24

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

http://pingvinus.ru/note/apache-virtual-host
См. пункт «Редактируем /etc/hosts»

Felea

01.11.2012, 16:19

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

а что именно надо дописать в /etc/hosts?

Гари

04.02.2011, 14:44

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

спс

Антон

09.02.2011, 13:19

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Спасибо! Хотел сайт на локалхосте…
А тут ошибка — http://localhost/phpmyadmin — Not Found.
Что делать??
Ответ пожалуйста на почту [email protected]!

Антон

12.02.2011, 13:10

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Дистрибутив — Убунта!
Да.
Почемуто нет!

Sam

15.02.2011, 19:47

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

sudo ln -s /usr/share/phpmyadmin /var/www
После этой команды ошибка Not Found прошла
/usr/share/phpmyadmin — место куда установился пма
/var/www — папка с содержимым localhost

Alex

21.04.2014, 12:48

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Спасибо помогло

Hidosi

07.06.2011, 10:49

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Я запорол установку myadmin что делать как вновь начать установку(настройку) без удаления покета

sammy

23.07.2011, 11:36

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

мега статья! я на винде вообще немерено убил на подобное времени, а тут — 3 строчки! начинаю любить линукс =)))

Sergey Fedoseev

02.10.2011, 10:30

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

в убунте для start/stop/restart нужно использовать invoke-rc.d или service
так-то

ilya

05.10.2011, 13:47

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Здраствуйте! при установке phpmyadmin в каталоге /etc/phpmyadmin отсутствует файл apache.conf, ссылка на него указана в apache2.conf, следовательно apache не стартует.. Пакет переустанавливал..

yuriy

06.10.2011, 15:31

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Покажите, пожалуйста, вывод команды:
ls /etc/phpmyadmin

Сергей

12.11.2011, 11:07

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравитсяЗдравствуйте! Хорошая статья и очень хорошо оформлена. Благодарности авторам.
Я новичок в линуксе, желаю уйти от винды, пытаюсь подружиться с убунтой.
Поставил всё по данной статье. PhpAdmin запускается, работает.
Создал файл с расширением php, задал права 777, вставил вызов phpinfo() — запустил в мозилле, работает.
А вот если вставлять php код в html, то не работает =(
Добавил в страницу apache:

и на экране появляется:
It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.
hello «; ?>

Подскажите что надо и как настроить, что бы php код выполнялся из html страниц?

yuriy

12.11.2011, 19:00

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

В .htaccess файле нужно прописать директиву:
AddType application/x-httpd-php .html

Сергей

13.11.2011, 10:13

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Создал в корневой директории сайта файл .htaccess и внёс туда AddType — не помогло, но вот когда добавил тоже самое в apache2.conf — всё заработало (я на локальном компьютере изучаю php).
Спасибо =)
Хотя всё равно интересно, почему директива не отработала из файла .htaccess с правами 777.

Voland

13.11.2011, 14:30

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравитсяА для чего 777? Хватит и 644. Чтобы читать файл, права на запись и исполнение не нужны. Золотое правило: «Все, что явно не разрешено — запрещено!». В директиве, в файле, где описывается виртуальный хост, пропишите AllowOverride All
У меня это сделано так:

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all


AllowOverride — управляет уровнем доступа .htaccess
Если не сработает, то также в apache2.conf поищите директиву AccessFileName В ней указывается имя управляющего файла. Описание директивы должно выглядеть так:
AllowOverride .htaccess

Сергей

14.11.2011, 21:48

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Благодарю. Помогло.
А права 777 дал потому как не получалось и, не зная в чём конкретно проблема, пытался «все ручки покрутить» =)

Voland

15.11.2011, 09:15

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Ну, тогда совет на будущее — давай права на запись/исполнение тогда, когда это явно необходимо. Иначе вы компрометируете безопасность. Не за что, рад помочь ))

Вася

11.01.2012, 14:39

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

В php.ini выставить разрешение на испольозвание php в html

Voland

13.11.2011, 14:31

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Ой, блин, Юра, зачем же оно спецсимволы вырезает из постов? Экранирование бы надо сделать.

Дмитрий

26.02.2012, 14:43

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

phpmyadmin не запускается
При попытке запуска http://localhost/phpmyadmin/ открывается страничка, на которой показаны файлы, хранящиеся в данной директории

anton

25.03.2012, 21:34

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

у меня пишет Sorry, try again.

Евгений

27.04.2012, 01:21

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравитсяЗдравствуйте, всё установил и у меня ошибка:
phpMyAdmin — Ошибка

The mysqli extension is missing. Please check your PHP configuration. <a href=»Documentation.html#faqmysql» target=»documentation»><img src=»./themes/pmahomme/img/b_help.png» alt=»Документация» title=»Документация» /></a>

Пожалуйста помогите…..

Linuxsuper

17.08.2012, 18:06

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Классная статья!!!

Константин

02.09.2012, 22:20

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

было бы совсем здорово, если бы вы еще объяснили как правильно запускать скрипты от пользователя виртуального хоста, а не от пользователя, которым запущен апач 🙂

Lens Wile Scan

16.09.2012, 17:48

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Спасибо!!!

andreys

02.05.2013, 10:42

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Предлагаю взглянуть на более лучший и бесплатный инструмент, чем phpMyAdmin — Valentina Studio 5.x, который вышел буквально пару месяцев назад. Я юзаю уже месяц – до сих пор нахожу новые фишки.
http://www.valentina-db.com/valentina-studio-overview

Voland

02.05.2013, 19:30

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Во-первых, какие именно там преимущества?
Во-вторых, как он может быть «более бесплатным», чем совершенно бесплатный PHPMyAdmin?
К тому же, как мне показалось, Valentina Studio — это клиентское приложение. А PHPMyAdmin — это набор PHP скриптов, предоставляющий WEB интерфейс для управления базами данных. То есть, совершенно разные вещи.

Андрей

15.06.2013, 16:56

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

У меня apache не хочет устанавливаться вообще. Ввожу в терминале первую строчку, оно выдает: … &amp;quot;будет отнято место на диске. Продолжить(Д/н)?&amp;quot; Я набираю д, а оно:
Ош http://ua.archive.ubuntu.com/ubuntu/ natty-updates/main libapr1 i386 1.4.2-7ubuntu2.1
404 Not Found [IP: 91.189.92.201 80]
Ош http://ua.archive.ubuntu.com/ubuntu/ natty/main libaprutil1 i386 1.3.9+dfsg-5ubuntu3
404 Not Found [IP: 91.189.92.201 80]
Ош http://ua.archive.ubuntu.com/ubuntu/ natty/main libaprutil1-dbd-sqlite3 i386 1.3.9+dfsg-5ubuntu3
404 Not Found [IP: 91.189.92.201 80]
Ош http://ua.archive.ubuntu.com/ubuntu/ natty/main libaprutil1-ldap i386 1.3.9+dfsg-5ubuntu3
Это начало того, что оно вывело. Что делать?

Anatolik

06.07.2013, 21:32

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Нужно вместо «д» вводить английскую букву «y» от yes.

Артем

03.10.2013, 18:24

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Окей, а как его удалить, не можете подсказать?:)

aprogrammer

21.10.2013, 16:17

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Не могу подключиться через phpmyadmin. Не знаю в чем проблема… Пишет нет такого адреса… Пробовал по этой инструкции http://sysadmin.te.ua/linux/nastrojka-apache-php-mysql-pod-ubuntu-12-04.html то же самое….

Виктор

24.03.2014, 19:44

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Статья супер. Все получилось с первого раза. Спасибо

salofun

05.05.2014, 18:24

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

аналогичная ошибка phpmyadmin не открывается 404 not Found

danies

11.05.2014, 03:07

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Почему после установки и попытке зайти на http://localhost/ открывается просто белая страница?

Александр

22.07.2014, 16:23

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Что делать, я на вот этом шаге http://joxi.ru/ElfOU_3JTJD5R28FLMc нажал сразу Enter без проблеа, по запарке. Всё поставилось но localhost/phpmyadmin/ выдаёт NotFound в браузере. Хотя Apache работает http://joxi.ru/iVfOU_3JTJBxDivYZ74. Попытался удалить phpmyadmin и потом поставить занова, но повторно такого окошка с выбором сервера не выдало. Как настроить phpmyadmin чтобы он запускался нормально?

Andrew

31.05.2015, 14:17

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

sudo gedit /etc/apache2/apache2.conf
прописать в самомм низу Include /etc/phpmyadmin/apache.conf

SergAlexa

01.03.2015, 13:44

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Отличная статья! Спасибо! Но вот у меня такой вопрос: как всю эту красоту теперь можно удалить? Я тут просто понатыкал лишнего, хотел бы переустановить по-нормальному, предварительно удалив всё.

Сергей

15.04.2015, 17:09

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Спасибо друг, статья помогла!
Всё чётко и ясно. Правда реализововал под Mint 17.1
Но как и у многих phpmyadmin не стартовал.
Сейчас всё работает, но вопрос остался — как убрать из адресной строки http://localhost/mysite.ru а нужно что бы выводилось http://mysite.ru без localhost

Иван

22.06.2015, 22:31

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Как исправили? Тоже не стартует((

Андрей

31.05.2015, 14:15

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

sudo apache2ctl status
[sudo] password for авапгнор:
/usr/sbin/apache2ctl: 101: /usr/sbin/apache2ctl: www-browser: not found
‘www-browser -dump http://localhost:80/server-status’ failed.
Maybe you need to install a package providing www-browser or you
need to adjust the APACHE_LYNX variable in /etc/apache2/envvars
дальше phpmyadmin сообщение not found

svk

29.08.2016, 05:24

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

Спасибо! Сделала все, как в статье — поставилось без проблем!

Sardor

08.03.2017, 12:56

Войдите, чтобы ставить дизлайкине нравится

Лайков: +1

Войдите, чтобы ставить лайкимне нравится

sudo apt-get install php5 libapache2-mod-php5
На ubuntu 16.10 не прокатит.
Она не поддерживает php5
Делайте просто через sudo apt-get install php

Aleks3500

06.07.2020, 00:55

Войдите, чтобы ставить дизлайкине нравится

Лайков: 0

Войдите, чтобы ставить лайкимне нравится

Классика,то что бездоказательно надо знать «как нужно в Linux играть»
😉

Установка и настройка Apache, PHP, MySQL на CentOS — База знаний

  • Русский
    • العربية
    • Azerbaijani
    • Català
    • 中文
    • Hrvatski
    • Čeština
    • Dansk
    • Nederlands
    • English
    • Estonian
    • Persian
    • Français
    • Deutsch
    • עברית
    • Magyar
    • Italiano
    • Macedonian
    • Norwegian
    • Português
    • Português
    • Română
    • Русский
    • Español
    • Svenska
    • Türkçe
    • Українська
  • Вход
  • Регистрация
  • Просмотр корзины

Toggle navigation

  • Главная
  • Купить  
    • Все
    • ——
    • Cloud Hosting
    • VPS/VDS in Slovakia
    • VPS/VDS in Netherlands
    • VPS/VDS in Ukraine
    • VPS/VDS in Russia
    • VPS/VDS in USA
    • Dedicated Servers (Slovakia)
    • Dedicated Servers (France)
    • Dedicated servers (Ukraine)
    • Dedicated servers (USA)
    • Colocation (Slovakia)
    • ——
    • Зарегистрировать домен
    • Перенести домен к нам
  • Объявления
  • База знаний
  • Статус сети
  • Партнерство
  • Связь с нами
  • Аккаунт  
    • Вход
    • Регистрация
    • ——
    • Забыли пароль?
  1. Портал
  2. База знаний
  3. CentOS
  4. Установка и настройка Apache, PHP, MySQL на CentO

Установка Apache, MySQL и PHP на Ubuntu 18.04 LTS. Категория: Web-разработка • Разное

Установка Apache

Установка веб-сервера Apache:

$ sudo apt install apache2

Открываем в браузере http://localhost/:

Остановка сервера:

$ sudo systemctl stop apache2

Запуск сервера:

$ sudo systemctl start apache2

Перезагрузить конфигурацию:

$ sudo systemctl reload apache2

Перезагрузить сервер:

$ sudo systemctl restart apache2

Проверить состояние:

$ systemctl is-active apache2

Включить автозапуск:

$ sudo systemctl enable apache2

Отключить автозапуск:

$ sudo systemctl disable apache2

Посмотреть информацию о версии:

$ apache2 -v
Server version: Apache/2.4.29 (Ubuntu)
Server built:   2019-09-16T12:58:48

Установка MySQL

Установка сервера БД MySQL:

$ sudo apt install mysql-server

Эта команда установит MySQL, но при этом не предложит задать пароль или внести какие-либо правки в конфигурацию. Далее запускаем скрипт безопасности, который изменит некоторые настройки по умолчанию на более безопасные:

$ sudo mysql_secure_installation

Надо ответить на вопросы:

  • Установить плагин проверки надежности паролей?
  • Пароль для пользователя root?
  • Подтверждение пароля для root?
  • Удалить анонимного пользователя?
  • Запретить root подключаться удаленно?
  • Удалить тестовую базу данных?

По умолчанию пользователь root может подключаться только локально, т.е. с хоста localhost.

Начиная с версии 5.7 пользователь root подключается с помощью плагина auth_socket, а не по паролю:

$ sudo mysql
> SELECT user, authentication_string, plugin, host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *76370DCD37985A94742AE45C0F4C890251AB21FA | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Изменим это:

> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'qwerty';
Query OK, 0 rows affected (0.00 sec)
> SELECT user, authentication_string, plugin, host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *AA1420F182E88B9E5F874F6FBE7459291E8F4601 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *76370DCD37985A94742AE45C0F4C890251AB21FA | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)
> FLUSH PRIVILEGES;
> exit

Проверим вход по паролю:

$ mysql -uroot -pqwerty
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.27-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
> exit

Остановка сервера:

$ sudo systemctl stop mysql

Запуск сервера:

$ sudo systemctl start mysql

Перезагрузить конфигурацию:

$ sudo systemctl reload mysql

Перезагрузить сервер:

$ sudo systemctl restart mysql

Проверить состояние:

$ systemctl is-active mysql

Включить автозапуск:

$ sudo systemctl enable mysql

Отключить автозапуск:

$ sudo systemctl disable mysql

Посмотреть информацию о версии:

$ mysql -V
mysql Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using  EditLine wrapper

Установка PHP как модуля Apache

Установка PHP:

$ sudo apt install php7.2-mysql libapache2-mod-php7.2

Посмотреть информацию о версии:

$ php -v
PHP 7.2.24-0ubuntu0.18.04.1 (cli) (built: Oct 28 2019 12:07:07) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.24-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies

Настройка виртуальных хостов

Перейдем в директорию /var/www, которая содержит внутри себя директорию html с файлом index.html. И создадим еще две директории host1.loc и host2.loc. И внутри каждой директории создадим файл index.php:

$ cd /var/www
$ sudo su
# mkdir host1.loc
# mkdir host2.loc
# cd host1.loc
# nano index.php
<h2>Сайт host1.loc</h2>
<?php phpinfo(); ?>
# cd host2.loc
# nano index.php
<h2>Сайт host2.loc</h2>
<?php phpinfo(); ?>

Теперь перейдем в директорию с настройками Apache:

# cd /etc/apache2
# ls -l
-rw-r--r-- 1 root root  7224 сен 16 15:58 apache2.conf
drwxr-xr-x 2 root root  4096 ноя 11 09:32 conf-available
drwxr-xr-x 2 root root  4096 ноя 11 09:32 conf-enabled
-rw-r--r-- 1 root root  1782 июл 16 21:14 envvars
-rw-r--r-- 1 root root 31063 июл 16 21:14 magic
drwxr-xr-x 2 root root 12288 ноя 11 12:29 mods-available
drwxr-xr-x 2 root root  4096 ноя 11 12:29 mods-enabled
-rw-r--r-- 1 root root   320 июл 16 21:14 ports.conf
drwxr-xr-x 2 root root  4096 ноя 11 09:32 sites-available
drwxr-xr-x 2 root root  4096 ноя 11 09:32 sites-enabled
  • apache2.conf: главный конфигурационный файл Apache. Изменения в этом файле влияют на глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов из конфигурационной директории.
  • ports.conf: этот файл определяет порты, которые Apache будет слушать. По умолчанию Apache слушает порт 80, а также порт 443 при условии, что модуль для работы с SSL включен.
  • sites-available: в этой директории хранятся файлы виртуальных хостов. Apache не использует файлы из этой директории, если ссылки на них нет в директории sites-enabled. Обычно настройка всех файлов виртуальных хостов осуществляется в этой директории, а активация хоста происходит путём создания ссылки в другой директории командой a2ensite.
  • sites-enabled: директория, в которой хранятся активированные виртуальные хосты. Обычно это делается путём создания ссылки на файл конфигурации хоста из директории sites-available с помощью команды a2ensite. Apache читает конфигурационный файлы и ссылки из этой директории при запуске или перезапуске.
  • conf-available, conf-enabled: эти директории связаны друг с другом так же, как и sites-available и sites-enabled связаны друг с другом, но используются для хранения фрагментов конфигурации, которые не принадлежат виртуальным хостам. Файлы в директории conf-available могут быть включены командой a2enconf и выключены командой a2disconf.
  • mods-available, mods-enabled: эти директории содержат, соответственно, доступные и активные модули. Файлы, оканчивающиеся на .load, содержат фрагменты для загрузки конкретных модулей, а файлы, оканчивающиеся на .conf, содержат настройки этих модулей. Модули можно активировать командой a2enmod и деактивировать командой a2dismod.

Посмотрим, какие сайты могут быть активированы командой a2ensite:

# cd /etc/apache2/sites-available
# ls -l
-rw-r--r-- 1 root root 1332 июл 16 21:14 000-default.conf
-rw-r--r-- 1 root root 6338 июл 16 21:14 default-ssl.conf

И какие сайты сейчас доступны, т.е. были активированы командой a2ensite:

# cd /etc/apache2/sites-enabled
# ls -l
lrwxrwxrwx 1 root root 35 ноя 11 09:32 000-default.conf -> ../sites-available/000-default.conf

В директории только одна ссылка, значит доступен только один сайт по адресу http://localhost/. Создадим два файла конфигурации виртуальных хостов:

# cd /etc/apache2/sites-available
# cp 000-default.conf host1.loc.conf
# cp 000-default.conf host2.loc.conf

И отредактируем эти файлы:

# nano host1.loc.conf
<VirtualHost *:80>
    ServerName host1.loc
    ServerAdmin [email protected]
    DocumentRoot /var/www/host1.loc
    ServerAlias www.host1.loc
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# nano host2.loc.conf
<VirtualHost *:80>
    ServerName host2.loc
    ServerAdmin [email protected]
    DocumentRoot /var/www/host2.loc
    ServerAlias www.host2.loc
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Активируем два наших сайта:

# a2ensite host1.loc
Enabling site host1.loc.
To activate the new configuration, you need to run:
  systemctl reload apache2
# a2ensite host2.loc
Enabling site host2.loc.
To activate the new configuration, you need to run:
  systemctl reload apache2

Перед тем, как перезагрузить Apache, отредактируем файл hosts:

# nano /etc/hosts
127.0.0.1   localhost
127.0.1.1   ubuntu-lamp

127.0.0.1   host1.loc www.host1.loc
127.0.0.1   host2.loc www.host2.loc

Перезагружаем Apache:

# systemctl reload apache2

И проверяем работу сайтов:

Установка PHP как FastCGI

Устанавливаем пакет php-fpm:

$ sudo apt install php7.2-fpm

FPM расшифровывается как Fastcgi Process Manager, менеджер процессов FastCGI. PHP-FPM запускается как отдельный процесс и взаимодействует с веб-сервером через порт 9000 или сокетный файл. Является альтернативной реализацией PHP FastCGI с несколькими дополнительными возможностями, обычно используемыми для высоконагруженных сайтов.

Проверяем работу службы:

$ systemctl is-active php7.2-fpm
active

Во время установки php-fpm будет сказано следующее — чтобы включить PHP 7.2 FPM в Apache2, выполните команды:

$ sudo a2enmod proxy_fcgi setenvif
$ sudo a2enconf php7.2-fpm

Так и делаем. После этого нужно отключить модуль Apache для работы с php, потому что вместо него теперь будет php-fpm.

$ sudo a2dismod php7.2

Перезапускаем Apache:

$ sudo systemctl restart apache2

Что такое MPM и в чём разница между prefork, event, worker — можно почитать вот в этой статье. А сейчас просто отключаем модуль mpm_prefork и включаем модуль mpm_event:

$ sudo a2dismod mpm_prefork
$ sudo a2enmod mpm_event
$ sudo systemctl restart apache2
Дополнительно

Поиск: Apache • Linux • MySQL • PHP • Ubuntu • Установка • Настройка • Виртуальный хост • FPM • Сервер • Web-разработка

Как установить сервер Apache 2.4 на Windows 10 и 7

Автор статьи: admin

Метки: Apache / Установка

В этой статье вы узнаете как установить сервер Apache на Windows 10 но также эта инструкция подойдёт и для Windows 7.

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

Скачивание Apache:

Для того чтобы скачать, нужно зайти на официальную страницу загрузки и выбрать версию x64 или x32, зависимо от вашей системы.

Также, если у вас нет библиотеки «Visual C++ Redistributable for Visual Studio 2015-2019», то сможете её установить прямо с этой же странице.

Установка Apache:

После того как вы всё скачали, и установили библиотеку «Visual C++ Redistributable for Visual Studio 2015-2019», то открываете архив с Apache, и папку Apache24 перемешаем куда вам надо.

Базовая настройка Apache:

Открываем папку «conf», и там открываем в вашем текстовом редакторе файл «httpd.conf», вносим туда изменения.

Define SRVROOT «Путь до папки c Apache»

Define SRVROOT «c:/Users/Username/Documents/server/Apache24» #Пример

Теперь добавляем имя сервера, делаем из этого «#ServerName www.example.com:80», это.

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

DocumentRoot «c:/Users/Username/Documents/server/Apache24/htdocs/»

Также нужно изменить Directory.

<Directory «c:/Users/Username/Documents/server/Apache24/htdocs/»>

Теперь меняем файлы который будут индексироватся, меняем DirectoryIndex.

DirectoryIndex index.html index.htm

Также нужно изменить переменную AllowOverride, она определяет, какие директивы могут быть помещены в файлы .htaccess, делаем значение All.

Последние нужно раскомментировать строчку:
#LoadModule rewrite_module modules/mod_rewrite.so.

LoadModule rewrite_module modules/mod_rewrite.so

Сохраняем и закрываем файл.

Первый запуск Apache:

Запускаем командную строку от имени администратора и там открываем папку «bin» в Apache24, и используем команду httpd.exe -k start, для запуска сервера.

Переходим в браузере по адресу «http://localhost:8080/» и у вас должно вывестись что то типа этого.

Если всё так как на скриншотах, значит всё работает.

Вывод:

В этой статье вы прочитали о том, как установить сервер Apache на Windows 10, и как видите всё работает, единственное, здесь была только базовая настройка, о том как подключить, например, PHP, будет в дрогой статье.

Подписываетесь на соц-сети:

Оценка:

Количество оценивших: 1
Средняя оценка: 1,00

Загрузка…

Также рекомендую:

Установка и настройка PHP, Apache и MySQL для разработки PHP в Windows

В этом руководстве показаны два способа настройки среды разработки PHP в операционной системе Windows. Первый и наиболее удобный способ — установить и настроить пакет AMP ( A pache, M ySQL, P HP). В этом руководстве показано, как установить пакет XAMPP. Второй способ — установить и настроить каждый компонент отдельно.

Содержание

Чтобы следовать этому руководству, вам потребуется следующее программное обеспечение и ресурсы.

Обычно разработка и отладка выполняется на локальном компьютере. веб-сервер, а производственная среда находится на удаленном веб-сервере. Настройка удаленного веб-сервера описана в разделе «Развертывание приложения PHP на удаленном веб-сервере с помощью NetBeans». IDE. В этом руководстве вы настроили локальный веб-сервер. Поддержка PHP можно добавить к несколько локальных веб-серверов (IIS, Xitami и т. д.), но чаще всего используется HTTP-сервер Apache. HTTP-сервер Apache включен в пакет XAMPP AMP, используемый в этом руководстве.Для получения информации об установке и настройке автономного HTTP-сервера Apache, кликните сюда.

Требуемое программное обеспечение

Для создания, запуска и отладки ваших PHP-проектов вам потребуется следующее программное обеспечение:

  • IDE NetBeans для PHP. Загрузки доступны здесь.
  • Веб-сервер. Обычно разработка и отладка выполняются на локальном веб-сервере, а производственная среда расположена на удаленном веб-сервере. Текущая версия позволяет использовать локальный сервер.Использование удаленного сервера с доступом по FTP будет поддерживаться в будущих версиях. Поддержка PHP может быть добавлена ​​к ряду веб-серверов (IIS, Xitami и т. Д.), Но чаще всего используется HTTP-сервер Apache. Щелкните здесь, чтобы узнать, как установить и настроить Apache 2.2.
  • Движок PHP. Поддерживаемая версия — PHP5. Загрузки доступны здесь.
  • Отладчик PHP. IDE NetBeans для PHP позволяет использовать XDebug, но использование отладчика необязательно. Рекомендуемая версия — XDebug 2.0 или выше, поскольку он совместим с PHP5.
  • Сервер базы данных. Вы можете использовать различные серверы баз данных, но одним из самых популярных является сервер MySQL. Загрузки доступны здесь.
    Примечание: Рекомендуемая версия продукта — MySQL Server 5.0. В предоставленных документах описана работа с этой версией.

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

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

Использование пакета AMP

Чтобы все параметры конфигурации для механизма PHP, HTTP-сервера Apache и сервера базы данных MySQL задавались автоматически, используйте пакет AMP. В этом руководстве приведены инструкции только для пакета XAMPP-Windows. Для получения справки по пакету WAMP см. NetBeans XDebug Wiki.

Установка и настройка пакета XAMPP

В этом разделе описывается, как загрузить, установить и настроить пакет XAMPP.

Предупреждение: НЕ используйте XAMPP 1.7.0. В этой версии есть серьезные проблемы с XDebug. Используйте версию 1.7.1 или новее, где эти проблемы устранены.

Примечание: Начиная с XAMPP 1.7.2, XAMPP поставляется с PHP 5.3, а не с PHP 5.2.x. IDE NetBeans для PHP версии 6.7.x не поддерживает новые функции PHP 5.3. IDE NetBeans для PHP 6.8, доступная в настоящее время как сборка для разработки, полностью поддерживает PHP 5.3. Также обратите внимание, что установка Xdebug отличается в PHP 5.2.x и PHP 5.3.

  1. Загрузите установочный пакет XAMPP. (XAMPP Lite не включает XDebug.)
  2. Когда загрузка завершится, запустите файл .exe.

    В Microsoft Vista функция контроля доступа пользователей блокирует установку PHP для обновления конфигурации Apache httpd. Отключите UAC при установке XAMPP. См. Дополнительную информацию в службе поддержки Microsoft.

  3. Вам предоставляется возможность установить сервер Apache и сервер базы данных MySQL как службы.Если вы устанавливаете сервер Apache и MySQL как службы, вам не придется запускать их вручную через панель управления XAMP. Обратите внимание, что у вас есть возможность установить или удалить эти службы в Панели управления XAMPP.
  4. Если вы используете самораспаковывающийся архив, после извлечения архива запустите файл setup-xampp.bat, чтобы настроить компоненты пакета. (Программа установки XAMPP запускает этот файл автоматически.)
  5. После настройки откройте панель управления XAMP.(Вы можете открыть его вручную, запустив файл XAMPP_HOME / xampp-control.exe или с помощью значка панели управления Xampp, который автоматически помещается на рабочий стол.) Когда вы открываете панель управления XAMPP, обратите внимание, что модули, установленные как службы, уже работают.

    Предупреждение: Иногда в Windows Vista не запускается xampp-control.exe. Вместо этого вы можете запустить xampp-start.exe.

    Предупреждение: Файл winmysqladmin.exe, запускаемый кнопкой администратора для MySQL, не работает.Появляется каскад сообщений об ошибках, который можно остановить, только вручную завершив процесс winmysqladmin. Вы также не можете запустить winmysqladmin.exe из командной строки. См. Http://bugs.xampp.org/view.php?id=71.

  6. Флажки Svc показывают, что модуль установлен как служба Windows и запускается автоматически при запуске системы. Вы можете установить или удалить службы Windows, установив или сняв флажок Svc. Удаление службы Windows не приводит к удалению модуля, но требует запуска модуля вручную.Панель управления XAMPP включает кнопки для остановки и запуска модулей и открытия их консолей администрирования.

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

  1. Запустите браузер и введите следующий URL-адрес: http: // localhost. Откроется страница приветствия XAMPP:
  2. Чтобы убедиться, что серверы Apache и MySQL были установлены как системные службы, перезапустите операционную систему, запустите браузер и снова введите URL-адрес http: // localhost. Откроется страница приветствия XAMPP.Обратите внимание, что страница приветствия XAMPP включает в себя меню в левом поле, через которое вы можете проверить состояние компонентов XAMPP и запустить phpinfo (), среди других полезных функций. phpinfo () возвращает экран с информацией о конфигурации ваших компонентов XAMPP.

Установка и включение отладчика XDebug

Вам необходимо настроить стек PHP для использования XDebug. Процесс отличается, если вы используете XAMPP 1.7.1, который объединяет PHP 5.2.6, или XAMPP 1.7.2, который объединяет PHP 5.3.

Многие пользователи столкнулись с трудностями при запуске XDebug в своих системах. Пожалуйста, посетите нашу вики и форум пользователей редактора PHP NetBeans для получения помощи.

XDebug в XAMPP 1.7.1 (PHP 5.2)

Вы должны загрузить XDebug, поместить файл .dll в каталог расширений php и настроить php.ini для поиска и использования этого файла.

  1. Загрузите последнюю версию thread-safe XDebug, совместимую с вашей версией PHP. Ссылки для скачивания перечислены в разделе «Выпуски».Скопируйте файл .dll в каталог XAMP_HOME / php / ext. (XAMPP_HOME относится к каталогу установки XAMPP или XAMPP Lite, например C: \ Program Files \ xampp или C: \ xampplite.)
  2. Найдите и откройте активный файл php.ini для вашего XAMPP. По умолчанию он находится в каталоге XAMPP_HOME / apache / bin. Подтвердите, какой файл php.ini активен, запустив phpinfo () и выполнив поиск загруженного файла конфигурации.
  3. Поскольку оптимизатор Zend блокирует XDebug, вам необходимо отключить оптимизатор Zend.В активном файле php.ini найдите следующие строки и удалите их или отметьте как комментарии (на всякий случай найдите и закомментируйте все свойства, связанные с Zend):
    [Zend]
    ; zend_extension_ts = "C: \ Program Files \ xampp \ php \ zendOptimizer \ lib \ ZendExtensionManager.dll"
    ; zend_extension_manager.optimizer_ts = "C: \ Program Files \ xampplite \ php \ zendOptimizer \ lib \ Optimizer"
    ; zend_optimizer.enable_loader = 0
    ; zend_optimizer.optimization_level = 15
    ; zend_optimizer.license_path =
     
  4. Чтобы прикрепить XDebug к механизму PHP, раскомментируйте следующие строки в файле php.ini (непосредственно под разделом [Zend], добавьте их, если нет). Добавлены некоторые дополнительные примечания.
     [XDebug] 
    ; Только Zend ИЛИ (!) XDebug zend_extension_ts = "./php/ext/php_xdebug <номер-версии> .dll" ; XAMPP и XAMPP Lite 1.7.0 и более поздние версии поставляются с пакетом xdebug в /php/ext/php_xdebug.dll без номера версии.
    xdebug.remote_enable = 1
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_port = 9000 ; Номер порта должен соответствовать номеру порта отладчика в Инструменты IDE NetBeans> Параметры> PHP
    xdebug.remote_handler = dbgp
    xdebug.profiler_enable = 1
    xdebug.profiler_output_dir = " \ tmp"

    Установите для свойства xdebug.remote_enable значение 1, а не «true» или любое другое значение.

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

  5. Сохраните php.ini.
  6. Запустите приложение панели управления XAMPP и перезапустите сервер Apache.
См. Нашу вики и документацию XDebug для получения дополнительной информации о том, как настроить XDebug.
Xdebug на XAMPP 1.7.2 (PHP 5.3)

XAMPP 1.7.2 поставляется в комплекте с соответствующим файлом Xdebug .dll. Вам нужно только настроить php.ini, чтобы использовать его. Обратите внимание, что все настройки Xdebug имеют текст, объясняющий их.

  1. Найдите и откройте XAMPP_HOME \ php \ php.ini для редактирования. Это единственный файл php.ini в XAMPP 1.7.2.
  2. Найдите и раскомментируйте строку zend_extension = «XAMPP_HOME \ php \ ext \ php_xdebug.dll».
  3. Найдите и раскомментируйте строку xdebug.remote_host = localhost.Измените значение параметра с localhost на 127.0.0.1.
  4. Найдите и раскомментируйте строку xdebug.remote_enable = 0. Измените 0 на 1.
  5. Найдите и раскомментируйте строку xdebug.remote_handler = «dbgp».
  6. Найдите и раскомментируйте строку xdebug.remote_port = 9000.
  7. Сохраните php.ini.
  8. Запустите приложение панели управления XAMPP и перезапустите сервер Apache.

См. Нашу вики и документацию XDebug для получения дополнительной информации о том, как настроить XDebug.

Установка компонентов отдельно

.

Установка и настройка Apache, MySQL и PHP Глава 2 Установка и настройка MySQL

  • Установка и настройка Apache, MySQL и PHP Глава 2 Установка и настройка MySQL

  • Установка MySQL Установка в Windows:

    Перейдите на исходный веб-сайт www. mysql.com и щелкните загрузки (GA) на панели навигации, выберите Сервер сообщества MySQL, щелкните загрузить. Выберите платформу Microsoft Windows. Выберите последнюю стабильную версию и щелкните файл MSI, чтобы начать загрузку.(Если у вас нет учетной записи, вы должны сначала зарегистрироваться) Разархивируйте файл во временный каталог по вашему выбору. Щелкните setup.exe, чтобы запустить программу установки. Вы увидите первый из экранов мастера установки. Нажмите «Далее», чтобы отобразить информационный экран. Мы настоятельно рекомендуем вам прочитать этот экран, прежде чем продолжить. Нажмите «Далее», чтобы перейти к экрану «Выбор места назначения».

  • Установка MySQL Установка в Windows:

    Если каталог по умолчанию приемлем, просто нажмите Далее; в противном случае нажмите «Обзор» и выберите другое место назначения. Нажмите «Далее».Следующий экран позволяет вам настроить установку; Для большинства пользователей достаточно обычной установки. Выберите предпочитаемый тип установки и нажмите Далее, чтобы начать установку. После установки соответствующих файлов на последнем экране просто будет указано, что установка завершена. Нажмите «Готово», чтобы завершить работу мастера.

  • Установка MySQL Установка в Linux:

    Перейдите на исходный веб-сайт www.mysql.com, нажмите «Загрузки» (GA) на панели навигации, выберите «Сервер сообщества MySQL», нажмите «Загрузить».Выберите платформу для соответствующего дистрибутива Linux. Выберите последнюю стабильную версию и скачайте архив. (Если у вас нет учетной записи, вы должны сначала зарегистрироваться.) Откройте окно консоли и измените каталог (cd) на папку, в которую вы загрузили tarball. Если в системе нет пользователя, предназначенного для запуска демона mysql (обычно mysql ), вам нужно будет его создать. Для этого в консоли введите следующие команды:

    groupadd mysqluseradd g mysql mysql

  • Установка MySQL Установка с Linux:

    Распакуйте архив и перейдите в каталог, который он создает:

    ВЕРСИЯ (sub ) версия загруженного вами архива исходного кода mysql.Затем настройте источник следующим образом:

    Использование переключателя —prefix сообщает установщику, где разместить библиотеки и двоичные файлы mysql после их сборки. Скомпилируйте источник:

    tar xzf mysql-VERSION.tar.gzcd mysql-VERSION. / configure —prefix = / usr / local / mysqlmake

  • Установка MySQL Установка в Linux:

    Установка библиотек и двоичных файлов:

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

    Если MySQL устанавливается на ваш компьютер впервые (другими словами, это не обновление), запустите этот сценарий для установки исходной базы данных / таблиц:

    make installscripts / mysql_install_db

  • Установка MySQL Установка с Linux :

    Исправьте разрешения для установленных файлов и скопируйте файл конфигурации по умолчанию:

    Любые изменения, которые вы хотите внести для настройки MySQL, должны быть внесены в этот файл. Запустите демон MySQL:

    Возможно, вы захотите добавить предыдущую команду доступными средствами для автоматического запуска демона при загрузке.Это зависит от ОС. Вот один простой способ добавить это, который работает с большинством систем (но может быть не лучшим способом): chown R root / usr / local / mysqlchown R mysql / usr / local / mysql / varchgrp R mysql / usr / local / mysqlcp файлы поддержки / my-medium.cnf /etc/my.cnf/usr/local/mysql/bin/mysqld_safe —user = mysql & echo / usr / local / mysql / bin / mysqld_safe —user = mysql & >> / etc / rc.local

  • Тестовая установка

    Для Windows 95/98 / Me в командной строке DOS меняйте каталоги, пока не попадете в основной каталог сервера MySQL (по умолчанию c: \ mysql \ bin \).Затем введите

    . Для Windows 2000 / XP / NT в командной строке DOS меняйте каталоги, пока не окажетесь в основном каталоге сервера MySQL, и введите.

    Вы должны увидеть экран, похожий на показанный ниже

    c: \ mysql \ bin> mysqldc: \ mysql \ bin> mysqld —install

  • Testing Installation

    Чтобы запустить сервер MySQL, введите следующее:

    Ваш экран будет выглядеть, как показано ниже.

    Теперь вы должны протестировать, чтобы убедиться, что ваш сервер MySQL работает.Хотя существует множество возможных команд для тестирования сервера, для простоты используйте следующее: c: \> NET START MySQLC: \> c: \ mysql \ bin \ mysql test

  • Тестирование установки Ваш экран должен выглядеть примерно так один, показанный ниже:

    Чтобы вернуться в командную строку DOS, введите следующее:

    Чтобы остановить запуск сервера, введите следующее:

    Чтобы закрыть службу MySQL, введите: mysql> exit или mysql> quit c: \> NET STOP MySQLC: \> c: \ mysql \ bin \ mysqladmin -u root shutdown

  • Конфигурация Установка по умолчанию небезопасна.Нет пароля Все права предоставлены Root может входить в систему из любого места Требуется безопасная установка

  • Конфигурация Безопасное использование предоставленной утилиты.

    Этот сценарий выполняет следующие действия: Удаляет анонимного пользователя. Отключает удаленную учетную запись root. Удаляет тестовую базу данных. Mysql_secure_installation

  • Базовое администрирование Назначение прав пользователя

    Предоставляет права базам данных:

    Предоставляет все привилегии пользователю mike для всех баз данных. Эти пользователи просто хранятся как записи в базе данных, и вы можете редактировать записи напрямую, если хотите.ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА *. * Пользователю ‘@’ localhost ‘С ОПЦИЕЙ GRANT; ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА *. * Пользователю’ @ ‘%’ WITHGRANT OPTION;

  • Базовое администрирование Добавление пользователей из клиента mysql:

    Создает локального и удаленного пользователя. Часть «@» соответствует именам хостов, «%» — это подстановочный знак. Вы можете ограничить пользователей подключаться только с определенного хоста. Mysql> create пользователь-пользователь ‘@’ localhost ‘, идентифицированный’ паролем ‘; mysql> создать пользователя-пользователя’ @ ‘%’, идентифицированный ‘паролем’;

  • Ссылки Ссылки:

    Аноним.(нет данных). Документация по HTTP-серверу Apache, версия 2.2. Получено из http://httpd.apache.org/docs/2.2/.Achour, M., Betz, F. (n.d.), Руководство по PHP. Получено с http://www.php.net/download-docs.php.Anonymous. (нет данных). Справочное руководство по MySQL. Получено с http://downloads.mysql.com/docs/. Нарамор, Э., Гернер, Дж., Ле Скуарнек, Ю., Штольц, Дж., Гласс, М. К. (2005). Начало веб-разработки PHP5, Apache и MySQL. Индианаполис, Индиана: Wiley Publishing, Inc.

  • .Установка и настройка базы данных

    MySQL для консоли расширенного управления

    Установка и настройка базы данных MySQL для консоли расширенного управления К основному содержанию 6/17

    База данных для Advanced Management Console предоставляет хранилище данных для размещения всех данных. В базе данных хранится информация о файлах и приложениях MSI, правилах развертывания и наборах правил развертывания. В базе данных также хранится информация об агентах, статистике Java Runtime Environment (JRE) и конфигурациях Java Installer.

    Консоль расширенного управления также поддерживается в Oracle Database.

    Этот раздел содержит следующие разделы, в которых описаны требования к программному обеспечению, а также установка и настройка MySQL для Advanced Management Console:

    Программные требования для базы данных MySQL

    Установка базы данных MySQL для Advanced Management Console

    Этот раздел содержит следующие разделы, в которых описаны инструкции по установке и настройке MySQL для Advanced Management Console на различных платформах:

    Установка базы данных MySQL в Windows

    Для установки базы данных MySQL:

    1. Установите только сервер базы данных MySQL и выберите Server Machine в качестве типа конфигурации.

    2. Выберите вариант запуска MySQL как службы.

    3. Запустите клиент командной строки MySQL. Чтобы запустить клиент, введите следующую команду в окне командной строки: mysql -u root -p .

      Параметр -p необходим только в том случае, если для MySQL задан пароль root. При появлении запроса введите пароль.

    4. Создайте пользователя (например, amc2) и надежный пароль:

      mysql> создать пользователя amc2, идентифицированного как amc2;

      Чтобы ограничить доступ к машине (например, localhost для пользователя), создайте пользователя следующим образом:

      mysql> создать пользователя amc2 @ localhost, идентифицированного как amc2;

    5. Создайте базу данных (например, amc2) и предоставьте весь доступ пользователю (например, amc2 user):

      mysql> создать базу данных amc2;

      mysql> выдать все на amc2.* на amc2;

    6. Настройте установку MySQL для обработки больших записей BLOB, таких как пакет AMC Agent (установка) и двоичные файлы MSI. Для обработки записей BLOB отредактируйте файлы опций MySQL.

      MySQL — это служба Windows, поэтому ее можно запускать или останавливать со страницы администратора службы Windows. Все обновления файла опций MySQL my.ini должны выполняться администратором.

      Для редактирования файла my.ini :

      1. Откройте my.ini в редакторе. Вы должны отредактировать файл с правами администратора.

        По умолчанию в MySQL 5.6 файл параметров расположен по адресу % PROGRAMDATA% \ MySQL \ MySQL Server 5.6 \ my.ini .

        Примечание:

        Начиная с MySQL 5.7.18, my-default.cnf больше не включается и не устанавливается пакетами распространения. См. Параметры конфигурации сервера по умолчанию в Справочном руководстве MySQL.
      2. Установите параметры max_allowed_packet и innodb_log_file_size в my.ini в разделе [mysqld] до показанных значений:

        [mysqld]
        max_allowed_packet = 300 МБ
        innodb_log_file_size = 768 млн
         

        Примечание:

        Убедитесь, что нет других значений для max_allowed_packet и innodb_log_file_size , которые переопределяют установленное значение.
      3. Перезапустите службу MySQL, чтобы изменения вступили в силу.

    Учетные данные пользователя базы данных MySQL, представленные в этом разделе, являются примерами. Консоли Advanced Management Console не нужно знать учетные данные пользователя вашей базы данных MySQL.Учетные данные пользователя базы данных MySQL требуются только для настройки соединения с источником данных на сервере приложений.

    Установка и настройка MySQL в Linux

    Ниже приведены примерные инструкции по установке и настройке базы данных MySQL для дистрибутива Oracle Linux операционной системы Linux:

    1. Установите пакет сервера базы данных MySQL.

      Вы можете использовать инструмент Yum для установки MySQL в Oracle Linux: sudo yum install mysql-community-server .

    2. Запустите службу MySQL:
    3. Запустите клиент командной строки MySQL:

      mysql -u корень -p

      Параметр -p необходим только в том случае, если для MySQL задан пароль root. При появлении запроса введите пароль.

    4. Создайте пользователя (например, amc2 ) и надежный пароль:

      mysql> создать пользователя amc2, идентифицированного как amc2;

      Чтобы ограничить доступ к машине (например, к localhost для пользователя) создайте пользователя следующим образом:

      mysql> создать пользователя amc2 @ localhost, идентифицированного как amc2;

    5. Создайте базу данных (например, amc2 ) и предоставьте пользователю весь доступ, например amc2 , следующим образом:

      mysql> создать базу данных amc2;

      mysql> выдать все на amc2.* на amc2;

    6. Настройте установку MySQL для обработки больших записей BLOB, таких как пакет AMC Agent (установка) и двоичные файлы MSI. Для обработки записей BLOB отредактируйте файл my.cnf . Для получения дополнительной информации см. Файлы опций MySQL.

      Для редактирования файла my.cnf :

      1. Откройте файл my.cnf в редакторе. Вы можете найти файл my.cnf в одном из следующих мест:

        • / etc / my.cnf

        • /etc/mysql/my.cnf

        • $ MYSQL_HOME / my.cnf

        • [datadir] /my.cnf

      2. Установите параметры max_allowed_packet и innodb_log_file_size в разделе [mysqld] на указанные значения:
        [mysqld]
        max_allowed_packet = 300 МБ
        innodb_log_file_size = 768 млн
         

        Примечание:

        Убедитесь, что нет других значений для max_allowed_packet и innodb_log_file_size , которые переопределяют установленное значение.
      3. Перезапустите службу MySQL, чтобы изменения вступили в силу.

    Учетные данные пользователя базы данных MySQL, представленные в этом разделе, являются примерами. Консоли Advanced Management Console не нужно знать учетные данные пользователя вашей базы данных MySQL. Учетные данные пользователя базы данных MySQL требуются только для настройки соединения с источником данных на сервере приложений.

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

    .

    Как установить веб-сервер Apache в Windows

    Начать веб-разработку очень просто: вы создаете файл с именем something.html , редактируете его в Блокноте и загружаете в браузер. С помощью этого процесса можно создавать простые сайты, но чтобы по-настоящему изучить возможности, вам понадобится веб-сервер.

    Эта популярная статья была обновлена ​​в 2020 году, чтобы предоставить наиболее полезные и точные рекомендации.

    Что такое веб-сервер?

    (Перейдите к следующему разделу, если хотите…)

    Веб-сервер — это программа, которая прослушивает запросы и возвращает данные (обычно файл).Когда вы набираете «www.mysite.com», запрос пересылается на компьютер, на котором запущено программное обеспечение веб-сервера, который возвращает файл обратно вашему браузеру, например, содержимое index.html . Затем браузер может делать дополнительные запросы на основе содержимого HTML — например, CSS, JavaScript и графических файлов.

    Поскольку веб-сервер находится между вашим браузером и запрошенным файлом, он может выполнять обработку, которая невозможна при прямом открытии файла HTML. Например, он может анализировать код PHP, который подключается к базе данных и возвращает данные.

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

    Почему Apache?

    В целом рекомендуется использовать программное обеспечение веб-сервера, которое использует ваш хостинг. Если вы не создаете приложения ASP.NET на Microsoft IIS, ваш хост, скорее всего, будет использовать Apache — наиболее распространенный и полнофункциональный доступный веб-сервер. Это проект с открытым исходным кодом, поэтому его загрузка или установка не требует дополнительных затрат.

    Следующие инструкции описывают, как установить Apache в Windows. macOS поставляется с Apache и PHP. У большинства пользователей Linux предустановлен Apache или доступен в базовых репозиториях.

    Пакеты «все в одном»

    Существует несколько отличных универсальных дистрибутивов Windows, которые содержат Apache, PHP, MySQL и другие приложения в одном установочном файле, например XAMPP (для Windows, Linux и macOS), WampServer и WampDeveloper Pro. В использовании этих пакетов нет ничего плохого, хотя установка Apache вручную поможет вам больше узнать о системе и ее параметрах конфигурации.

    Мастер установки Apache

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

    Ручная установка

    Ручная установка дает несколько преимуществ:

    • Резервное копирование, переустановка или перемещение веб-сервера может быть выполнено за секунды.
    • У вас больше контроля над тем, как и когда запускается Apache.
    • Вы можете установить Apache где угодно, например, на портативный USB-накопитель (полезно для демонстрации клиента).

    Шаг 1. Настройка IIS

    Apache прослушивает запросы на TCP / IP-порту 80. Вам необходимо удалить или отключить любую программу, которая использует этот порт. Если у вас установлена ​​профессиональная или серверная версия Windows, возможно, у вас уже установлен IIS. Если вы предпочитаете Apache, удалите IIS как компонент Windows или отключите его службы.

    Шаг 2. Загрузите файлы

    Мы собираемся использовать неофициальный двоичный файл Windows из Apache Lounge.В этой версии улучшены производительность и стабильность по сравнению с официальным дистрибутивом Apache, хотя я еще не заметил значительной разницы. Однако он предоставляется в виде устанавливаемого вручную ZIP-файла с сайта www.apachelounge.com/download/.

    Вам также следует загрузить и установить среду выполнения Windows C ++ с сайта Microsoft.com. Возможно, он уже установлен, но повторная установка не повредит.

    Как всегда, не забывайте проверять на вирусы все загрузки.

    Мы установим Apache в C: / Apache24 , поэтому распакуйте ZIP-файл в корень диска C: / .Apache можно установить в любом месте вашей системы, но вам нужно будет изменить конфигурацию SVROOT , чтобы она указывала на ваше распакованное местоположение — например, E: / Apache24 .

    Шаг 4. Настройте Apache

    Apache настроен с помощью текстового файла conf / httpd.conf , содержащегося в папке Apache. Откройте его в своем любимом текстовом редакторе.

    Обратите внимание, что во всех настройках пути к файлу используется косая черта (/), а не обратная косая черта Windows. Если вы установили Apache где угодно, кроме C: / Apache24 , сейчас хорошее время для поиска и замены всех ссылок на C: / Apache24 .

    Есть несколько строк, которые вы должны изменить для своей производственной среды:

    • Строка 60, прослушиваем все запросы на порт 80:

        Слушайте *: 80
        
    • Строка 162, включите мод-перезапись, удалив # (необязательно, но полезно):

        LoadModule rewrite_module modules / mod_rewrite.so
        
    • Строка 227, укажите доменное имя сервера:

        Имя сервера localhost: 80
        
    • Строка 224, разрешить .htaccess отменяет:

        AllowOverride All
        

    По умолчанию Apache возвращает файлы, находящиеся в папке C: / Apache24 / htdocs . Хорошо использовать папку на другом диске или разделе, чтобы упростить резервное копирование и повторную установку. В этом примере мы создадим папку с именем D: WebPages и изменим httpd.conf соответственно:

    Шаг 5. Протестируйте установку

    Теперь ваша конфигурация Apache может быть протестирована.Откройте командное окно (Пуск> Выполнить> cmd ) и введите:

     
    cd / Apache24 / bin
    
    httpd -t
      

    Должно быть написано «Синтаксис ОК». Если нет, исправьте все ошибки конфигурации httpd.conf и повторите тестирование, пока они не появятся.

    Шаг 6: установите Apache как службу Windows

    Самый простой способ запустить Apache — это добавить его как службу Windows. Откройте новую командную строку от имени администратора и введите следующее:

      кд / Apache24 / bin
    httpd -k установить
      

    Откройте Панель управления, Администрирование, затем Службы и дважды щелкните Apache2.4. Установите для параметра «Тип запуска» значение «Автоматический», чтобы обеспечить запуск Apache при каждой загрузке компьютера.

    В качестве альтернативы установите Тип запуска «Вручную» и запускайте Apache всякий раз, когда выбираете, используя команду «net start Apache2.4».

    Шаг 7. Протестируйте веб-сервер

    Создайте файл с именем index.html в корне веб-страницы Apache ( htdocs или D: \ WebPages ) и добавьте небольшой HTML-код:

      
        
             Тестирование Apache 
        
        
            

    Apache работает!

    Убедитесь, что Apache успешно запущен, откройте веб-браузер и введите адрес http: // localhost / .Если все пойдет хорошо, должна появиться ваша тестовая страница.

    Как правило, большинство проблем возникает из-за неправильной настройки в файле конфигурации httpd.conf . Обратитесь к документации Apache, если вам нужна дополнительная информация.

    Заключение

    И все! Вот еще несколько руководств по теме:

    Чтобы узнать больше о рабочих процессах, посмотрите наш скринкаст Что такое npm и как его использовать?

    .
    Count mysql having: HAVING оператор MySQL — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

    Count mysql having: HAVING оператор MySQL — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

    HAVING оператор MySQL — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

    В этом учебном пособии вы узнаете, как использовать MySQL оператор HAVING с синтаксисом и примерами.

    Описание

    MySQL оператор HAVING используется в сочетании с оператором GROUP BY, чтобы ограничить группы возвращаемых строк только тех, чье условие TRUE.

    Синтаксис

    Синтаксис оператора HAVING в MySQL:

    SELECT expression1, expression2, … expression_n,
    aggregate_function (expression)
    FROM tables
    [WHERE conditions]
    GROUP BY expression1, expression2, … expression_n
    HAVING condition;

    Параметры или аргументы

    aggregate_function — функция, такая как функции SUM, COUNT, MIN, MAX или AVG.
    expression1, expression2, … expression_n — выражения, которые не заключены в агрегированную функцию и должны быть включены в предложение GROUP BY.
    WHERE conditions — необязательный. Это условия для выбора записей.
    HAVING condition — Это дополнительное условие применяется только к агрегированным результатам для ограничения групп возвращаемых строк. В результирующий набор будут включены только те группы, состояние которых соответствует TRUE.

    Пример использования функции SUM

    Рассмотрим пример MySQL оператора HAVING, в котором используется функция SUM.

    Вы также можете использовать функцию SUM, чтобы вернуть имя product и общее количество (для этого product). MySQL оператор HAVING будет фильтровать результаты так, чтобы возвращались только product с общим количеством больше 10.

    SELECT product, SUM(quantity) AS «Total quantity» FROM order_details GROUP BY product HAVING SUM(quantity) > 10;

    SELECT product, SUM(quantity) AS «Total quantity»

    FROM order_details

    GROUP BY product

    HAVING SUM(quantity) > 10;

    Пример использования функции COUNT

    Рассмотрим, как мы можем использовать оператор HAVING с функцией COUNT в MySQL.

    Вы можете использовать функцию COUNT, чтобы вернуть имя product и количество заказов (для этого product), которые находятся в категории ‘produce’. MySQL оператор HAVING будет фильтровать результаты так, чтобы возвращались только product с более чем 20 заказами.

    SELECT product, COUNT(*) AS «Number of orders» FROM order_details WHERE category = ‘produce’ GROUP BY product HAVING COUNT(*) > 20;

    SELECT product, COUNT(*) AS «Number of orders»

    FROM order_details

    WHERE category = ‘produce’

    GROUP BY product

    HAVING COUNT(*) > 20;

    Пример использования функции MIN

    Рассмотрим, как мы можем использовать оператор HAVING с функцией MIN в MySQL.

    Вы также можете использовать функцию MIN, чтобы вернуть имя каждого department и минимальную зарплату в department. MySQL оператор HAVING будет возвращать только те department, где минимальная зарплата составляет менее 50000 биткоинов :).

    SELECT department, MIN(salary) AS «Lowest salary» FROM employees GROUP BY department HAVING MIN(salary) < 50000;

    SELECT department, MIN(salary) AS «Lowest salary»

    FROM employees

    GROUP BY department

    HAVING MIN(salary) < 50000;

    Пример использования функции MAX

    Наконец, давайте посмотрим, как мы можем использовать оператор HAVING с функцией MAX в MySQL.
    Например, вы также можете использовать функцию MAX для возврата имени каждого department и максимальной заработной платы в department. Предложение MySQL HAVING будет возвращать только те department, чья максимальная заработная плата превышает 25000 биткоинов :).

    SELECT department, MAX(salary) AS «Highest salary» FROM employees GROUP BY department HAVING MAX(salary) > 25000;

    SELECT department, MAX(salary) AS «Highest salary»

    FROM employees

    GROUP BY department

    HAVING MAX(salary) > 25000;

    Команда HAVING — условие для GROUP BY

    Команда HAVING позволяет фильтровать результат группировки, сделанной с помощью команды GROUP BY.

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

    Синтаксис

    GROUP BY поле HAVING условие

    Примеры

    Все примеры будут по этой таблице workers, если не сказано иное:

    id
    айди
    name
    имя
    age
    возраст
    salary
    зарплата
    1 Дима 23 100
    2 Петя 23 200
    3 Вася 23 300
    4 Коля 24 1000
    5 Иван 24 2000
    6 Кирилл 25 1000

    Пример

    В данном примере демонстрируется работа GROUP BY без условия HAVING:

    SELECT age, SUM(salary) as sum FROM workers GROUP BY age

    SQL запрос выберет следующие строки:

    age
    возраст
    sum
    сумма
    23 600
    24 3000
    25 1000

    А теперь с помощью условия HAVING оставим только те строки, в которых суммарная зарплата больше или равна 1000:

    SELECT age, SUM(salary) as sum FROM workers GROUP BY age HAVING sum>=1000

    SQL запрос выберет следующие строки:

    age
    возраст
    sum
    сумма
    24 3000
    25 1000

    Пример

    Подсчитаем с помощью функции COUNT количество записей в группе (не используя HAVING):

    SELECT age, COUNT(*) as count FROM workers GROUP BY age

    SQL запрос выберет следующие строки:

    age
    возраст
    count
    количество
    23 3
    24 2
    25 1

    А теперь с помощью условия HAVING оставим только те группы, в которых количество строк меньше или равно двум:

    SELECT age, COUNT(*) as count FROM workers GROUP BY age HAVING count

    SQL запрос выберет следующие строки:

    age
    возраст
    count
    количество
    24 2
    25 1

    Аналогичного эффекта можно достигнуть, если воспользоваться командой IN:

    SELECT age, COUNT(*) as count FROM workers GROUP BY age HAVING count IN(1,2)

    Можно также использовать команду BETWEEN:

    SELECT age, COUNT(*) as count FROM workers GROUP BY age HAVING count BETWEEN 1 AND 2

    Как вы видите, в HAVING допустимы все команды, используемые в условии WHERE.

    полезный трюк с count() и count(distinct) / Песочница / Хабр

    Хочу поделиться одним интересным решением, к которому мне удалось прийти сегодня во время оптимизации запроса поиска пользователей. В выборке необходимо было возвращать количество общих групп текущего пользователя и меня — того, кто производит поиск. Что называется total shared groups. В итоге всё поместилось в один компактный запрос без подзапросов (что очень критично, позже объясню почему) с использованием одной таблицы в FROM, без GROUP BY и HAVING.

    Представим задачу более наглядно. Примем следующие таблицы:
    — group (group_id)
    — user (user_id)
    — user_group (хранит связки user_id-group_id)

    Необходимо узнать количество групп, в котором состоят пользователи user1 и user2. То есть найти пересечения между юзерами по таблице user_group.

    1. Следующий запрос выдаст количество всех записей из таблицы user_group, которые принадлежат юзерам user1 и user2.
    SELECT
    COUNT(`group_id`)
    FROM
    `user_group`
    WHERE
    `user_id` IN (:user1,:user2)

    2. А вот этот запрос выдаст количество записей из таблицы user_group, которые принадлежат юзерам user1 и user2, но с уникальным group_id:
    SELECT
    COUNT(DISTINCT `group_id`)
    FROM
    `user_group`
    WHERE
    `user_id` IN (:user1,:user2)

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

    3. В итоге приходим к виду:
    SELECT
    COUNT(`group_id`) - COUNT(DISTINCT `group_id`)
    FROM
    `user_group`
    WHERE
    `user_id` IN (:user1,:user2)

    Если отнять общее число групп двух пользователей и число групп, с учётом уникальности group_id, то в рузультате получим наше искомое total shared groups — сколько общих групп у двух пользователей.

    Как ещё можно было решить задачу?
    SELECT
    COUNT(*)
    FROM
    (
    SELECT
    `group_id`
    FROM
    `user_group`
    WHERE
    `user_id` IN (:user1,:user2)
    GROUP BY
    `group_id`
    HAVING
    COUNT(*) > 1
    ) as `shared_groups`

    Такой подход я встречал довольно часто. Но у него есть один существенный минус — использование подзапроса. Если :user1 или :user2 не передаются в запрос, а подставляются динамически из запроса верхнего уровня (например, какой-нибудь `user1`.`user_id`), то данный вариант выдаст ошибку.

    MySQL функция COUNT — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

    В этом учебном пособии вы узнаете, как использовать MySQL функцию COUNT с синтаксисом и примерами.

    Описание

    MySQL функция COUNT возвращает количество выражений.

    Синтаксис

    Синтаксис MySQL функции COUNT:

    SELECT COUNT(aggregate_expression)
    FROM tables
    [WHERE conditions];

    ИЛИ синтаксис для функции COUNT при группировке результатов по одному или нескольким столбцам:

    SELECT expression1, expression2, … expression_n,
    COUNT(aggregate_expression)
    FROM tables
    [WHERE conditions]
    GROUP BY expression1, expression2, … expression_n;

    Параметры или аргументы

    expression1, expression2, … expression_n — выражения, которые не инкапсулированы в функции COUNT и должны быть включены в предложение GROUP BY в конце SQL запроса.

    aggregate_expression — это столбец или выражение, чьи ненулевые значения будут подсчитаны.

    tables — таблицы, из которых вы хотите получить записи. Должна быть хотя бы одна таблица, указанная в предложении FROM.

    WHERE conditions — необязательный. Это условия, которые должны быть выполнены для выбранных записей.

    Включает только значения NOT NULL

    Не все это понимают, но функция COUNT будет включать только те записи, где значение выражения COUNT ( expression ) не равно NULL. Когда выражение содержит значение NULL, оно не включается в вычисления COUNT.

    Рассмотрим пример функции COUNT, демонстрирующий, как значения NULL оцениваются функцией COUNT.

    Например, если у вас есть следующая таблица под названием suppliers:

    supplier_idsupplier_namestate
    1AppleNY
    2Meat
    3Cheese

    И если вы запустите следующий оператор SELECT, который использует функцию COUNT:

    SELECT COUNT(supplier_id) FROM suppliers;

    SELECT COUNT(supplier_id)

      FROM suppliers;

    Этот пример COUNT вернет 3 строки, поскольку все значения supplier_id в наборе результатов запроса NOT NULL.

    Однако если вы запустили следующий оператор SELECT, который использует функцию COUNT:

    SELECT COUNT(state) FROM suppliers;

    SELECT COUNT(state)

      FROM suppliers;

    Этот пример COUNT будет возвращать только 1 строку, поскольку только одно значение state в результирующем наборе запроса NOT NULL. Это будет первая строка, где state = ‘NY’. Это единственная строка, которая включена в расчет функции COUNT.

    Применение

    Функция COUNT может использоваться в следующих версиях MySQL:

    • MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23

    Пример с одним выражением

    Рассмотрим примеры MySQL функции COUNT, чтобы понять, как использовать функцию COUNT в MySQL.

    Например вы можете узнать, сколько сотрудников имеют salary (зарплату) выше 25 000 долларов в год:

    SELECT COUNT(*) AS «Количество сотрудников» FROM employees WHERE salary > 25000;

    SELECT COUNT(*) AS «Количество сотрудников»

      FROM employees

    WHERE salary > 25000;

    В этом примере функции COUNT, выражению COUNT (*) присвоили алиас «Количество сотрудников». В результирующем наборе в качестве имени поля будет отображаться «Количество сотрудников».

    Пример с использованием DISTINCT

    Вы можете использовать предложение DISTINCT в функции COUNT. Например, приведенный ниже SQL запрос возвращает количество уникальных отделов, в которых хотя бы один сотрудник зарабатывает более 35 000 долларов в год.

    SELECT COUNT(DISTINCT department) AS «Unique departments» FROM employees WHERE salary > 35000;

    SELECT COUNT(DISTINCT department) AS «Unique departments»

      FROM employees

    WHERE salary > 35000;

    Пример с использованием GROUP BY

    В некоторых случаях вам потребуется использовать предложение GROUP BY с функцией COUNT.

    Например, вы можете использовать функцию COUNT, чтобы вернуть department (отдел) и number of employees (количество сотрудников в связанном отделе), которые находятся в state (штате) «NY».

    SELECT department, COUNT(*) AS «Number of employees» FROM employees WHERE state = ‘CA’ GROUP BY department;

    SELECT department, COUNT(*) AS «Number of employees»

      FROM employees

    WHERE state = ‘CA’

    GROUP BY department;

    Поскольку вы указали один столбец в своем операторе SELECT, который не инкапсулирован в функцию COUNT, вы должны использовать предложение GROUP BY. Поэтому поле department должно быть указано в разделе GROUP BY.

    агрегатных функций — MySQL с предложением и Count ()

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
    4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
    5. Реклама Обратитесь к разработчикам и технологам со всего мира
    6. О компании

    Загрузка…

    .

    MySQL ИМЕЕТ

    Резюме : В этом руководстве вы узнаете, как использовать предложение MySQL HAVING для определения условия фильтрации для групп строк или агрегатов.

    Введение в MySQL HAVING clause

    Предложение HAVING используется в операторе SELECT для определения условий фильтрации для группы строк или агрегатов.

    Предложение HAVING часто используется с предложением GROUP BY для фильтрации групп на основе заданного условия.Если предложение GROUP BY опущено, предложение HAVING ведет себя как предложение WHERE .

    Ниже показан синтаксис предложения HAVING :

     

    SELECT select_list ОТ table_name ГДЕ search_condition ГРУППА ПО group_by_expression ИМЕЕТ group_condition;

    В этом синтаксисе вы указываете условие в предложении HAVING . Если строка, которая создается предложением group by, приводит к тому, что group_condition оценивается как истина, запрос будет включать ее в набор результатов.

    Обратите внимание, что предложение HAVING применяет условие фильтрации к каждой группе строк, а предложение WHERE применяет условие фильтрации к каждой отдельной строке.

    MySQL оценивает предложение HAVING после предложений FROM , WHERE , SELECT и GROUP BY и до предложений ORDER BY и LIMIT .

    Обратите внимание, что стандарт SQL определяет, что HAVING оценивается до предложения SELECT и после предложения GROUP BY .

    MySQL HAVING clause examples

    Давайте рассмотрим несколько примеров использования HAVING clause, чтобы увидеть, как это работает. Для демонстрации мы будем использовать таблицу orderdetails в образце базы данных.

    Следующее использует предложение GROUP BY для получения номеров заказов, количества товаров, проданных за заказ, и общих продаж для каждого из orderdetails таблицы:

     

    SELECT номер заказа, СУММ (количество заказов) КАК itemsCount, СУММА (цена за каждый * заказанное количество) КАК Итого ОТ Информация для заказа ГРУППА ПО номеру заказа;

    Попробовать

    Теперь вы можете определить, для какого заказа общий объем продаж превышает 1000 , используя предложение HAVING следующим образом:

     

    SELECT номер заказа, СУММ (количествоЗаказано) КАК itemsCount, СУММА (цена за каждый * заказанное количество) КАК Итого ОТ Информация для заказа ГРУППА ПО номер заказа ИМЕЕТ всего> 1000;

    Попробовать

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

    В следующем примере предложение HAVING используется для поиска заказов, общая сумма которых превышает 1000 и содержит более 600 элементов:

     

    SELECT номер заказа, СУММ (количествоЗаказано) КАК itemsCount, СУММА (цена за каждый * заказанное количество) КАК Итого ОТ Информация для заказа ГРУППА ПО номеру заказа ИМЕЕТ всего> 1000 И itemsCount> 600;

    Попробовать

    Предположим, что вы хотите найти все заказы, которые находятся в состоянии отгрузки и общая сумма которых превышает 1500, вы можете присоединиться к таблице orderdetails с таблицей orders , используя INNER JOIN и примените условие к столбцу status и total aggregate, как показано в следующем запросе:

     

    SELECT а.номер заказа, статус, СУММА (цена за каждый * заказанное количество) итого ОТ подробности заказа Заказы INNER JOIN b ON b.ordernumber = a.ordernumber ГРУППА ПО номер заказа, статус ИМЕЕТ status = "Отправлено" И всего> 1500;

    Попробовать

    Предложение HAVING полезно только тогда, когда вы используете его с предложением GROUP BY для генерации вывода отчетов высокого уровня. Например, вы можете использовать предложение HAVING , чтобы ответить на такие вопросы, как определение количества заказов в этом месяце, этом квартале или этом году, общий объем продаж которых превышает 10K.

    В этом руководстве вы узнали, как использовать предложение MySQL HAVING с предложением GROUP BY для определения условий фильтрации для групп строк или агрегатов.

    • Было ли это руководство полезным?
    • Да Нет
    .

    count — mysql Max, имеющий несколько экземпляров

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
    4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
    5. Реклама Обратитесь к разработчикам и технологам со всего мира
    .

    MySQL COUNT ()

    Агрегатная функция COUNT () возвращает количество строк в наборе результатов оператора SELECT .

    Результатом COUNT () является значение BIGINT .

    Если совпадающих строк нет, возвращается значение 0 .

    Пример:

    ВЫБРАТЬ СЧЕТЧИК (*) ОТ сакилы.актер;

    Результат:

    Это говорит нам о 204 записях в таблице субъект базы данных sakila .

    Если мы добавим предложение WHERE , мы сможем сузить набор результатов. Как это:

    ВЫБРАТЬ СЧЕТЧИК (*) ОТ sakila.actor ГДЕ first_name как «B%»;

    Результат:

    В приведенном выше примере показано, что имеется 10 записей, в которых значение поля first_name начинается с буквы «B».

    Вы можете видеть, что если мы удалим функцию COUNT (*) , мы получим список всех возвращенных записей. Подсчитав количество строк, мы видим, что было возвращено 10 записей.

    ВЫБРАТЬ * ОТ sakila.actor ГДЕ first_name как «B%»;

    Результат:

    Варианты

    Функцию COUNT () можно использовать по-разному.Вы можете получить разные результаты в зависимости от того, как вы его используете, поэтому стоит понять, как это работает.

    COUNT ( выражение )

    Возвращает количество строк, содержащих значения, отличные от NULL .

    В следующем примере извлекаются все записи, в которых поле last_name не содержит значения NULL :

    ВЫБРАТЬ СЧЕТЧИК (фамилия) ОТ сакилы.актер;

    СЧЕТ (*)

    Возвращает количество строк в результирующем наборе независимо от того, содержат ли они NULL значений.

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

    ВЫБРАТЬ СЧЕТЧИК (*) ОТ сакилы.актер

    COUNT (DISTINCT выражение )

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

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

    ВЫБРАТЬ СЧЕТЧИК (РАЗЛИЧИЕ last_name) ОТ sakila.actor;

    Вы можете использовать COUNT () с предложением GROUP BY , чтобы обеспечить количество записей в каждой группе.

    Пример:

    ВЫБЕРИТЕ last_name, COUNT (*) ОТ сакилы.актер ГРУППА ПО last_name;

    Результат:

    В приведенном выше примере сгруппированы все фамилии и указано количество каждой из них. Например, мы видим, что три актера имеют фамилию ALLEN , только у одного ASTAIRE и т. Д.

    ИМЕЕТ пункт

    Вы можете добавить предложение HAVING в предложение GROUP BY для дальнейшей фильтрации результатов.

    Здесь мы добавляем предложение HAVING с другой функцией COUNT () , чтобы возвращать только те записи, у которых счетчик больше 3:

    ВЫБЕРИТЕ last_name, COUNT (*) ОТ sakila.actor ГРУППА ПО last_name ИМЕЕТ СЧЕТ (*)> 3;

    Результат:

    Контроль потока

    Вы можете объединить COUNT () с функциями управления потоком для большей функциональности.Например, вы можете использовать функцию IF () как часть выражения, которое будет использоваться в функции COUNT () . Это может быть очень полезно для быстрой разбивки данных в базе данных.

    Рассмотрим эти данные в фильме таблица:

    Вы можете видеть, что есть поле с названием length , и длина каждого фильма записана в этом поле.

    Таким образом, мы можем использовать это поле для следующих действий:

    ВЫБРАТЬ COUNT (IF (length <80,1; NULL)) 'Короткий', COUNT (IF (length BETWEEN 80 AND 120,1; NULL)) 'Средний', COUNT (IF (длина> 120,1; NULL)) ‘Длинный’ ИЗ пленки;

    Результат:

    Приведенный выше оператор разделяет результаты на три группы; Short , Medium и Long , в зависимости от длины пленки.Мы используем функцию IF () для сравнения длины пленки с заданным выражением, и в зависимости от результата она возвращает 1 или NULL . Если он вернет 1 , он будет засчитан под заголовком столбца, который мы назвали ( Short , Medium или Long ).

    В примерах на этой странице используется образец базы данных Sakila.

    .
    2020 сервер не отвечает либо локальный сокет сервера mysql неверно настроен: Сервер не отвечает (или сокет локального сервера MySQL неправильно настроен) в WAMP server

    2020 сервер не отвечает либо локальный сокет сервера mysql неверно настроен: Сервер не отвечает (или сокет локального сервера MySQL неправильно настроен) в WAMP server

    Сервер не отвечает (или сокет локального сервера MySQL неправильно настроен) в WAMP server

    в настоящее время я получаю эту ошибку в моем phpmyadmin:

    Я попытался погуглить и дать каждому решению, которое я нашел, попробовать. К сожалению, у меня ничего не получилось.

    кстати, я использую WAMP-сервер.

    Ниже приведен мой файл конфигурации config.Инк.php от C:\wamp\apps\phpmyadmin3.2.0.1 — …

    <?php
    
    /* Servers configuration */
    $i = 0;
    
    /* Server: localhost [1] */
    $i++;
    $cfg['Servers'][$i]['verbose'] = 'localhost';
    $cfg['Servers'][$i]['host'] = 'localhost';
    $cfg['Servers'][$i]['port'] = '';
    $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
    $cfg['Servers'][$i]['connect_type'] = 'tcp';
    $cfg['Servers'][$i]['extension'] = 'mysqli';
    $cfg['Servers'][$i]['auth_type'] = 'config';
    $cfg['Servers'][$i]['user'] = 'root';
    $cfg['Servers'][$i]['password'] = '';
    $cfg['Servers'][$i]['AllowNoPassword'] = true;
    
    /* End of servers configuration */
    
    $cfg['DefaultLang'] = 'en-utf-8';
    $cfg['ServerDefault'] = 1;
    $cfg['UploadDir'] = '';
    $cfg['SaveDir'] = '';
    
    ?>
    

    6 ответов


    порт mysql по умолчанию-3306 можете ли вы попробовать положить его, а затем попробовать


    здесь возможные решения: http://forums.mysql.com/read.php?35,64808,254785#МСГ-254785 и вот: http://forums.mysql.com/read.php?35,23138,254786#МСГ-254786

    все это настройки конфигурации. В моем случае у меня есть два компьютера со всем, что синхронизировано в XAMPP. На другом компьютере phpMyAdmin запускался нормально. Таким образом, проблема в моем случае, казалось, была с конкретным компьютером, а не с конфигурационными файлами. Остановка брандмауэра не помощь.

    наконец, более или менее случайно, я наткнулся на этот файл:

    …path_to_XAMPP\программе XAMPP…\mysql\bin\mysqld-отладка.exe

    двойной щелчок этого файла чудесным образом вернул мне PhpMyAdmin. Размещено здесь на случай, если кому-то это тоже поможет.

    Mysql workbench создание базы данных: MySQL Workbench. Создание базы данных

    Mysql workbench создание базы данных: MySQL Workbench. Создание базы данных

    MySQL Workbench. Создание базы данных

    С появлением в составе MySQL программы MySQL Workbench был значительно упрощён процесс создания баз данных (БД). Ведь то, что раньше приходилось делать вручную с помощью SQL скрипта и командной строки, теперь можно сделать «в визуальном режиме» с помощью дружественного графического интерфейса.

    Рассмотрим процесс создания БД с помощью MySQL Workbench более подробно.

    На скриншоте ниже представлен общий вид окна программы MySQL Workbench.

     

    Для того чтобы создать БД нужно в левой панели в области со списком БД (обозначена как SCHEMAS) кликнуть правой кнопкой мыши и в контекстном меню выбрать «Create Schema».

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

    После этого, для продолжения создания БД, следует нажать кнопку «Apply”. В появившемся диалоговом окне будет показан сгенерирванный MySQL Workbench SQL скрипт создания БД. В случае необходимости, этот скрипт можно отредактировать прямо в этом окне.

    В верхней части окна имеется область Online DDL. Она предназначена для установки параметров выполнения скрипта. Эти параметры могут быть полезны при манипуляциях с уже существующей БД. При создании БД рекомендуется оставить значения по умолчанию («Default»).

    При нажатии кнопки «Apply» новая БД будет создана.

    Для того, чтобы закрыть окно следует нажать кнопку «Finish».

    Таким образом, с помощью всего на всего двух несложных шагов можно создать новую БД MySQL.

    Визуальное проектирование базы данных в MySQL Workbench / Хабр

    Цель данного поста — помочь начинающему разработчику быстро освоится и спроектировать простенькую базу с помощью инструмента для визуального проектирования баз данных MySQL Workbench от компании Oracle и получить её ER-модель и SQL-дамп.

    Ну что же, меньше слов да больше смысла! Внешний вид окна программы, раздел «Моделирование данных» выглядит так:

    Для того, чтобы открыть существующую модель надо нажать на ссылку: Open Existing EER Model, для создания новой модели – выбрать параметр: Create New EER Model, чтобы создать модель «сущность-связь» из существующей базы данных – нажать на параметр: Create EER Model From Existing Database, а для создания EER модели из SQL скрипта нужно выбрать: Create EER Model From SQL Script.
    Для создания новой модели, воспользуемся ссылкой Create New EER Model, после нажатия на неё отобразится окно с параметрами:

    Для начала необходимо создать таблицы, для этого нажмём на кнопку Add Table, появится следующая форма:

    Сначала создадим таблицу users, которая будет хранить данные о пользователях информационной системы, в поле table Name впишем имя таблицы, в разделе формы Columns создадим поля таблицы:
    — Первое поле id будет содержать уникальный номер пользователя, зададим ему свойства: Auto Increment, Not Null, Primary key и Unique, в разделе Data type выберем целочисленный тип integer.
    — Второе поле fio, где будет хранится Ф.И.О. пользователя, установим полю свойства: Not Null, Primary key,, в разделе Data type выберем строковый тип VARCHAR и зададим количество символов в 255.
    — Третье поле login, будет содержать логин пользователя, оно должно быть уникальным, как и поле id, поэтому установим ему свойство Unique и зададим количество символов в 255.
    — Следующие поля: password содержащее пароль, e_mail содержащее адрес электронной почты и поле type содержащее тип пользователя будут без особых свойств, со строковым типом VARCHAR длинной в 255 символов, за исключением последнего поля type которому хватит с 45 символов.
    После проделанных манипуляций форма с именем таблицы users будет выглядеть так:

    На диаграмме появится таблица users c полями и индексами:

    Аналогичным способом создадим таблицу settings с настройками доступа к базе данных ИС, содержащую поля id, host для указания имени хоста (адреса сервера), db – имени базы данных, user и password с именем пользователя и паролем, для установки ИС на удалённый сервер.

    Далее по уже известному методу создадим таблицу shops которая будет хранить данные о магазинах в полях: id типа integer – ключевое, ненулевое, уникальное с автоинкрементом, поле name хранящее название магазина, поле address – его физический адрес, поле tel – телефон магазина, site – интернет сайт магазина и поле email с электронным адресом магазина.

    Затем создадим таблицу products хранящую данные о продукции магазина в полях: id типа integer – ключевое, ненулевое, уникальное с автоинкрементом, поле name хранящее название магазина, ключевое, ненулевое поле целочисленного типа shop_id хранящее номер магазина, поле type_id с информацией о номере товара из таблицы видов продукции. Поле brand – брэнд изготовителя длинной в 255 символов, поле model – с моделью товара, поле data – с данными и характеристиками товара типа Tinytext, поле img с полным адресом до изображения товара длинной в 255 символов, и поля price с ценой товара и warranty с информацией о сроках гарантии на товар длинной в 45 символов.

    Созданные нами таблицы settings, shops и products выглядят следующим образом:

    Далее нам понадобится таблица хранящая тип продуктов product_type, она состоит из уникального, ненулевого, ключевого поля id с автоинкрементом целочисленного типа, и уникального поля name длинной в 255 символов, которое содержит название вида продуктов.

    Вид таблицы таков:

    Последние две таблицы это orders и deliveries, первая содержит информацию о заказах клиентов, а последняя данные о доставке продукции.

    Поля таблицы orders: id ключевое, ненулевое, уникальное поле целочисленного типа с автоинкрементом, поле shop_id содержащее номер магазина – ключевое, ненулевое целочисленного типа, поле product_id хранящее номер продукта – ключевое, ненулевое целочисленного типа, поле fio с номером пользователя совершившего заказ — ключевое, ненулевое целочисленного типа, поле date c датой заказа – типа DATE, поле quantity с количеством заказанных товаров – целочисленного типа, поле tel с номером телефона заказчика – строкового типа длинной в 255 символов и поле confirm содержащее информацию о подтверждении заказа – логического типа.

    Поля таблицы deliveries: order_id с номером заказа — ключевое, ненулевое, уникальное поле целочисленного типа с автоинкрементом, поле поле fio с номером пользователя совершившего заказ — ключевое, ненулевое целочисленного типа, поле address хранящее адрес доставки товара указанный клиентом – строкового типа длинной в 255 символов, поле time хранящее желаемое время доставки товара – строкового типа длинной в 255 символов, поле date с датой совершения заказа клиентом – типа DATE и поле логического типа confirm хранящее информацию о доставке товара.

    Таблицы orders и deliveries выглядят так:

    Связи таблиц

    Мы создали базу данных, состоящую из семи таблиц, теперь необходимо связать таблицы, мы уже создали ключевые поля целочисленного типа, они и станут основой для связывания.
    Для того чтобы связать две таблицы к примеру products и product_type, необходимо дважды щёлкнуть левой кнопкой мыши на диаграмму с таблицей products и выбрать вкладку Foreign keys (внешние ключи), далее в поле Foreign key name ввести уникальное имя внешнего ключа, дважды щёлкнуть по вкладке Referenced table и выбрать таблицу product_type, затем в форме расположенной правее выбрать ссылающееся поле type_id и выбрать в всплывающем списке поле id.

    Таким образом, оба поля таблицы оказываются связанны, затем нужно задать тип отношений связи между таблицами, откроем окно, кликнув на появившуюся связь между таблицами, и выберем вкладку Foreign Key и в разделе Cardinality выберем тип связи один ко многим, и закроем окно. На диаграмме отобразится связь таблиц:

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

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

    В реляционной модели отношение всегда находится в первой нормальной форме по определению понятия отношение. Что же касается различных таблиц, то они могут не быть правильными представлениями отношений и, соответственно, могут не находиться в первой нормальной форме. Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме и каждый не ключевой атрибут неприводимо (функционально полно) зависит от её потенциального ключа. База данных будет находиться в третьей нормальной форме, если она приведена ко второй нормальной форме и каждый не ключевой столбец независим друг от друга.

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

    Большинство таблиц находятся в отношении один-ко-многим, за исключением таблиц deliveries и orders находящихся в отношении одни-к-одному, т.к. доставлен, может быть только одни заказ, т.е. у одного заказа только одна доставка. Остальные связи наглядно указаны выше.

    Теперь загрузим нашу базу данных на сервер. Для этого создадим новое подключение к базе данных, щёлкнув по ссылке New connection в стартовом окне программы:

    Затем заполним поля в открывшимся окне:

    Укажем имя соединения в поле Connection Name, выберем метод соединения в списке Connection Method, зададим имя хоста и порт во вкладке Parameters, укажем имя пользователя и пароль если он есть и нажмём на кнопку ОК. Затем откроем вкладку EER Diagram, в панели выберем пункт Database и нажмём на параметр Forward Engineer:

    После того как появится окно, нажимаем на кнопку “Next”, выбираем параметр Export MySQL Table Objects и нажимаем на кнопку “Next”:

    После нажатия кнопки появится вкладка с SQL кодом, можно сохранить его нажав кнопку “Save to file” если это необходимо, а затем нажать на кнопку “Next”. Появится окно с параметрами соединения:

    Проверяем, верны ли параметры подключения и нажимаем на кнопку “Execute”, если в SQL коде не содержится ошибок, то после исполнения кода мы увидим окно со списком таблиц, иначе выведется сообщение об ошибке. Теперь наша база загружена на сервер.

    Благодарю за внимание, скачать саму программу можно здесь.

    UPD:

    Некоторых хабравчан интересовала возможность отображения линий связей таблиц в режиме поле-к-полюпо совету одного из пользователей я приведу небольшое пояснение о том как изменить вид связей и таблиц, для этого необходимо выбрать следующий параметр в разделе меню Relationship Notation:

    После этого связи таблиц примут вид:

    Также есть возможность изменить вид таблиц, для этого нужно поставить галочку в вышеуказанном разделе меню и в нижеследующем Object Notation:

    Вот так выглядит таблица на диаграмме приведенная к стандарту IDEF1X:

    Благодарю за дельные комментарии!

    быстрый старт, управление схемой данных

    Веб-разработчик растёт вместе с проектами, которые он создаёт и развивает. С ростом проектов увеличивается сложность программной части, неизбежно возрастает количество обрабатываемых ею данных, а так же сложность схемы данных. Общение с другими вебщиками показывает, что огромной популярностью среди нас пользуются базы данных MySQL, а для управления ими — небезызвестный PHPMyAdmin. Переходя от маленьких проектов к большим, от cms к фреймворкам, многие, как и я, остаются верны MySQL. Однако для проектирования сложной базы данных с большим количеством таблиц и связей, возможностей PHPMyAdmin катастрофически не хватает. Поэтому я решил написать обзор MySQL Workbench — замечательной бесплатной десктопной программы для работы с MySQL.


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

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

    Должен сказать, что программа действительно великолепная. Она позволяет быстро и с удовольствием накидывать схемы данных проекта, проектировать сущности и связи между ними, безболезненно внедрять изменения в схему и так же быстро и безболезненно синхронизировать её с удалённым сервером. А графический редактор EER-диаграмм, напоминающих забавных таракашек, позволяет увидеть общую картину модели данных и насладиться её лёгкостью и элегантностью 🙂 После первой же пробы этот инструмент становится незаменимым помощником в боевом арсенале веб-программиста.

    Скачать MySQL Workbench

    Дистрибутив MySQL Workbench доступен на этой странице. Самая свежая версия программы на момент написания статьи — Version 6.1. Перед скачиванием требуется выбрать одну из следующих платформ:

    • Microsoft Windows (доступны MSI Installer и ZIP архив)
    • Ubuntu Linux
    • Fedora
    • Red Hat Enterprise Linux / Oracle Linux
    • Mac OS X

    После выбора платформы вам предлагают зарегистрироваться или авторизоваться в Oracle. Если не хотите, внизу есть ссылка «No thanks, just start my download» — жмите на неё 😉

    Начало работы

    Стартовый экран программы отражает основные направления её функциональности — проектирование моделей баз данных и их администрирование:

    В верхней части экрана находится список подключений к MySQL серверам ваших проектов, а список последних открытых моделей данных — в нижней части экрана. Работа обычно начинается с создания схемы данных или загрузки существующей структуры в MySQL Workbench. Приступим к работе!

    Создание и редактирование модели данных

    Для добавления модели нажимаем плюсик рядом с заголовком «Models» или выбираем «File → New Model» (Ctrl + N):

    На этом экране вводим имя базы данных, выбираем кодировку по умолчанию и, если нужно, заполняем поле комментария. Можно приступать к созданию таблиц.

    Добавление и редактирование таблицы

    Список баз данных проекта и список таблиц в пределах базы данных будет располагаться во вкладке «Physical Schemas». Чтобы создать таблицу, дважды кликаем на «+Add Table»:

    Откроется удобный интерфейс для редактирования списка полей и их свойств. Здесь мы можем задать название поля, тип данных, а так же установить для полей различные атрибуты: назначить поле первичным ключом (PK), пометить его Not Null (NN), бинарным (BIN), уникальным (UQ) и другие, установить для поля авто-инкремирование (AI) и значение по умолчанию (Default).

    Управление индексами

    Добавлять, удалять и редактировать индексы таблиц можно во вкладке «Indexes» интерфейса управления таблицей:

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

    Связи между таблицами

    Установка внешних ключей и связывание таблиц возможно только для таблиц InnoDB (эта система хранения данных выбирается по умолчанию). Для управления связями в каждой таблице находится вкладка «Foreign Keys»:

    Для добавления связи открываем вкладку «Foreign Keys» дочерней таблицы, вводим имя внешнего ключа и выбираем таблицу-родителя. Далее в средней части вкладки в графе Column выбираем поле-ключ из дочерней таблицы, а в графе Referenced Column — соответствующее поле из родительской таблицы (тип полей должен совпадать). При создании внешних ключей в дочерней таблице автоматически создаются соответствующие индексы.

    В разделе «Foreign Key Options» настраиваем поведение внешнего ключа при изменении соответствующего поля (ON UPDATE) и удалении (ON DELETE) родительской записи:

    • RESTRICT — выдавать ошибку при изменении / удалении родительской записи
    • CASCADE — обновлять внешний ключ при изменении родительской записи, удалять дочернюю запись при удалении родителя
    • SET NULL — устанавливать значение внешнего ключа NULL при изменении / удалении родителя (неприемлемо для полей, у которых установлен флаг NOT NULL!)
    • NO ACTION — не делать ничего, однако по факту эффект аналогичен RESTRICT

    В приведённом примере я добавил к дочерней таблице UserProfile внешний ключ для связи с родительской таблицей User. При редактировании поля userId и удалении позиций из таблицы User аналогичные изменения будут автоматически происходить и со связанными записями из таблицы UserProfile.

    Наполнение таблицы базовыми данными

    При создании проекта в базу данных часто нужно добавлять стартовые данные. Это могут быть корневые категории, пользователи-администраторы и т.д. В управлении таблицами MySQL Workbench для этого существует вкладка «Inserts»:

    Как видно из примера, в случае, если перед записью в базу данных к данным нужно применить какую-то функцию MySQL, это делается с помощью синтаксиса \func functionName(‘data’), например, \func md5(‘password’).

    После ввода данных необходимо сохранить их в локальную базу данных нажатием на кнопку «Apply Changes».

    Создание EER диаграммы (диаграммы «сущность-связь»)

    Для представления схемы данных, сущностей и их связей в графическом виде в MySQL Workbench существует редактор EER-диаграмм. Для создания диаграммы в верхней части экрана управления базой данных дважды кликаем на иконку «+Add Diagram»:

    В его интерфейсе можно создавать и редактировать таблицы, добавлять между ними связи различных типов. Чтобы добавить уже существующую в схеме таблицу на диаграмму, просто перетащите её из панели «Catalog Tree».

    Для экспорта схемы данных в графический файл выберите «File → Export», а затем один из вариантов (PNG, SVG, PDF, PostScript File).

    Импорт существующей схемы данных (из SQL дампа)

    Если у нас уже есть схема данных, её можно без труда импортировать в MySQL Workbench для дальнейшей работы. Для импорта модели из SQL файла выбираем «File → Import → Reverse Engineer MySQL Create Script…», после чего выбираем нужный SQL файл и жмём «Execute >»

    В MySQL Workbench так же предусмотрен импорт и синхронизация модели данных нарямую с удалённым сервером. Для этого потребуется создать подключение удалённого доступа к MySQL, о которых я расскажу в продолжении данного обзора.

    Демо-проект из статьи доступен для скачивания по этой ссылке. Желаю успехов и красивых таракашек схем!

    Как создать базу данных MySQL с помощью Workbench?

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


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

    Как создать базу данных MySQL? Можно создавать таблицы вручную и устанавливать между ними связи, но это не так удобно.

    Специально для этого была создана бесплатная программа Workbench. С её помощью можно визуально создавать базы данных MySQL. Смоделировать их при помощи софта проще, удобнее и в разы быстрее.

    Workbench поможет создать базу данных MySQL

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

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

    1. Сначала нужно открыть новую модель, это делается через меню или комбинацией клавиш Ctrl+N:
    2. Первый шаг при создании базы данных, это добавление таблицы, поэтому выбираем соответствующую функцию:
    3. Дальше выполняется заполнение таблицы. Указывайте имя и атрибуты, учитывайте, что один из атрибутов это главный ключ, помеченный флажком. Заранее думайте, как потом таблицы будут связываться между собой:
    4. Заполнив необходимые данные, создавайте диаграмму для определения связей между субъектами:
    5. Вы увидите таблицу в рабочей области. Для удобства, можно развернуть структуры таблиц:
    6. Теперь необходимо задать связи между элементами, это делается специальным инструментом на рабочей панели:
    7. В итоге у вас должны быть представлены таблицы в рабочей области и между ними установлены связи:
    8. Двойной щелчок на связи открывает окно, в котором задаются дополнительные параметры:

    Выполнив все настройки и проделав каждое действие, вы получаете готовую MySQL базу данных. Теперь можно нажать на File, выбрать экспорт и перенести её куда угодно (в том числе и на хостинг).

    Вам может пригодиться решение серьезной проблемы. Ошибка 1062 при переносе базы данных нередко появляется, но с ней легко справиться.

    Теперь вам известно не только о моделировании новых баз данных, вы знаете, как создать таблицу в базе данных MySQL без серьезных знаний и усилий. Загружайте полезную программу, тренируйтесь, с ней работать намного проще.

    Вам также будет интересно:
    — Ошибка установки соединения с базой данных, что делать?
    — Секреты монетизации сайта
    — Бесконечный источник статей для блога

    подключение удалённого сервера и синхронизация с ним

    В первой части обзора программы MySQL Workbench я показал на примере основные принципы разработки модели данных и создания EER-диаграммы «сущность-связь». Пришло время применить MySQL Workbench в бою, поэтому сегодня я расскажу о создании подключения к удалённому серверу, выгрузке mwb модели на сервер, синхронизации обновлений схемы данных в процессе работы, а так же об управлении MySQL сервером с помощью программы MySQL Workbench.


    Экспорт модели MySQL Workbench в SQL дамп

    Самый быстрый путь для того, чтобы схема данных из MySQL Workbench попала на сервер — создание SQL дампа mwb модели. Для этого не потребуется создавать удалённое подключение в программе, однако этот способ хорош лишь в случае, если требуется однократная заливка структуры и базовых данных на сервер. Дальнейшая поддержка, обновление и синхронизация модели данных в этом случае будет весьма проблематична (хотя, в MySQL Workbench есть функционал и для этого, но он не входит в планы моего обзора). Итак, открываем нашу модель и выбираем «File → Export → Forward Engineer SQL CREATE Script…» (Ctrl + Shift + G):

    Если требуется записать дамп в файл, указываем путь до файла в поле «Output SQL Script File» (если оставить поле пустым, SQL скрипт можно будет скопировать на последнем шаге в буфер обмена). Мы видим окно настроек экспорта. Настройки стандартные, чтобы понять их суть, достаточно перевести их названия. Поясню только то, что галочка «Generate INSERT Statements for Tables» включает в дамп базовые данные, располагающиеся во вкладке «Inserts» интерфейса редактирования таблиц модели. После нажатия «Next» мы видим список того, что вообще можно экспортировать. Для экспорта таблиц выбираем «Export MySQL Table Objects», а чтобы экспортировать их выборочно, нажимаем «Show Filter» и выбираем нужные нам таблицы:

    Нажав «Next» мы увидим в окне готовый SQL скрипт, откуда сможем скопировать его в буфер обмена или же записать в какой-либо файл.

    Путей, которыми структура и данные попадут к вам на сервер масса, а самый распространённый из них — импорт через PHPMyAdmin.

    Создание удалённого подключения к серверу MySQL

    А вот это уже необходимо для постоянной работы с сервером. Советую не лениться и всегда создавать эти подключения — они дают массу новых возможностей!

    На стартовом экране нажимаем плюсик рядом с надписью или выбираем «Database → Manage Connections…», в открывшемся окне нажимаем кнопку «New». MySQL Workbench предлагает три способа подключения к серверу: прямое подключение через пользователя, которому разрешён удалённый доступ к MySQL (обычно доступ таких пользователей ограничивают по ip), socket / pipe подключение через файл сокета (для Unix) или pipe (для Windows), а так же подключение через ssh-туннель (требует наличие ssh доступа и юзера ssh и MySQL с соответствующими правами). Рассмотрим варианты подключения к удалённому серверу:

    Через удалённого пользователя MySQL (Standard: TCP/IP)

    В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP»:

    • В поле «Host» вводим адрес сервера MySQL или адрес сайта (если MySQL сервер находится на самом веб сервере)
    • «Port» по умолчанию чаще всего 3306
    • Вводим имя пользователя MySQL («Username»), пароль («Password») и имя базы данных («Default Schema»)
    • После создания подключения нажимаем «Test Connection» и ждём сообщения «Connection parameters are correct.»

    Если что-то пошло не так, проверяем, включен ли у нашего пользователя удалённый доступ, а так же наличие ip адреса нашего компьютера в списке разрешённых для данного юзера.

    Через SSH туннель (TCP/IP over SSH)

    В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP over SSH»:

    • Тут нам придётся ввести адрес веб сервера («SSH Hostname») (порт, если нужно, указывается через двоеточие, например, «linuxsc.pro:18752»)
    • Вводим логин и пароль SSH пользователя («SSH Username» и «SSH Password»)
    • Адрес MySQL сервера нужно вводить относительно веб сервера, то есть в случае, если MySQL и веб сервер находятся на одной машине, в поле «MySQL Hostname» оставляем «127.0.0.1»
    • «MySQL Server Port» по умолчанию 3306
    • В поля «Username» и «Password» вводим логин и пароль пользователя MySQL
    • Проверяем подключение при помощи кнопки «Test Connection»

    Список доступных подключений можно просмотреть в диалоговом окне, выбрав «Database → Manage Connections…»

    Синхронизация структуры данных

    Для синхронизации структуры базы данных и локальной модели в MySQL Workbench существует специальный инструмент. Открыв нужную модель, выбираем «Database → Synchronize Model…» (Ctrl + Shift + G), после чего мы можем выбрать одно из сохранённых удалённых подключений и отредактировать его параметры. Жмём «Next» для подключения к базе данных:

    После подключения к серверу и нажатия «Next» мы увидим список моделей (в левой колонке) и баз данных (в правой колонке), доступных для синхронизации:

    Выбрав галочкой нужную базу и схему, нажимаем «Next», запуская процедуру сравнения структур удалённой базы данных и нашей модели:

    После завершения процедуры мы можем увидеть список различий между нашей схемой данных и удалённой базой:

    Тут мы можем настроить объединение таблиц: протолкнуть наши изменения на сервер («Update Source»), втянуть в локальную модель конфигурацию с сервера («Update Model») или игнорировать отличия («Ignore»). При чём, доступен как вариант настройки для всей базы, так и отдельно для каждой таблицы. При выделении одной из таблиц и выборе способа объединения мы можем видеть SQL запросы, которые выполнятся в процессе синхронизации, а нажав «Next» — увидим полный стек этих запросов:

    Просмотрев SQL запросы, нажимаем «Execute >», запуская этим выполнение синхронизации. Если всё пройдёт успешно, мы увидим такой отчёт:

    В случае возникновения ошибок их лог отобразится в этом же диалоговом окне. Некоторые из них разобраны в конце этой статьи 😉

    Выгрузка на сервер схемы и стартовых данных

    Описанная выше синхронизация осуществляет лишь объединение структуры схемы данных удалённой базы и локальной модели, но никак не затрагивает стартовые данные, внесённые в модель («Inserts»). Если требуется выгрузить их, выбираем «Database → Forward Engineer…» (Ctrl + G), затем выбираем одно из сохранённых ранее подключений (или создаём новое) и нажимаем «Next». В остальном механизм выгрузки аналогичен механизму экспорта mwb модели, описанному в начале статьи. Его можно так же использовать, если требуется простая выгрузка схемы данных на сервер без синхронизации.

    Администрирование базы данных

    MySQL Workbench может быть прекрасной альтернативой PHPMyAdmin и в администрировании данных. Потребуется лишь создать подключение к MySQL серверу. Поскольку я использую Workbench с самого старта разработки, настроенное подключение у меня уже имеется в наличии. Кликаем на нужное подключение на стартовом экране или выбираем «Database → Connect to Database…» (Ctrl + U) и выбираем подключение из списка.

    Список доступных для редактирования баз данных можно увидеть в левой панельке в разделе «SCHEMAS». Открыв нужную базу данных, можно увидеть список таблиц в ней:

    В правой же области мы можем видеть вкладки разных видов, к примеру, на скриншоте выше открыта вкладка составления SQL запроса, в которой есть масса полезных фишек и примочек, помогающих в его редактировании, которыми я, признаться, ни разу не пользовался 🙂 Выполнять запросы можно комбинацией клавиш Ctrl + Enter.

    Для просмотра, создания или редактирования записей нажимаем на нужную таблицу правой кнопкой и выбираем «Select Rows — Limit 1000» или выполняем нужный для выборки SQL запрос:

    В открывшейся вкладке мы увидим симпатичный и человекопонятный грид, в котором интуитивно и без труда сможем работать с данными. Протолкнуть изменения в базу можно при помощи кнопки «Apply», а отменить — кнопкой «Cancel» в нижней части вкладки редактора.

    Управление сервером, создание и восстановление бэкапов

    Создать backup базы данных очень просто, выбрав Server → Data Export при наличии активного подключения к удалённому серверу:

    Крутизна, да? 🙂 Можно бэкапить как всю базу, так и по частям. Можно хранить все бэкапы удобно и упорядоченно. Блин, можно всё что хочешь!

    Восстановить backup тоже проще простого. Выбираем Server → Data Import, находим нужный файл и не долго думая нажимаем «Start Import»:

    В общем, да, в MySQL Workbench есть целая куча всего для управления сервером баз данных: управление пользователями и их правами, управление настройками сервера (если у вашего пользователя есть соответствующий доступ). К примеру, выбрав Server → Server Status, мы можем посмотреть такую вот классную статистику нагрузки на MySQL:

    Такую красивую статистику просто скушать хочется! Приятно смотреть на такую эффективную эффективность моих ключей и индексов 🙂 А вот над буфером InnoDB нужно подумать.

    Вместо заключения (о некоторых подводных камнях)

    Вдохновившись, в заключении я хотел написать хвалебный отзыв о том, на сколько же крута MySQL Workbench. Однако уровень её крутизны, думаю, прослеживается на протяжении всего обзора, а вот о некоторых подводных неприятностях, с которыми мне пришлось столкнуться, стоит упомянуть.

    Программа периодически подвисает или «падает»

    Суть проблемы: некоторая неустойчивость MySQL Workbench прослеживалась у меня на разных компах с разными ОС. Видимо, разработчики о ней тоже знают — в процессе работы изменения записываются в *.bak файл, что не раз выручало меня после «падения».

    Решение: почаще сохраняться 😉 Так же практика показывает, что лучше не тыкать беспорядочно на всё подряд, а перед следующим действием ожидать завершения предыдущего.

    Ошибка «Error 1292: Incorrect date / datetime value» при синхронизации

    Суть проблемы: чаще всего такая ошибка возникает при попытке синхронизации с таблицей, в которой есть запись со значением ‘0000-00-00’ или ‘0000-00-00 00:00:00’ в полях типа DATE или DATETIME соответственно. В некоторых случаях настройки MySQL позволяют создавать такие записи, но не позволяют редактировать схему таблицы.

    Решение: вообще, при синхронизации или экспорте данных MySQL Workbench добавляет специальные запросы, как бы оборачивая основной SQL код:

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

    
    # Удалить эту строку из начала SQL кода
    SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
    ...
    # Удалить эту строку из конца SQL кода
    SET [email protected]_SQL_MODE;
                        

    Ошибка «Error 1005: Can’t create table ‘…’ (errno: 150)» при синхронизации

    Суть проблемы: обычно эта ошибка касается неправильной настройки внешних ключей (вкладка «Foreign Keys» в настройках таблиц). У меня она возникала в том случае, если я делал ключом поле с меткой NOT NULL, а в поведении внешнего ключа указывал SET NULL — это абсурд, ведь InnoDB не сможет установить значение NULL в поле, где такое значение запрещено.

    Решение: внимательно следим за настройкой поведения внешних ключей. Если необходимо поведение SET NULL, у поля-ключа в дочерней таблице не должен стоять флаг NOT NULL.

    Ошибка «Field … can not be null» при выгрузке стартовых данных

    Суть проблемы: независимо от настроек таблицы, все поля в «Inserts» имеют по умолчанию значение NULL, даже если такое значение не разрешено для данного поля. Соответственно, при выгрузке на сервер может возникнуть ошибка.

    Решение: при добавлении стартовых данных следим за тем, чтобы значение NULL оставалось лишь в тех полях, где это разрешено. Если нужно сделать поле пустой строкой, делаем финт ушами: ставим в него курсор, нажимаем пробел, затем стираем его (во всяком случае, я не придумал ничего получше на такой случай :)).

    Ошибка Сan’t connect to MySQL server on … (10061) при подключении

    Суть проблемы: говорят, что может быть несколько причин. Я встечал такую ошибку в случае, если в файле my.cnf была установлена настройка «skip-networking» — по сути она не даёт MySQL работать с сетью.

    Решение: закомментировать данную опцию:

    
    # skip-networking
                        

    Конец

    Итак, мой обзор программы MySQL Workbench в двух частях (кстати, первую часть можно найти тут) подходит к концу. Буду рад, если читатель почерпнет для себя в нём что-то полезное или интересное 🙂

    Приятной разработки!

    MySQL. Workbench. Проектируем БД. Теория и практика

    Данная статья посвящена проектированию БД. Основана на книге Д. Осипова “Базы данных и Delphi” и некотором личном опыте. В качестве инструмента БД я буду использовать программу MySQL Workbench 6.3 CE.

    Согласно Дмитрию Осипову при проектировании БД мы можем использовать как минимум 2 подхода.

    Первый – модель ER или по другому сущность-связь.

    И второй подход – нормализация.

    Модель сущность-связь (ER модель Питера Чена)

    Алгорим проектирования БД в псевдокоде можно изобразить, например так

    Выделить все сущности, подлежащие хранению в БД (отделы, сотрудники, заказы)

    Выявить атрибуты (у отделов – название, у сотрудников – имя, фамилия, зарплата, у заказов – имя, количество)

    Выявить взаимосвязи между сущностями – отсутствие, один к одному (1:1), один ко многим (1:M), многие ко многим (M:N). Связь один ко многим это когда в одном отделе работает несколько сотрудников, у одного поставщика несколько контрактов и так далее).

    Разделить сущности на сильные (независимые) и слабые (зависимые) – если есть взаимосвязь и одна сущность зависит от другой, то говорят, что зависимая сущность – слабая, независимая сильная. Пример – отделы и сотрудники.

    Полученную схему отобразить в диаграммах MySQL Workbench и сделать ForwardEngeneering для создания реальной физической базы данных.

    Нотации ER моделей

    -Нотация Питера Чена

    -Нотация Crow’s foot (“Воронья лапка”)

    Нотация Питера Чена

    Что касается нотации Питера Чена (схематического изображения), то она может выглядеть так…

     

    Вот принятые обозначения в нотации Питера Чена

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


    Нотация  Gordon Everest (Гордона Эверста). Под назаванием Crow’s Foot  или Fork (вилка).

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

    А вот пример из книги Дмитрия Осипова. Одна вертикальная черта означает “один”, воронья лапка справа “ко многим”.


    Нормализация базы данных

    В книге Д.Осипова говорится о 5 нормальных формах, для практической работы, на мой взгляд, достаточно четырех

    1NF – атомарность или 1 поле 1 значение.

    2NF – каждой таблице свой уникальный ключ.

    3NF – 1 сущность 1 таблица (моя интерпретация)

    4NF – каждую связь M:N (многие ко многим) разбить на многие к одному.

    В своей книге Дмитрий приводит такой пример, берет вот такую таблицу и последовательно приводит её к 4 нормальной форме.

    Как видно таблица – “плохая” в качестве БД, в одном поле несколько значений, уникального ключа нет, да и вообще все данные, все сущности в одной таблице, есть связи многие ко многим (авторы и жанры, и так далее). В общем, ни одной нормальной формы не соблюдено.

    Повторим за Дмитрием вкратце его шаги

    Приведение к 1NF – одно поле одно значение


    Приведение ко 2NF – прописывание уникального ключа таблице. На рисунке ниже указаны ключ и поля таблицы.


    Приведение к 3NF – разбиение на отдельные, независимые таблицы. Как видно из рисунка выше – все поля у нас в одной таблице, какие-то поля являются атрибутами для других, если смотреть при помощи модели Питера Чена. С точки зрения пользователя БД это очень, очень неудобно.  На 3 шаге сделаем следующее – разобьем 1 большую таблицу на несколько таблиц, соответствующих сущностям и свяжем их. Атрибуты сгруппируем по сущностям. Каждой таблице пропишем свой уникальный ключ. В результате, по книге Дмитрия Осипова, у нас получится следующее.


    4NF  – разбить каждую зависимость многие ко многим на 2 зависимости 1 ко многим.  Это можно сделать введя искусственную коммутационную таблицу.

    В нашем случае

    -1 автор может написать несколько книг. И также можно сказать – несколько авторов могли написать 1 книгу. Поэтому вводим тип сущности WRITERS_BOOKS

    -В 1 жанре может быть несколько книг. 1 книга может быть написана в нескольких жанрах. Вводим GENRES_BOOKS

    В принципе этот ряд можно было бы и продолжить

    -1 поставщик может иметь несколько контрактов. В 1 контракте может быть несколько поставщиков. Но тут наверное всё зависит от реальной задачи и ситуации. Нельзя угодить на все случаи жизни. А, конечно хочется)))

    Но остановимся на том, что написано в книге Дмитрия. Для понимания, думаю, этого достаточно.


    Как разбить связь многие ко многие (M:N) на 2 связи один ко многим (1:M) ?

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


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

    На входе

     

    В приведенном к 1NF виде

    На выходе

    Готовая реляционная БД MySQL, соответствующая 4 нормальным формам.

    Рисуем ER диаграмму

    Идём по алгоритму, описанному выше, позволю себе его напомнить


    Алгорим проектирования БД в псевдокоде можно изобразить, например так

    Выделить все сущности, подлежащие хранению в БД (отделы, сотрудники, заказы)

    Выявить атрибуты (у отделов – название, у сотрудников – имя, фамилия, зарплата, у заказов – имя, количество)

    Выявить взаимосвязи между сущностями – отсутствие, один к одному (1:1), один ко многим (1:M), многие ко многим (M:N). Связь один ко многим это когда в одном отделе работает несколько сотрудников, у одного поставщика несколько контрактов и так далее).

    Разделить сущности на сильные (независимые) и слабые (зависимые) – если есть взаимосвязь и одна сущность зависит от другой, то говорят, что зависимая сущность – слабая, независимая сильная. Пример – отделы и сотрудники.

    Полученную схему отобразить в диаграммах MySQL Workbench и сделать ForwardEngeneering для создания реальной физической базы данных.


    В реальной ситуации о полях таблицы (атрибутах сущностей) мы будем догадываться, например, у человека есть руки, у клиентов есть заказы, у складов есть товары и так далее, у книжного магазина есть книги, продавцы, клиенты, поставщики, филиалы, да что угодно! Список это можно перечислять до бесконечности!!!

    Важно при проектировании БД выделять те атрибуты, которые непосредственно относятся к решению задачи в техническом задании иначе из проектирования БД можно вообще не вылезти)))

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

    1 и 2 Этап – поиск сущностей и атрибутов

    Cущности (в скобках атрибуты)

    1. Supplier

    2. Contracts (ContrDate)

    3. Order (OrderDate)

    4. Writer

    5. Book (Titile) // <<Этой сущности не было в таблице, мы увидели её и создали

    6. Genre

    7. Publisher

    8. Deliveries (Amount, Price) // <<Этой сущности не было в таблице, мы увидели её и создали

    Как отделить сущность от атрибута?

    Верный знак – связь 1:1. Например, у контракта может быть только одна дата. У заказов – аналогично. У книг – только одно название. У поставок поставщиков – только одно количество поставок на конкретную дату и также при поставке – только одна цена.

    В общем, логика прослеживается.

    Сущность – Атрибут имеет взаимосвязь 1:1 в общем случае

    Сущность – Сущность имеет взаимосвязь 1:M или M:N в общем случае

    3 и 4 этап – установка взаимосвязей

    Здесь можно, конечно как угодно действовать, рисовать на бумаге, рисовать в программах для интеллект-карт, но мне кажется лучше всего воспользоваться готовым софтом для ER-моделирования. Можно 1000 раз переставлять сущности, менять взаимосвязи. Итак, откроем MySQL WorkBench.

    File >NewModel >AddDiagram

    2 раза кликаем по AddDiagram. И перед нами открывается поле для действий.

     

    Начинаем заполнять. Сначала добавим все сущности с атрибутами. А потом установим взаимосвязи.

    Как добавить хотя бы 1 таблицу и заполнить её?

     

    Заполняем таблицу так как нам надо…

     

    Создадим таким образом все таблицы, которые нам нужны. Всего 8 таблиц как и заказывали.

     

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


    В чем разница между identifying and non-identifying relationships?

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

     

    Классные объяснения на английском находятся здесь. Больше всего мне понравилось вот это объяснение

    A book belongs to an owner, and an owner can own multiple books. But the book can exist also without the owner and it can change the owner. The relationship between a book and an owner is a non-identifying relationship.

    A book however is written by an author, and the author could have written multiple books. But the book needs to be written by an author it cannot exist without an author. Therefore the relationship between the book and the author is an identifying relationship.

    Если книга может существовать без владельца, а она может, тогда  non-identifying relationship

    Если книга не может существовать без автора,а она не может, тогда  identifying relationship

    Технически это отражается следующим образом

    identifying relationship:

    Parent —— ID (PK) Name Child —— ID (PK) ParentID (PK, FK to Parent.ID) — notice PK Name

    Parent

    ——

    ID (PK)

    Name

     

    Child

    ——

    ID (PK)

    ParentID (PK, FK to Parent.ID) — notice PK

    Name

    non-identifying relationship:

    Parent —— ID (PK) Name Child —— ID (PK) ParentID (FK to Parent.ID) — notice no PK Name

    Parent

    ——

    ID (PK)

    Name

     

    Child

    ——

    ID (PK)

    ParentID (FK to Parent.ID) — notice no PK

    Name

    То есть, в случае identifying в ключ ребенка встроен ключ родителя. А в случае non-identifying, в ключе ребенка нет ключа родителя.


    Строим взаимосвязи

     

    Последний штрих – разрушим связи многие ко многим

    В нашем случае

    -1 автор может написать несколько книг. И также можно сказать – несколько авторов могли написать 1 книгу. Поэтому вводим тип сущности WRITERS_BOOKS

    -В 1 жанре может быть несколько книг. 1 книга может быть написана в нескольких жанрах. Вводим GENRES_BOOKS

    Технически это просто

    -удаляем старые взаимосвязи

    -Теперь выбираем на палитре инструментов связь n:m, соединям наши таблицы и получаем следующее – 2 промежуточные таблицы.


     

     

    Ну и последний шаг – создаем физическую базу

    DataBase > Forward Engeneer

     

    Выбираем опции и настройки, которые нам нужны

     

     

    Далее собственно выполнение скрипта

     

    Проверяем – создалась ли база и таблицы в реальной базе данных

    MySQL Workbench Tutorial — CoderLessons.com

    1. О MySQL Workbench

    MySQL Workbench, как видно из названия, является настольным инструментом для управления серверами баз данных MySQL и базами данных. MySQL Workbench поставляется с целым набором инструментов, которые облегчают работу с базой данных. В основном это визуальный инструмент для проектирования баз данных, который объединяет различные средства, перечисленные ниже:

    • Создание базы данных
    • Управление доступом к базе данных и свойствами
    • Разработка в базе данных
    • Проектирование структуры базы данных
    • Администрирование и поддержка базы данных

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

    2. Установка MySQL Workbench

    Прежде чем начать понимать особенности MySQL Workbench, давайте начнем с установки MySQL Workbench. Существует только одно предварительное условие для установки. Если вы планируете использовать локальную базу данных, в вашей системе должна быть установлена ​​совместимая версия MySQL Server. Если он не установлен, следуйте инструкциям по этой ссылке, чтобы установить его. В случае удаленного сервера MySQL, MySQL Workbench может быть установлен прямо сейчас.

    Когда у вас есть готовая локальная или удаленная настройка сервера MySQL, убедитесь, что сервер работает, проверив процессы / службы на наличие запущенного процесса сервера MySQL или подключившись к удаленному хосту с помощью соответствующего онлайн-плагина. Чтобы начать установку MySQL Workbench, перейдите к загрузке соответствующего установочного файла по этой ссылке . Как показано ниже, MySQL Workbench доступен для Windows, MacOSX и нескольких вариантов систем Linux.

    Варианты установки MySQL Workbench

    Процесс установки довольно прост. В следующих подразделах описан процесс установки.

    2.1 Установка в MacOSX

    Для установки в MacOSX загрузите установочный пакет .dmg . Пакет установщика открывает окно приложения, которое позволяет скопировать приложение в папку приложений. Окно приложения показано ниже:

    Установка MySQL Workbench в Mac OSX (Источник: https: //dev.mysql.com/)

    2.2 Установка в ОС Windows

    Чтобы установить MySQL Workbench в Windows, загрузите. EXE- файл для настройки. Выполните настройку после загрузки. Программа установки проверяет установку сервера MySQL перед установкой Workbench. После того, как проверки пройдены, приступайте к их установке. Более подробную информацию об установке Workbench в Windows можно найти здесь

    2.3 Установка в вариантах Linux

    Для вариантов Linux MySQL доступен в виде файла .deb . Файл deb похож на exe. Это может быть выполнено как обычная установка для установки. Однако для Linux разработчики обычно предпочитают командную строку для установки инструментов. Чтобы установить MySQL Workbench с помощью командной строки, сначала установите менеджер пакетов apt для mysql, выполнив следующие команды.

    1

    2

    $ sudo dpkg -i mysql-apt-config_0.5.3-1_all.deb

    $ sudo apt-get update

    После установки и обновления установите рабочую среду с помощью приведенной ниже команды.

    1

    $sudo apt-get install mysql-workbench-community

    Таким образом, MySQL Workbench может быть легко установлен. После установки запускается MySQL верстак. Workbench часто меняет свою версию экрана приветствия на версию.

    3. Начало работы с MySQL Workbench

    Как только MySQL Server и MySQL Workbench успешно установлены, запустите приложение Workbench. В зависимости от установленной версии вы увидите экран приветствия, аналогичный показанному ниже.

    Экран приветствия MySQL Workbench

    По умолчанию отображается локальное соединение. Эти соединения могут быть отредактированы в любой момент времени. Также возможно добавлять и управлять несколькими подключениями одновременно. Локальный сервер может быть подключен, только если был установлен локальный сервер MySQL. Чтобы подключиться к работающему локальному серверу, просто щелкните метку экземпляра, показанную в прямоугольном поле.

    3.1 Добавление и настройка соединений

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

    Новое соединение с базой данных в MySQL Workbench

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

    1. Название соединения
    2. Способ подключения
    3. Hostname
    4. порт
    5. имя пользователя
    6. Пароль (Вы можете сохранить его или вводить каждый раз)

    Параметр «Имя соединения» обычно используется для псевдонима, который будет использоваться для идентификации соединения. Метод подключения останется стандартным методом TCP / IP. В имени хоста вам необходимо указать IP-адрес удаленного сервера MySQL или localhost в случае локального сервера. Порт по умолчанию 3306, так как он настроен сервером MySQL в качестве порта по умолчанию. Имя пользователя и пароль — учетные данные для подключения.

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

    Тест соединения

    3.2 Подключение к базе данных в первый раз

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

    1. управление
    2. Пример
    3. Производительность
    4. Schemas

    Каждый раздел подробно описан ниже.

    Экран приветствия базы данных Workbench

    Первый раздел, показанный выше, является разделом « Управление ». Раздел управления позволяет управлять и контролировать состояние сервера. Он позволяет просматривать количество клиентов, подключенных к базе данных, просматривать память и пространство, которое она использует, просматривать состояние определенных используемых функций и множество других параметров администрирования. Раздел управления также предоставляет нам две важные функции для базы данных. Особенности импорта и экспорта данных. Эти функции будут подробно рассмотрены далее.

    Второй раздел — это раздел Экземпляр . Раздел экземпляра позволяет запускать или останавливать сервер в любой момент времени. Однако это требует, чтобы сервер MySQL был установлен в расположении по умолчанию, поскольку MySQL Workbench пытается найти файл конфигурации, а также сценарии, связанные с сервером, в расположении по умолчанию.

    Следующий раздел — это раздел « Производительность », в котором представлен превосходный анализ производительности и отчеты. Однако эта функция ограничена MySQL Server версии 5.6.6 или выше. Следовательно, чтобы использовать эту функцию, убедитесь, что сервер баз данных имеет более высокий выпуск.

    Последний раздел, видимый на изображении выше, является основным разделом для обычного разработчика. Раздел Схемы содержит список схем, которые были созданы в базе данных. В базе данных MySQL схема — это своего рода каталог, созданный в базе данных для хранения различных таблиц и записей. В следующем разделе описывается процесс создания и управления схемами и таблицами в MySQL Workbench.

    4. Создание и управление схемой и таблицами базы данных.

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

    1. Используйте графический интерфейс для выполнения команды
    2. Написать и выполнить запрос SQL в окне SQL
    3. Откройте командную строку SQL и выполните запросы с помощью консоли SQL.

    Здесь мы начнем использовать первые два способа создания схемы.

    4.1 Создание схемы

    Чтобы создать схему с использованием графического интерфейса, щелкните правой кнопкой мыши любую из существующих схем или в пустом окне схемы. В открывшемся всплывающем меню выберите « Создать схему», как показано ниже.

    Создать схему

    В открывшейся вкладке новой схемы введите имя схемы и параметры сортировки по умолчанию. Атрибут collation — это специфический для базы данных термин. Если вы не знаете об этом, вы можете оставить это поле пустым. Выберите Применить, как только вы ввели значения. Это откроет экран обзора, отображающий SQL, как показано ниже. Для каждой операции базы данных на основе графического интерфейса MySQL Workbench предоставляет запрос SQL перед применением изменений. Это позволяет понять синтаксис, используемый для действия.

    1

    CREATE SCHEMA `Tutorial` ;

    Теперь при нажатии кнопки «Применить» схема создается и отображается в окне «Схема». Закройте вкладку Новая схема сейчас.
    Чтобы выполнить ту же операцию с использованием MySQL-запроса, перейдите на вкладку « Запрос 1», которая открывается по умолчанию, и введите указанный выше запрос. Окно запроса содержит множество символов, которые будут рассмотрены далее в статье. На данный момент, после ввода запроса, используйте Ctrl / Cmd + Enter для выполнения запроса. Результат выполнения запроса можно увидеть в окне вывода Action, как показано ниже.

    Действие Выход

    4.2 Отбрасывание схемы

    Теперь, когда мы создали дополнительную схему, которая в настоящее время бесполезна, мы можем выбрать удаление схемы таким же образом. Щелкните правой кнопкой мыши схему в разделе «Схемы» на левой боковой панели. Выберите Drop Schema. Точно так же, как Create Schema показала соответствующий SQL, Drop Schema также показывает соответствующий SQL. Вы можете применить его, чтобы удалить схему.

    Таким же образом схема также может быть отброшена простым выполнением соответствующего SQL.

    4.3 Создание таблицы с использованием графического интерфейса

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

    Создать таблицу в Workbench

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

    Создать таблицу в Workbench

    Первый и второй столбец выше говорят сами за себя. Остальные столбцы описаны ниже.

    ПК: первичный ключ

    NN: не нуль

    UQ: уникальные данные

    BIN: содержит двоичные данные

    ООН: содержит неподписанные данные

    ZF: подставки для заполненных нулями колонн

    AI: Авто Увеличение значения поля

    G: Сгенерированный столбец. Значение генерируется с использованием формулы для столбца

    Установите соответствующие флажки, чтобы создать таблицу. Это не конец вариантов. Как видно на вкладке создания таблицы, существует множество дополнительных вкладок для настройки различных параметров. Они будут обсуждаться дальше. Нажмите « Применить», чтобы создать таблицу. Вы заметите, что так же, как Create Schema показала соответствующий SQL-скрипт, DDL создания таблицы появляется во всплывающем окне. Вы можете внести любые изменения, если это необходимо, в сценарии и нажать «Применить».

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

    4.4 Настройка внешних ключей, триггеров и других параметров для таблицы

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

    Конфигурация рабочего стола

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

    Вкладка «Индексы» используется для создания индекса по конкретным столбцам в дополнение к первичному ключу. Вы можете изучить параметры, щелкнув вкладку Индексы. Доступные опции не требуют пояснений, если пользователь обладает достаточными знаниями о базе данных MySQL. На данный момент эта таблица больше не нуждается в создании индексов. Следовательно, мы перейдем к следующей вкладке.

    Вкладка «Внешние ключи» позволяет назначать ограничения внешнего ключа для столбцов таблицы. На вкладке отображается пользовательский интерфейс, как показано ниже.

    настроить внешние ключи в MySQL Workbench

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

    Триггеры следующей вкладки очень важны, когда разработчик разрабатывает крупномасштабную систему. Однако триггеры в основном создаются и разрабатываются администраторами базы данных. Чтобы использовать эту вкладку, необходимо создать триггеры с помощью графического интерфейса Trigger. После создания они могут быть привязаны к условию, например, «Перед обновлением», «После обновления» или другим, если необходимо.

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

    4.5 Таблица изменения и удаления

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

    Информация — первый значок, чтобы получить информацию о таблицах.

    Настройки — открывает окно создания таблицы, чтобы вы могли изменить таблицу

    Select Rows — третий значок выполняет запрос на выборку для таблицы, чтобы извлечь все строки таблицы

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

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

    5. Создание модели в MySQL Workbench

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

    Создание модели — это альтернативный способ создания схемы и таблиц. Следовательно, мы сократили бы процесс создания таблицы здесь. Тем не менее, мы бы рассмотрели создание EER диаграммы из того же.

    5.1 Создание схемы с использованием интерфейса модели Workbench

    Модель является точной копией схемы, за исключением того, что она отображается визуально в виде диаграммы EER. Чтобы начать с создания новой модели, перейдите к File-> New Model . Открывается вкладка Новая модель. Во вкладке вверху есть несколько значков. Первые три значка на изображении, показанном ниже, относятся к операциям с файлом, таким как создание нового документа, открытие существующей модели и сохранение модели. За этими значками следуют значки отмены и повтора. Следующая группа значков необходима здесь.

    Создать модель в Workbench

    Для начала нажмите второй значок в группе — Создать новую схему. Следует создать новую схему, как показано выше. Под ним открывается вкладка, позволяющая настроить имя схемы. Затем приступите к созданию таблиц, нажав «Добавить таблицу» на изображении, показанном выше. Процесс создания таблицы аналогичен приведенному выше разделу после нажатия на ссылку «Добавить таблицу».

    Если в схеме есть две-три таблицы, можно приступить к созданию диаграммы EER. На приведенной ниже диаграмме есть две таблицы, созданные аналогично предыдущему разделу. Нажмите Добавить диаграмму в разделе диаграммы EER на вкладке, чтобы создать диаграмму EER для текущей схемы.

    Модель в SQL Workbench

    Откроется новая вкладка с пустым листом диаграммы EER. На левой панели есть раздел Каталога, помеченный красным прямоугольником внизу.

    Новая вкладка EER Diagram

    Чтобы создать диаграмму EER, просто разверните узел таблиц и перетащите таблицы на лист. Перетаскивая ранее созданные таблицы на лист, он автоматически рисует линию, ссылающуюся на внешнюю ссылку между таблицами. Это можно увидеть ниже.

    EER Diagram в верстаке

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

    6. Экспорт и импорт данных

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

    6.1 Экспорт данных

    Чтобы экспортировать данные, перейдите к Серверу -> Экспорт данных. Он открывает вкладку, как показано ниже.

    Интерфейс экспорта данных

    Всякий раз, когда присутствует несколько схем, это позволяет выбрать схему. При выборе схемы для переноса на правой панели отображаются соответствующие таблицы. Это также позволяет вам выбрать таблицы для переноса. На нижней панели вы можете найти параметры для миграции хранимых процедур, событий, а также триггеров. Дополнительные параметры экспорта позволяют выбрать, следует ли экспортировать объекты в виде отдельных файлов или в виде отдельного файла. Дамп в папку проекта создает отдельный файл для каждого объекта, выбранного для экспорта.

    Для понимания процесса импорта просто выберите « Экспорт в автономный файл» на данный момент после выбора схемы, созданной на предыдущих этапах. Теперь удалите схему, созданную ранее. В случае несоответствия объекта будет отображаться предупреждение. Тем не менее, это абсолютно безопасно для обработки, если вы не использовали что-то специфическое для предыдущей версии. Введите пароль при появлении запроса. Файл будет сохранен в папке назначения.

    6.2 Импорт данных

    Чтобы импортировать данные в базу данных MySQL, откройте пользовательский интерфейс импорта данных, перейдя к Серверу -> Импорт данных . В открывшемся интерфейсе выберите опцию автономного файла и найдите сохраненный файл дампа. Если вы планируете импортировать таблицы в другую схему, выберите схему и нажмите «Импорт». Он импортирует всю структуру таблицы в выбранную или новую схему.

    7. Обратный инжиниринг

    Часто случается, что разработчик кода непосредственно начинает создание таблиц вместо того, чтобы сначала следовать процессу создания EER, а затем переходить к таблицам. В таком случае, когда количество таблиц увеличивается, сложно создать диаграмму ER с нуля. MySQL Workbench решает эту проблему для вас. Благодаря функции обратного проектирования Workbench, MySQL workbench позволяет создавать диаграммы EER из любой существующей схемы в любой момент времени. Это не конец этого. Это также позволяет создавать EER любых других удаленных баз данных, к которым можно иметь доступ.

    Переход к обратному проектированию

    Чтобы создать диаграмму EER, просто перейдите в базу данных-> Обратный инженер . Откроется окно с запросом выбора соединения с базой данных, которое будет использоваться для реверс-инжиниринга. После выбора соединения нажмите «Продолжить». Он подключается к базе данных и проверяет соединение. Позже он выбирает список доступных объектов из базы данных. На следующем экране отображается успех этих шагов, как показано ниже.

    Обратный Инжиниринг Шаг 2

    Следующий шаг позволяет вам выбрать схемы, для которых нужно сгенерировать EER. Можно также создать комбинированную диаграмму EER для нескольких схем. После того как схемы выбраны, Workbench извлекает список объектов для выбранных схем и на следующем шаге обрабатывает диаграмму EER. Также можно выбрать объекты для отображения диаграммы EER.

    В последнем окне вывода отображаются таблицы в формате диаграммы EER. Можно перетаскивать и размещать таблицы для большой базы данных, а также покрывать их на ограниченной области листа. Следующее — сохранить диаграмму как изображение, чтобы поместить ее в документ. Чтобы сохранить диаграмму, перейдите к File -> Export. Выберите вариант в соответствии с вашими потребностями и сохраните диаграмму.

    8. Заключение

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

    Создание базы данных с помощью MySQL Workbench

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

    В следующем примере мы создаем новую базу данных под названием «VegeShop».

    1. Щелкните значок для создания новой схемы (вы найдете его на панели инструментов Workbench):
    2. Введите имя схемы (в данном случае VegeShop ) и параметры сортировки по умолчанию (в данном случае latin1 - параметры сортировки по умолчанию ), затем нажмите кнопку Применить :
    3. Вам будет предложено просмотреть оператор SQL, который будет запущен для создания базы данных.Чтобы запустить инструкцию (и создать базу данных), нажмите Применить :
    4. После создания базы данных вы должны увидеть следующий экран:

    База данных создана. Теперь вы увидите свою новую базу данных в списке на вкладке SCHEMAS на левой панели:

    Установка базы данных по умолчанию

    Вы можете установить новую базу данных в качестве базы данных по умолчанию, щелкнув ее правой кнопкой мыши и выбрав Установить как схему по умолчанию :

    Вы можете определить, является ли база данных базой данных по умолчанию, потому что ее имя отображается полужирным шрифтом :

    Создание баз данных программным способом

    Как уже упоминалось, вы также можете создавать свои базы данных программно.Это так же быстро и просто, как написать СОЗДАТЬ БАЗУ ДАННЫХ VegeShop . Вы также можете добавить код, который проверяет наличие любых баз данных, которые уже используют это имя.

    Создание таблиц

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

    .

    Как создать ER-диаграмму для существующей базы данных MySQL с помощью MySQL Workbench

    Эта статья покажет вам, как создать диаграмму для существующей базы данных MySQL или MariaDB с помощью MySQL Workbench .

    Обратное проектирование базы данных

    Для создания диаграммы из существующей базы данных вам необходимо использовать обратное проектирование функциональность для создания модели.

    Узнайте о обратном проектировании и моделях в MySQL Workbench

    Для обратного проектирования базы данных перейдите в меню База данных и выберите Reverse Engineer… вариант.

    Укажите сведения о подключении к базе данных и щелкните Далее . Дождитесь подключения и снова нажмите Next .

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

    Дождитесь считывания схем и перейдите к Далее . На следующем экране у вас есть возможность выбрать типы объектов и , отфильтровать определенные объекты .Давайте проигнорируем это и импортируем все объекты. Щелкните Execute> .

    Подождите, пока начнется обратный инжиниринг, и когда закончите, перейдите к Next . На последнем экране отображается сводка импорта. Закрываем Заканчиваем .

    Диаграмма по умолчанию

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

    Схема очистки

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

    Чтобы удалить таблицу с диаграммы, выберите ее, щелкните правой кнопкой мыши и выберите опцию Remove Figure .

    Будьте осторожны, не выбирайте опцию «Удалить» , так как она удалит не только таблицу формы, но и каталог моделей. Без предупреждения!

    Расставить столы

    Для расстановки столов вы можете попробовать опцию autoarrange , но помимо этого вам потребуется некоторая ручная работа.

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

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

    Сохранить модель

    После того, как вы закончите свою диаграмму, обязательно сохраните ее. Он сохраняется в модели MySQL Workbench в файле .mwb в папке Documents .

    Схема экспорта

    Когда ваша диаграмма будет полной и безопасной, вы можете экспортировать ее в png , pdf , ps или svg .

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

    Вот моя диаграмма:

    Посмотреть в других форматах:

    Лучший способ поделиться диаграммами: Dataedo

    Есть лучший способ создавать и публиковать диаграммы для существующих баз данных — Dataedo. Вот пример экспорта полной документации базы данных с диаграммами:

    См. Живой пример документации базы данных HTML

    Некоторые преимущества:

    1. Простой и удобный обмен в интерактивном HTML
    2. Рисование диаграмм для баз данных без ограничений FK
    3. Приложить полный словарь данных

    Попробовать бесплатно

    .

    Создание таблицы с помощью MySQL Workbench

    Для создания таблицы можно использовать графический интерфейс MySQL Workbench. Вы также можете сделать это программно, но вот как это сделать через графический интерфейс.

    В следующем примере мы создаем новую таблицу «Овощи» в нашей базе данных VegeShop.

    1. Когда выбранная база данных развернута на вкладке SCHEMAS , щелкните правой кнопкой мыши Tables и выберите Create Table… :

    2. Введите имя таблицы вверху (рядом с Имя: ) и добавьте все имена столбцов, их типы данных, ограничения, значения по умолчанию и любые другие необходимые сведения.Вот мой пример:

    3. Вам будет предложено просмотреть оператор SQL, который будет выполняться для базы данных. Чтобы запустить выписку (и создать базу данных), нажмите Применить :

    4. После создания таблицы вы должны увидеть следующий экран. Нажмите Закрыть :

    Таблица создана. Теперь вы увидите свою новую таблицу в списке под базой данных на вкладке SCHEMAS на левой панели.Если вы развернете узлы, вы увидите новую таблицу и ее столбцы, а также индекс первичного ключа:

    Создание таблиц базы данных программным способом

    Как уже упоминалось, вы также можете создавать свои таблицы программно. Это позволяет вам сохранить сценарий и запускать его всякий раз, когда вам нужно восстановить свои таблицы (или даже всю базу данных).

    .

    MySQL :: MySQL Workbench

    MySQL Workbench — это унифицированный визуальный инструмент для архитекторов баз данных, разработчиков и администраторов баз данных. MySQL Workbench обеспечивает моделирование данных, разработку SQL и комплексные инструменты администрирования для настройки сервера, администрирования пользователей, резервного копирования и многого другого. MySQL Workbench доступен в Windows, Linux и Mac OS X.

    Проект

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

    Разработка

    MySQL Workbench предоставляет визуальные инструменты для создания, выполнения и оптимизации SQL-запросов. Редактор SQL обеспечивает цветовую подсветку синтаксиса, автозаполнение, повторное использование фрагментов SQL и историю выполнения SQL.Панель подключения к базе данных позволяет разработчикам легко управлять стандартными подключениями к базе данных, включая MySQL Fabric. Обозреватель объектов обеспечивает мгновенный доступ к схеме и объектам базы данных.
    Подробнее »

    Администрирование

    MySQL Workbench предоставляет визуальную консоль для простого администрирования сред MySQL и лучшего обзора баз данных. Разработчики и администраторы баз данных могут использовать визуальные инструменты для настройки серверов, администрирования пользователей, выполнения резервного копирования и восстановления, проверки данных аудита и просмотра состояния базы данных.
    Подробнее »

    Панель визуальной производительности

    MySQL Workbench предоставляет набор инструментов для повышения производительности приложений MySQL. Администраторы баз данных могут быстро просматривать ключевые показатели эффективности с помощью панели мониторинга производительности. Отчеты о производительности обеспечивают простую идентификацию и доступ к точкам доступа ввода-вывода, дорогостоящим операторам SQL и многому другому. Кроме того, одним щелчком мыши разработчики могут увидеть, где оптимизировать свой запрос, с помощью улучшенного и простого в использовании плана Visual Explain Plan.
    Подробнее »

    Миграция базы данных

    MySQL Workbench теперь предоставляет полное, простое в использовании решение для миграции Microsoft SQL Server, Microsoft Access, Sybase ASE, PostreSQL и других таблиц, объектов и данных СУБД в MySQL.Разработчики и администраторы баз данных могут быстро и легко преобразовать существующие приложения для работы в MySQL как на Windows, так и на других платформах. Миграция также поддерживает переход с более ранних версий MySQL на последние версии.
    Подробнее »

    .
    Mysql или mariadb: Сравнение MySQL vs MariaDB | Losst

    Mysql или mariadb: Сравнение MySQL vs MariaDB | Losst

    Сравнение MySQL vs MariaDB | Losst

    Оригинальная версия MySQL была разработана фино-шведской компанией MySQL AB, которую основали Джвид Ахмарк, Аллан Ларссон и Майкл Монти. Первая версия MySQL появилась в 1995 году. Изначально она предназначалась для личного пользования, но спустя несколько лет превратилась в базу данных корпоративного уровня.

    В январе 2008 Sun Microsystems приобрела MySQL AB за 1 миллиард долларов. Вскоре после этого, Oracle купила Sun Microsystems с разрешения Европейской комиссии, которая изначально опасалась, что такое решение повредить свободному проекту MySQL, поскольку он был прямым конкурентом СУБД Oracle. Из-за недоверия к стратегии развития MySQL был создан форк под названием MariaDB.

    Шли годы и за это время MariaDB начала использоваться во многих дистрибутивах Linux по умолчанию. Она используется для обеспечения работы большинства сайтов интернета. В этой статье мы попытаемся выполнить сравнение MySQL vs MariaDB и разобраться почему вторая лучше первой и когда нужна именно оригинальная MySQL.

    Содержание статьи:

    1. Процесс разработки

    В отличие от многих других проектов с открытым исходным кодом полученных от Sun Microsystems, Oracle до сих пор развивает MySQL. После того как много разработчиков подали в отставку, были наняты новые люди. Но разработка новых версий MySQL ведется закрыто. Исходный код доступен только команде разработчиков и выгружается в публичный репозиторий только после завершения работы. Все решения обсуждаются внутри компании

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

    Из-за раскрученности бренда у MySQL все еще есть большое сообщество, но все больше и больше проектов переходят на MariaDB. Такие известные корпоративные дистрибутивы, как REHL 7 и SLES 12 уже используют MariaDB, а это значит, что в сражении MySQL или MariaDB победит последняя.

    2. Частота релизов

    Политика Oracle — выпускать обновления безопасности для всех своих продуктов каждые три месяца. Но выход новой версии MySQL запланирован каждые два месяца. Это часто приводит к тому, что обновления продукта и обновления безопасности не синхронизируются.

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

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

    4. Возможности и функциональность

    В целом MariaDB развивается быстрее и имеет больше возможностей. Эти возможности касаются оптимизации, улучшения работы с памятью, и много другого. Обычно, со временем, эти возможности переносятся в MySQL. Например, та же поддержка GIS появилась в MariaDB раньше, чем в MySQL. Среди прочего MariaDB имеет множество улучшений производительности Inodb, MyISAM и движка обработки запросов, поддерживает GIS, ликвидацию таблиц, виртуальные и динамические колонки, репликацию с несколькими источниками, роли и многое другое.

    Но у MariaDB есть и свои минусы, она не поддерживает некоторые возможности, которые есть в MySQL. А именно, MariaDB несовместима с синтаксисом JSON MySQL, не поддерживаются плагины ngram, MeCab, MySQL X, а также пространства таблиц, которые позволяют присваивать данные нескольким таблицам одновременно. Но разработчики активно работают над исправлением недостатков.

    Для тех, кого интересуют кластеры MySQL будет интересно то, что в MariaDB используется новая система репликации Galera, прием ее работа отличается от стандартного master-salve. Galera разрабатывается с 2007 года, но она никогда не включалась в официальную версию MySQL.

    5. Поддержка движков хранения данных

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

    • Aria;
    • XtraDB — улучшенная версия InnoDB;
    • FederatedX — улучшенная версия Federated;
    • OQGRAPH;
    • SphinxSE;
    • IBMDB2I;
    • TokuDB;
    • Cassandra;
    • CONNECT;
    • SEQUENCE;
    • Spider;
    • ColumnStore;
    • MySIAM.

    Напомню, что оригинальная MySQL поддерживает по умолчанию только три типа таблиц — Aria, MySIAM и InnoDB. Это важный аспект в выборе MySQL или MariaDB.

    6. Имя и нумерация версий

    Эти отличия MariaDB от MySQL не столь важны, но, возможно, они будут кому-то интересными. Имя MySQL было дано в честь первой дочери одного из разработчиков — Майкл Монти, ее зовут My. Разработку MariaDB продолжил тот же человек и на этот раз программа была названа в честь его младшей дочери — Марии.

    Что касается версий, то изначально, до версии 5.6 версии MariaDB нумеровались синхронно до версий MySQL, на которых они были основаны. Но когда накопилось достаточно изменений и за основу стал браться код MariaDB номера версий было принято поменять на 10. С того момента нумерация MariaDB выполняется только так.

    Выводы

    В этой статье мы сделали сравнение MySQL vs MariaDB. По большинству параметров MariaDB намного лучше, чем MySQL, поэтому не зря большинство дистрибутивов Linux теперь используют ее по умолчанию в своих репозиториях. Оригинальная версия может понадобиться только в очень редких случаях.

    что лучше, MariaDB vs MySQL

    От автора: система управления базами данных стала неотъемлемой частью разработки динамического веб-продукта. С ее помощью можно систематизировать весь массив необходимых файлов. Все это нужно для быстрого доступа и оптимизации работы приложения или сайта. Но чтобы полностью освоить все, пусть даже самые популярные, потребуются десятилетия. Следует определится, какую вы будете использовать, изучать, и прокачивать свой скилл. Самое популярное сравнение – MariaDB vs MySQL. На них мы сегодня и сконцентрируемся. Не забудем и продукты, которые только набирают популярность, но уже обладают существенным конкурентным преимуществом.

    Реляционная система

    До того, как были изобретены подобные решения, не могло быть и речи о том, чтобы создавать массивные продукты. Даже те машины, которые имели хороший объем физической и оперативной памяти, не могли обработать Big Data, если она хранилась в относительно хаотичном порядке – в виде файлов. В начале восьмидесятых годов была выпущена первая РСУБД, разработчиками которой стали IBM.

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

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

    JavaScript. Быстрый старт

    Изучите основы JavaScript на практическом примере по созданию веб-приложения

    Узнать подробнее

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

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

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

    Преимущества и недостатки СУБД

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

    Среди часто обсуждаемых недостатков современных систем управления базами данных:

    нелегко освоить. Чтобы работать с Photoshop, вам необходимо познакомиться с основными инструментами этого ПО и научится их использовать. Понимать, как работает сама программа необязательно. Этого нельзя сказать о СУБД. Понимать принципы работы MySQL – значит разбираться в базах данных. Если вы пытаетесь действовать по шаблону, то, скорее всего, разработку ждет неудача. Неизвестно, что лучше: не понимать СУБД в принципе, или понимать ее неправильно;

    стоимость. Сама система управления базами данных может не стоить очень много, но обслуживание базы данных, приобретение стороннего ПО и прочие. Даже разместить обширную базу данных на хорошем хостинге стоит денег.

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

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

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

    Во-первых, это экономия памяти. Хоть и сама СУБД занимает определённое место, она не дает размножатся лишней информации. Никакого избытка, никаких файлов-дублей. В то же время, та информация, которая должна храниться в избытке, хранится именно таким образом. Как мы и говорили, это сложная математическая модель, которую трудно понять рядовому разработчику.

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

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

    JavaScript. Быстрый старт

    Изучите основы JavaScript на практическом примере по созданию веб-приложения

    Узнать подробнее

    Кстати, о безопасном хранении. Сегодня трудно реализовать хранение данных лучше, чем с современной СУБД. Внедрение АБД позволяет определить необходимые меры безопасности: что может быть лучше? К тому же, новые инструменты для защиты базы данных выходят ежедневно. Доступ, как правило, осуществляется через форму запыления, но при достаточных навыках, вы сможете реализовать все: от антропометрии до двухфакторной аутентификации. Особенно это применимо к open-source СУБД, которой является MariaDB (о ней позже).

    Трудно представить что-то лучше, в плане резервного копирования, чем системы управления базами данных. Если вы храните приложение в файлах, значит сохранность данных лежит в ваших руках. Вы вынуждены заботиться о том, чтобы вовремя создать бекапы и необходимые копии. СУБД может делать это с установленной периодичностью и переносить информацию на внешний носитель или в облако.

    MySQL: заслуженный успех

    Однозначно, это самая популярная из всех существующих СУБД. На ней строят не только веб-приложения и сложное программное обеспечение: учет материалов в библиотеке вашего города, скорее всего, реализован через MySQL или MSSQL. Функциональность этой системы заставляет конкурентов придумывать все новые и новые решения. Но и сами разработчики не отстают: последняя версия ПО вышла совсем недавно. Свою периодичность они не прерывают уже на протяжении более чем двадцати лет.

    Ранее этой разработкой владела компания Sun Microsystems, которая подарила нам Java и много других инструментов разработки. В 2010 все продукты, вместе с MySQL, перешли компании Oracle. Она осуществляет поддержку СУБД и по сей день.

    vИзначально эта система была разработана одноименной компанией в 1995 году. Создатели использовали самые быстровыполнимые языки программирования: C, C++ и HTML. Таким образом, разработчики получили в распоряжение стабильную и быструю СУБД с постоянной поддержкой. Сегодня MySQL входит в состав, так называемых «джентельменских наборов», которые состоят из сервера, базы данных и скриптового языка программирования.

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

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

    Нельзя не упомянуть о том, что MySQL – одна из наиболее кроссплатформенных СУБД. Чувствуется рука компании Sun, для которой запуск ПО «хоть на калькуляторе» был приоритетом. Что говорить о масштабируемости: почти все самые больше ресурсы, с которыми вы работает в сети, построены на основе MySQL. Хотя существуют и более профессиональные варианты, например, PostgreSQL, о котором мы не забыли.

    «Мария», как лучшее в СУБД

    Как и у всех open-source проектов, у MySQL случился удачный форк, который получил название MariaDB. И материнская СУБД, и ее ответвление, носят имена дочерей создателя: Мю и Мария. Эту систему привыкли называть альтернативой MySQL, однако это в корне неверное заявление. Хоть и споры о том, что лучше, Maria или My до сих пор продолжаются.

    Целью разработчиков «Марии» было создать продукт, полностью совместимый с MySQL, но значительно улучшенный. К примеру, движком для хранения данных в MySQL была MyISAM. В Марии – это Aria, которая подарила СУБД большую производительность, в сравнении с основным проектом. И, хотя MariaDB основана на MySQL, последние версии содержат не более чем 25% оригинального кода.

    Мария может похвастаться более высокой производительностью в целом. Особенно это касается перекодировки символов. На высоких объемах информации коэффициент достигает более чем 2%. Отладочный код тоже оптимизирован, по сравнению с MySQL. В целом, разработчики отмечают высшую скорость разработки, чем мог выдать «родитель». Сообщество, которое трудится над MariaDB обещает еще большие улучшения.

    Кроме того, сам пользователь может улучшать и оптимизировать работу Марии. Что отличает эту СУБД от всех остальных, так это полноценный open-source: никаких закрытых элементов или модулей, все в доступе. Играть с кодом можно неограниченно, как и делать предложения по изменению сообществу, которое и разрабатывает MariaDB.

    Заявка на победу от Postgres

    PostgreSQL – это еще одна система управления базами данных, только уже не реляционная, о объектно-реляционная. Это значит, что пользователь сам может создавать объекты для операций, куда могут входить различные данные. Она полностью бесплатна и наиболее гибка. Некоторые разработчики называют PostgreSQL самым профессиональным решением, из всех которые существуют на рынке. Эта СУБД появилась из некоммерческого университетского проекта, созданного в Беркли, который называлась Postgres. Эта система разрабатывалась долгих восемь лет и поддерживается до этого дня.

    Как бывает с такими продуктами, она получилась «от программистов для программистов» – невероятно функциональной, но слишком сложной в освоении для обычного разраба. Изначально СУБД даже имела свой собственный язык запросов, но впоследствии от этой идеи отказались, оставив тривиальный «сиквел». Несмотря на энтузиазм независимых разработчиков, PostgreSQL не так хороша, какой ее любят называть. До сих пор в исходном коде находят проблемные места.

    По масштабируемости PostgreSQL не уступает, если сравнивать с MySQL и MariaDB. На основе этого ПО строятся массивные проекты по обработке Big Data, так как ее стабильности доверяют разработчики. Несколько вариантов интерфейса делают продукт доступным для персонализации.

    Но до массового продукта PostgreSQL еще далеко. Дело в том, что эта система слишком сложная для простого разработчика. Даже если взять в руки документацию, вы не получите ответов на все вопросы, включая наиболее логичные. Также, смущает скорость выполнения запроса в PostgreSQL.

    Эта СУБД отлично подходит для корпоративных решений. К примеру, база данных для IT-компании, где ее поддержкой может заняться каждый из разработчиков. Тем более, что PostgreSQL полностью бесплатна.

    На этом у нас все. Помните, что в таких сложных решениях как СУБД, трудно назвать лидера. По используемости – это MySQL, по расширяемости – MariaDB и PostgreSQL. Как только мы получим продукт, который станет панацеей для всех случаев, мы обязательно расскажем об этом .

    JavaScript. Быстрый старт

    Изучите основы JavaScript на практическом примере по созданию веб-приложения

    Узнать подробнее

    Библиотека ORM – RedBeanPHP

    Прямо сейчас посмотрите видео по RedBeanPHP!

    Смотреть

    Сравнение MariaDB и MySQL. Все, что вам нужно знать в 2019 году

    MySQL является одной из наиболее широко используемых в мире СУБД. Это программное обеспечение бесплатно и распространяется с открытым исходным кодом. MySQL, разработанный на C/C ++, является одним из самых популярных вариантов баз данных.

    СУБД была разработана шведской компанией «MySQL AB» в 1995 году. Позже MySQL AB была приобретена Sun Microsystems в 2008 году. Позже Sun Microsystems была приобретена Oracle в 2010 году. С тех пор MySQL поддерживается и управляется Oracle.

    Эта статья — перевод и адаптация англоязычной статьи MariaDB vs MySQL: [2019] Everything You Need to Know.

    Во время приобретения Sun Microsystems компанией Oracle некоторые из старших инженеров, которые работали над разработкой MySQL, почувствовали, что существует конфликт интересов между MySQL и коммерческой базой данных Oracle — Oracle Database Server. В результате эти инженеры создали форк базы кода MySQL и основали собственную организацию. Так родилась MariaDB.

    На сегодняшний день обе базы данных пользуются большой популярностью и широко используются сообществом разработчиков. MySQL занимает № 2 среди реляционных баз данных и № 2 среди всех СУБД (№ 1 является базой данных Oracle). Напротив, MariaDB немного отстает — № 9 среди реляционных баз данных и № 14 в целом.

    Преимущества MariaDB перед MySQL

    В MariaDB добавлены оптимизации, которые повышают производительность СУБД по сравнению с оригинальным MySQL.

    Представления

    В части производительности представлений в MariaDB проделана существенная оптимизация. «Представления» — это, по сути, виртуальные таблицы базы данных, к которым можно обращаться, как к обычным таблицам базы данных. В MySQL при запросе к представлению запрашиваются все таблицы, связанные с этим представлением, независимо от того, что для запроса могут не потребоваться некоторые представления. В отличие от MySQL, в MariaDB, запрашиваются только те таблицы, которые необходимы для запроса.

    Колоночное хранилище

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

    Более высокая производительность на SSD

    MariaDB предоставляет механизм хранения MyRocks, который позволяет хранить данные в RocksDB. RocksDB — это встраиваемая база данных, которая была разработана для повышения производительности обработки данных, хранимых на SSD-накопителях.

    Сегментированный кеш ключей

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

    Виртуальные столбцы таблицы

    Интересная функция, которую поддерживает MariaDB — это виртуальные столбцы. Эти столбцы способны выполнять вычисления на уровне базы данных. Это позволяет перенести типовые вычисления с приложений в сервер СУБД. Эта функция не доступна в MySQL.

    Параллельное выполнение запросов

    Одна из последних версий MariaDB — 10.0 допускает параллельное выполнение нескольких запросов. Идея состоит в том, что некоторые запросы от Master могут быть переданы на выполнение на ведомые серверы (slave). Этот параллелизм в выполнении запросов, безусловно, обеспечивает MariaDB преимущество над MySQL.

    Пул потоков

    MariaDB также представляет новую концепцию под названием «Thread Pooling». Ранее, когда требовалось несколько соединений с базой данных, для каждого соединения открывался поток, что приводило к архитектуре «один поток на соединение». С использованием «Thread Pooling» исспользуется пул потоков, которые могут повторно использоваться. Таким образом, новый поток не нужно открывать для каждого нового запроса на подключение, что приводит к более быстрым результатам запроса. Эта функция доступна в коммерческой версии MySQL, но, к сожалению, недоступна в версии для сообщества.

    Бэкенды хранения данных

    MariaDB предоставляет несколько мощных механизмов хранения, которые не доступны в MySQL. Например, XtraDB, Aria и т. д. Чтобы настроить эти механизмы хранения для MySQL, вам необходимо установить их вручную.

    Совместимость

    Команда MariaDB гарантирует, что MariaDB сможет заменить MySQL в существующих приложениях. Фактически для каждой версии MySQL они выпускают тот же номер версии MariaDB, чтобы указать, что MariaDB обычно совместима с соответствующей версией MySQL. Это открывает возможность беспрепятственного перехода на MariaDB без каких-либо изменений в кодовой базе приложения.

    Заключение

    MariaDB, несомненно, достаточно мощный инструмент, который предоставляет множество уникальных функций, отсутствующих в MySQL. MariaDB — зрелый продукт, который может без сомнений использоваться как для повышения производительности так и для внедрения новых возможностей хранения и обработки данных.

    Если вы хотите быстро начать использовать MariaDB для тестов или продуктового применения, рассмотрите нашу статью по развертыванию MariaDB в экосистеме Docker.

    MariaDB против MySQL | ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

    Разработчик Корпорация Oracle MariaDB Corporation AB (Корпорация MariaDB),
    Фонд MariaDB (сообщество MariaDB Server)
    Протоколы MySQL MySQL + MariaDB
    Исходный код Open Source + Проприетарный Открытый источник
    Развитие Закрытое Открытое
    Сотрудничество Ограниченное Экстенсивное
    Подсистема хранилища InnoDB
    MyISAM
    BLACKHOLE
    CSV

    MEMORY ARCHIVE
    MERGE

    InnoDB
    MyISAM
    BLACKHOLE
    CSV
    MEMORY
    ARCHIVE
    MERGE
    ColumnStore
    MyRocks
    Aria
    SphinxSE
    TokuDB
    CONNECT
    SEQUENCE
    Spider
    Cassandra
    Ограничение CHECK нет да
    Выражение DEFAULT нет Да. Кроме того, поддержка значений по умолчанию для столбцов BLOB и TEXT
    Виртуальные колонки да да
    Динамические столбцы нет да
    Роли да да
    УДАЛИТЬ … ВЕРНУТЬСЯ да нет
    Поддержка GIS да да
    Отчет о проделанной работе ALTER TABLE и LOAD DATA заявление INFILE нет да
    Устранение таблицы нет да
    Управление SQL MySQL Workbench SQLyog (недоступен для Linux)
    Мониторинг MySQL Enterprise Monitor MONyog (SQL Diagnostic Manager для MySQL)
    Резервирование MySQL Enterprise Backup MariaDB Backup
    Выражения общей таблицы SQL (CTE) Да (начиная с версии 8.0) да
    Оконные функции в SQL Да (начиная с версии 8.0) да
    Поддержка JSON да да
    Маскировка данных нет да. (MariaDB MaxScale)
    Шифрование MySQL Enterprise Encryption MariaDB Шифрование
    Брандмауэр базы данных MySQL Enterprise Firewall MaxScale Firewall
    Аудиторская проверка MySQL Enterprise Audit MariaDB Audit
    Аналитика нет MariaDB ColumnStore
    Разметка MySQL Partitioning MariaDB Перегородки
    Маршрутизация MySQL Router MariaDB MaxScale
    Копирование MySQL Replication MariaDB Replication

    MariaDB против MySQL

    Оригинальная версия MySQL была разработана фино-шведской компанией MySQL AB, которую основали Джвид Ахмарк, Аллан Ларссон и Майкл Монти. Первая версия MySQL появилась в 1995 году. Изначально она предназначалась для личного пользования, но спустя несколько лет превратилась в базу данных корпоративного уровня.

    В январе 2008 Sun Microsystems приобрела MySQL AB за 1 миллиард долларов. Вскоре после этого, Oracle купила Sun Microsystems с разрешения Европейской комиссии, которая изначально опасалась, что такое решение повредить свободному проекту MySQL, поскольку он был прямым конкурентом СУБД Oracle. Из-за недоверия к стратегии развития MySQL был создан форк под названием MariaDB.

    Шли годы и за это время MariaDB начала использоваться во многих дистрибутивах Linux по умолчанию. Она используется для обеспечения работы большинства сайтов интернета. В этой статье мы попытаемся выполнить сравнение MySQL vs MariaDB и разобраться почему вторая лучше первой и когда нужна именно оригинальная MySQL.

    1. Процесс разработки

    В отличие от многих других проектов с открытым исходным кодом полученных от Sun Microsystems, Oracle до сих пор развивает MySQL. После того как много разработчиков подали в отставку, были наняты новые люди. Но разработка новых версий MySQL ведется закрыто. Исходный код доступен только команде разработчиков и выгружается в публичный репозиторий только после завершения работы. Все решения обсуждаются внутри компании.

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

    Из-за раскрученности бренда у MySQL все еще есть большое сообщество, но все больше и больше проектов переходят на MariaDB. Такие известные корпоративные дистрибутивы, как REHL 7 и SLES 12 уже используют MariaDB, а это значит, что в сражении MySQL или MariaDB победит последняя.

    2. Частота релизов

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

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

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

    3. Возможности и функциональность

    В целом MariaDB развивается быстрее и имеет больше возможностей. Эти возможности касаются оптимизации, улучшения работы с памятью, и много другого. Обычно, со временем, эти возможности переносятся в MySQL. Например, та же поддержка GIS появилась в MariaDB раньше, чем в MySQL. Среди прочего MariaDB имеет множество улучшений производительности Inodb, MyISAM и движка обработки запросов, поддерживает GIS, ликвидацию таблиц, виртуальные и динамические колонки, репликацию с несколькими источниками, роли и многое другое.

    Но у MariaDB есть и свои минусы, она не поддерживает некоторые возможности, которые есть в MySQL. А именно, MariaDB несовместима с синтаксисом JSON MySQL, не поддерживаются плагины ngram, MeCab, MySQL X, а также пространства таблиц, которые позволяют присваивать данные нескольким таблицам одновременно. Но разработчики активно работают над исправлением недостатков.

    Для тех, кого интересуют кластеры MySQL будет интересно то, что в MariaDB используется новая система репликации Galera, прием ее работа отличается от стандартного master-salve. Galera разрабатывается с 2007 года, но она никогда не включалась в официальную версию MySQL.

    4. Поддержка движков хранения данных

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

    • Aria;
    • XtraDB – улучшенная версия InnoDB;
    • FederatedX – улучшенная версия Federated;
    • OQGRAPH;
    • SphinxSE;
    • IBMDB2I;
    • TokuDB;
    • Cassandra;
    • CONNECT;
    • SEQUENCE;
    • Spider;
    • ColumnStore;
    • MySIAM.

    Напомню, что оригинальная MySQL поддерживает по умолчанию только три типа таблиц – Aria, MySIAM и InnoDB. Это важный аспект в выборе MySQL или MariaDB.

    5. Имя и нумерация версий

    Эти отличия MariaDB от MySQL не столь важны, но, возможно, они будут кому-то интересными. Имя MySQL было дано в честь первой дочери одного из разработчиков – Майкл Монти, ее зовут My. Разработку MariaDB продолжил тот же человек и на этот раз программа была названа в честь его младшей дочери – Марии.

    Что касается версий, то изначально, до версии 5.6 версии MariaDB нумеровались синхронно до версий MySQL, на которых они были основаны. Но когда накопилось достаточно изменений и за основу стал браться код MariaDB номера версий было принято поменять на 10. С того момента нумерация MariaDB выполняется только так.

    Выводы

    В этой статье мы сделали сравнение MySQL vs MariaDB. По большинству параметров MariaDB намного лучше, чем MySQL, поэтому не зря большинство дистрибутивов Linux теперь используют ее по умолчанию в своих репозиториях. Оригинальная версия может понадобиться только в очень редких случаях.

    Следует ли переходить?

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

    Во-первых, продумайте всевозможные риски (руководители высшего звена любят слушать про риск и пользу). Если вы перейдёте на MariaDB, возможно, вы начнёте пользоваться функциями, доступными только для MariaDB (что пока что маловероятно), а затем окажется, что вернуться назад к MySQL, не приложив усилий, не получится. Но осмелюсь предположить, что это не такой уж и риск, если учесть некоторые более масштабные проблемы.

    Поразмышляйте над всеми вопросами насчёт Oracle и её планами по лицензированию MySQL. MySQL с открытыми исходниками идёт вразрез с патентованными и очень конкурентными программами. Только это является поводом для размышлений – будет ли Oracle что-либо предпринимать, чтобы как-то помешать разработке MySQL? Некоторые утверждают, что это уже происходит.

    А что насчёт совместимости MySQL и MariaDB? Команда MariaDB усердно работает над тем, чтобы сделать базу данных полностью совместимой с MySQL, и они продолжают устранять ошибки в исходнике. Однако новые функции (а также схема нумерации версий) предполагают, что, несмотря на все усилия, обе платформы будут сильно различаться.

    Если Oracle добавит к MySQL некоторые новые функции, которые не поддерживаются MariaDB, то очевидно, что они не будут доступными для вас. А если вы будете пользоваться функциями, отсутствующими в MySQL, вы не сможете обратно на него перейти, учитывая, что у вас были причины перейти на другую платформу. MariaDB подаёт все признаки того, что она довольно долгое время будет в ходу, что нельзя сказать о MySQL. Другими словами, даже если новые функции MariaDB могут и не быть полезными для всех, на мой взгляд, существует более чем достаточно причин, чтобы отказаться от MySQL и полностью перейти на MariaDB.


    Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.

    MySQL, MariaDB — в чем разница?

    Информации пока по этому поводу немного. Например Компания RedHat официально объявила о замене пакета MySQL на MariaDB в качестве пакета стандартной СУБД для веб-разработчиков:

    А годом ранее, использовать MariaDB начал community проект Fedora. Пока использовали в качестве теста, оставляя приоритетным пакет mysql, однако в 19й версии главным будет именно пакет mariadb, а mysql будет выкладываться под названием community-mysql:

    MariaDB в Википедии

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

    MariaDB в Мозилле

    Три недели назад обновляли сайт поддержки мозиллы с mysql 5.1 на mariadb 5.5, правда не без косяков, но они были связаны с переходом с 5.1 на 5.5.

    MySQL, MariaDB — в чем разница?

    Многие из вас наверное в курсе что пять лет назад компанию MySQL купила компания Sun, а два года назад компанию Sun купила компания Oracle. Они как-то плохо её развивали, и делали всякие enterprise версии. Главный разработчик Michael Widenius (Monty) создатель MySQL, движка MyISAM и кучи всего — взял всех главных разработчиков и свалил в опенсорс. И они начали переписывать код так чтобы всё было в несколько раз быстрее и оптимизированней. Поэтому-то Фёдора с 17го релиза включала mariadb как альтернативную бд. В 19й версии они совсем заменят миску на марию. Мы с коллегами поглядели тесты, прониклись и решили попробовать уже сейчас.

    Структура самих баз полностью идентична (читай совместима) — разные только сами программы. Подробнее можете почитать на офицальном сайте —https://mariadb.org. Мария должна (как и грядущая mysql 5.6) совсем не снижать производительности при большой нагрузке.

    Для Fedora (и в будущем redhat и centos) система установки через yum очень простая — просто останавливаете Apache и Mysql, удаляете миску (php_mysql тоже удаляется по зависимостям), и ставите марию (и снова php_mysql).

    Для фёдоры она есть в официальном репозитории начиная с 17й версии: http://mirror.yandex.ru/fedora/linux/updates/17/i386/, есть также и «родные» сборки для неё
    http://mirror.timeweb.ru/mariadb/mariadb-5.5.31/yum/fedora17-x86/rpms/
    https://downloads.mariadb.org/mariadb/repositories/ — собственно у них для всего есть свои сборки.

    Новшества

    Совместимость и быстродействие

    Интересные факты

    Создатель этих СУБД (Monty) называл их так в честь своих детей. MySQL — он так назвал в честь дочери My, MariaDB — в честь соответственно Maria и ещё он сделал движок MaxDB назвав соответственно в честь сына. Компания Oracle название mysql оставило себе, так что проект пришлось переименовать. Вместо MyISAM (который тоже в честь My) — он сделал новый движок Aria — который вроде будет очень быстрый. Сначала назвал Maria — но потом подумал что будет много путанницы. В общем объявил конкурс на название и победило Aria

    Вот уже пару недель как наш сервер использует MariaDB 5.5.31 в качестве основной СУБД. Да, да, и этот блог тоже =). (Кстати мы используем фёдору и центос на наших серверах). Полёт отличный. По грубым прикидкам скорость исполнения «медленных» запросов возрасла в 5-10 раз, быстрых запросов в 7-9 раз. Я уже предварительно договорилась с крупным хостинг-провайдером, чтобы они сообщили о результатах внедрения.

    выбираем замену для популярной СУБД — «Хакер»

    Содержание статьи

    Что будет теперь, когда ненавистная и даже глубоко противная истинным сторонникам открытого софта компания Oracle купила многострадальную Sun, а заодно и наш с тобой любимый MySQL? Конец легендарного продукта? Может быть. Но уже сейчас есть куда более функциональные и полностью совместимые разработки!

    MySQL, он же просто «мускул». Бьюсь об заклад, что это единственная СУБД, которая по умолчанию доступна на твоем хостинге. Любимые движки для форума и блога работают на ней. Это фактически стандарт де-факто для любого веб-продукта. Да и в своих проектах ты, вероятнее всего, используешь именно ее. В  Сети миллионы сайтов осуществляют запросы и сохраняют данные в БД с помощью MySQL. И все было просто и понятно до тех пор, пока компанию Sun вместе с ее любимым мускулом неожиданно не купила корпорация Oracle. Учитывая, что основным продуктом последней является мощнейшая СУБД с одноименным названием, сообщество сильно тревожилось о дальнейшей судьбе MySQL. И не напрасно. Компания Oracle, конечно же, выступила с заявлением, что все в порядке: проект по-прежнему будет развиваться. Но многим верится в это с трудом. Ведь даже быстрый выпуск версии 5.5, которую многие так ждали, не дал положительных результатов: старые баги как были, так и остались. Разве ж это дело? Но параллельно с оригинальным MySQL уже давно развиваются альтернативные проекты, которые совместимы с оригинальной СУБД, но во многом даже превосходят ее. И об этом мы сейчас и поговорим.

     

    Движок БД — что это такое?

    Если немного упростить понятия, то база данных — это обертка вокруг движка хранения данных. Она занимается приемом запросов и управлением ими, кэшированием и прочими обслуживающими функциями, обеспечивая работу с низкоуровневым API движка. Последний, в свою очередь, собственно и хранит данные (на диске или в памяти), работает с операционной системой и обеспечивает выдачу нужных выборок по запросу от сервера. Если раньше СУБД (связка «сервер + движок») была монолитная, то теперь во всех системах используется структура с плагинами. Движок в такой организации является просто модулем, а сам сервер не зависит от системы хранения данных. В последних редакциях классического MySQL также используется плагинная архитектура. Поэтому встроенный движок InnoDB (правда, обычно устаревшей версии) можно легко заменить на модуль другого проекта, который часто будет лучше. В альтернативных мускулу разработках, в том числе MariaDB или Drizzle, все движки изначально выполнены как плагины. Попробую кратко пробежаться по современным движкам хранения данных в MySQL-совместимых СУБД.

    • InnoDB — основной движок для мускула, который с версии 5.5 наконец-то сделали дефолтным. Поддерживает транзакции, репликацию, построчную блокировку. Достаточно устойчив к сбоям.
    • MyISAM — очень проблемный движок, плохо переносящий крах сервера. Не поддерживает транзакции, но зато может похвастаться полнотекстовыми индексами и быстротой работы. Долгое время был стандартным для всех версий MySQL, а потому до сих пор является самым популярным.
    • Aria — замена для MyISAM с поддержкой транзакций и улучшенной работой с памятью. Движок гарантирует целостность данных и при этом не уступает в скорости MyISAM.
    • CVS — специализированный движок на случай, когда требуется хранить и обрабатывать большие массивы строковых данных, разделяемых запятой.
    • Federated/FederatedX — этот движок специализируется на прозрачном разнесении данных по нескольким серверам (физическим) на уровне таблицы.
    • PBXT — призванный заменить InnoDB новый движок, в котором реализованы полная поддержка транзакций, многоверсионность, автоматическая обработка дедлоков. Движок оптимизирован для большого количества одновременных транзакций.
    • Blackhole — служебный движок, представляющий собой, по сути, /dev/null для СУБД и фактически не производящий никаких записей на диск. Используется для репликации.
    • Archive — движок, который максимально быстро работает на запись. Используется в тех случаях, когда необходимо хостить большие массивы данных. Для эффективности хранения используется сжатие, что приводит к медлительности во время выборок. Движок хорошо подходит для долговременного хранения логов и другой служебной информации.
    • XtraDB — расширенная и исправленная в некоторых проблемных местах InnoDB от компании Percona.
    • MERGE — схожий с Federated движок для разнесения данных в одной таблице на несколько разных.
    • MEMORY — движок, использующийся для хранения данных не на диске, а в памяти. Информация из базы доступна только во время работы сервера, но это дает колоссальный прирост в производительности.
    • BlitzDB — еще одна замена для MyISAM с хорошей производительностью за счет встроенного построчного кэширования и автоматического восстановления после сбоев. Движок не поддерживает транзакции.
    • NDB — движок для кластера, обладающий, впрочем, кучей проблем и удручающе плохой производительностью.
    • Falcon — легендарный движок от компании MySQL AB, разрабатываемый еще со времен Sun, когда было принято решение заменить оракловский InnoDB.
    • SphinxSE — полнотекстовый движок от создателя поискового сервера Sphinx. Лучший вариант для полнотекстового поиска и индексации по правилам русского языка. Легко оперирует терабайтами данных, обеспечивая при этом все возможности современной БД.

     

    Важная вещь — совместимость

    Итак, мы взялись за непростую задачу — найти замену для MySQL. Но если менять, то на что? Только не беги с криками «Да отстой ваш мускул — бери слона, то есть PostgreSQL». Не выйдет! Сейчас столько кода написано с поддержкой MySQL, что переписать или искать замену — себе дороже. Причем в прямом смысле — часто уложиться в рамки разумных финансовых затрат просто невозможно. Хорошо, если речь идет о простецком форуме или блоге (обычно в них  реализована поддержка сразу нескольких систем). Но что если это что-то самописное или заточенное под возможности именно MySQL? Тут все ох как непросто. Так что наша задача — сохранить мускулы (то есть полную совместимость с MySQL), но прокачать их так, чтобы не зависеть от старшего тренера и его стероидов.

    Разработчики и идеологи самого MySQL далеко не дураки и сами предвидели ситуацию, что после поглощения сложно будет всем. Некоторые из них решили даже покинуть компанию и основать свои проекты, прихватив тогда еще свободные коды мускула. Благодаря этому сейчас есть несколько интересных продуктов, основанных на коде оригинального сервера, но с большими доработками и изменениями во всем, куда только удалось дотянуться разработчикам. Первым делом энтузиасты освободились от бремени движка InnoDB, правами на который уже давно обладает все тот же самый Oracle. На замену ему выкатили несколько движков, которые стали доступными в MariaDB.


    Архитектура MySQL — теперь уже как пособие по устройству некогда великой СУБД

     

    MariaDB

    История этого сервера уходит в далекий 2008 год, когда один из главных разработчиков MySQL, осознавая, что сильно связан поставленными работодателем рамками, уволился и основал свою компанию, которая занялась исправлением родовых травм MySQL. Я говорю о дефолтном движке MyISAM, который необходимо было менять, и критических багах, на исправление которых уходило неприемлемое количество времени. Что получилось у создателей MariaDB? Замечательный продукт, который на уровне протокола, формата файлов и языка SQL идентичен с оригинальной версией MySQL. Это предоставляет возможность безболезненного перехода: без потери данных или изменения логики работы имеющегося кода.

    «Но какие бонусы я получу от перехода?», — спросишь ты. Взамен мы получаем большую скорость работы и новые фичи, которых, возможно, вообще никогда не будет в мускуле. Например, интегрированный в сам сервер поисковый движок Sphinx, который не придется ставить отдельно, расширенные возможности по бэкапу и управлению данными и так далее.

    Надо сказать, что многие очень крупные компании (в том числе такие звери, как Google и Facebook) давно используют MariaDB. По сети гуляет специальный набор патчей, которые после наложения на исходные коды оригинального мускула решают многие проблемы. Однако не жди их появления в официальном сервере — если за столько лет не сподобились, то вряд ли в следующей версии решатся. Разработчики MariaDB же пока свободны от корпоративных правил и маркетинговых ограничений, поэтому новые патчи и исправления багов принимаются достаточно быстро.

    Если оригинальный мускул держится на двух китах — движках хранения данных InnoDB и MyISAM, то MariaDB использует свои собственные, выступающие продвинутыми заменителями. Движок Aria пришел на замену MyISAM и на деле куда более производителен благодаря построчному кэшированию и оптимизированному формату упаковки данных. Если оригинальный MyISAM был быстр за счет отказа от транзакций, что означало возможную потерю данных, то Aria одновременно и производителен, и безопасен. За счет улучшенных форматов для хранения информации MariaDB существенно быстрее восстанавливается после сбоев, не требуя отдельных процедур проверки данных после краха. Принадлежащий Oracle движок InnoDB заменен на XtraDB, разработку другой компании в области БД Percona. Последняя известна своими сборками MySQL с интегрированными патчами от Гугла и Фейсбука, а также расширенными инструментами администрирования. Команда имеет необычную историю (подробнее ты можешь прочитать во врезке) и сейчас активно занимается созданием нового мускула. Для обратной совместимости с MySQL движок XtraDB в MariaDB даже называется точно так же, то есть InnoDB. Но надо понимать, что на самом деле сохранилось только название, дабы не смущать софт непривычными идентификаторами.

    Первым проектом молодой компании Oracle была разработка по заказу разведчиков учетной системы, за которую на конкурсе другие компании запрашивали под $2 000 000, а молодой Ларри Элисон заносчиво указал сумму всего в $300 000. Стоит ли говорить, что проект был провален, зато компания получила стартовый капитал и начала свое восхождение.

     

    Дополнительные движки

    Об XtraDB стоит поговорить более детально: по мнению многих специалистов это номер один в мире движок для БД. Более того, он обставляет оракловский InnoDB, как маленького :). Ключевая фича — долгожданная поддержка многоядерных и многопроцессорных систем, чем ну никак не хочет (или не может?) похвастаться MySQL. Патчи от Google давно решили эту проблему, но, как всегда, их не удосужились включить в оригинальный движок, поэтому MySQL с точки зрения производительности плетется далеко позади по любым бенчмаркам. Разработчики XtraDB значительно улучшили стратегию использования дискового I/O, что раньше ограничивало производительность из-за тормозов со сбросом данных на диск из кэша. Соответствующими опциями теперь можно тонко управлять из настроек, что позволяет особо продвинутым админам подтюнить производительность демона самому, не обращаясь к дорогим специалистам по базам данных. Тем более, что из коробки доступна детальная статистика по работе движка, что сводит на нет потребность в дорогом коммерческом софте для анализа производительности базы данных. Нужна лишь одна команда SHOW ENGINE INNODB STATUS. И немаловажный момент — скорость восстановления после сбоя: если уж он и случился, восстановление будет не просто быстрым, а почти реактивным, зачастую до десяти раз быстрее, чем в MySQL. А также множество других мелочей: буферы для записей, адаптивные чекпоинты и увеличенное число открытых транзакций. Все это позволит серверу хорошо чувствовать себя в очень нагруженных условиях.

    Если тебе и этого не хватает, и ты киваешь головой в сторону Firebird или PosgreSQL, намекая, что там есть и полная поддержка транзакционной модели и даже MVCC (Multiversion Concurrency Control — конкурентная модель данных на базе версионности, что позволяет без блокировок производить обновление и чтение одной и той же строки данных) — расслабься. В MariaDB доступен движок PBXT, который в некоторых ситуациях еще более крут, чем все вышеперечисленные. Правда, тут сразу стоит сказать, что он не такой универсальный и его нужно уметь готовить! PBXT в основном заточен под большое количество транзакций, которые пишут или изменяют данные, поддерживает быстрый откат и умеет сам разрешать сложные ситуации с блокировками и дедлоками. Например, если хочешь сделать хранилище логов, то у тебя будет огромное количество операций записи в таблицу, но сравнительно мало чтения. В то же время, если кто-то все-таки захочет сделать выборку из БД, он получит максимально свежие данные, не мешая при этом записи новых. И для совсем уж извращенцев есть движок FederatedX, умеющий распределять таблицу данных на несколько физических серверов, а также OQGRAPH, оптимизированный для хранения иерархических структур, графов и деревьев. Подход, идеально подходящий для создания клона Facebook и ВКонтакте, где требуется работать с социальным графом отношений между людьми, что плоховато вписывается в типичную модель баз данных.

     

    Cloud Computing

    Разработчики другого проекта — Drizzle — пошли по немного другому пути и решили вообще переосмыслить место базы данных в инфраструктуре типичного проекта. Вспомнили, что сейчас модно: cloud computing, Google Proto Buffers, масштабируемость, многоядерность и прочее. И подумали: база данных также должна двигаться вместе с современными технологиями, а не плестись в конце, вне зависимости от того, что на ней крутится — блоговый движок или крупная корпоративная CRM-система. Под шумок было решено упростить функционал оригинальной MySQL, выкинув тянущиеся из релиза в релиз возможности, которые в действительности мало кому нужны. Система утратила поддержку UNIX-сокетов (это хотя и спорное, но вполне допустимое решение ввиду направленности на облачные среды) и версию для Windows. В Drizzle нет никаких служебных баз и многих других привычных вещей. Но что же тогда есть?


    Drizzle благодаря простой микроядерной и плагинной архитектуре умеет многое

    А есть архитектура с микроядром, в которое вынесены все основные операции и поддержка протоколов, а также система плагинов, позволяющая расширить систему в любую сторону и на любую глубину. В качестве одной из основных системных компонент используется бинарный протокол от Google — Protocol Buffer. С его помощью описываются как таблицы, так и данные, он же применяется и для репликации. Основной упор в разработке сделан на максимальную поддержку многопоточности и многопроцессорности, так что масштабируемость — это основное достижение разработчиков. Реализована поддержка как стандартного MySQL-протокола, так и собственного варианта — через библиотеку libdrizzle и драйвера для большинства популярных языков, включая Perl, PHP, Python и Lua. При желании можно использовать клиентскую библиотеку и без самого сервера: в этом случае ты получишь эффективный асинхронный доступ к любимому MySQL. Поскольку эта же компания разработала и систему Gearman, то в Drizzle есть встроенная поддержка логирования в распределенной среде, нативное кэширование в memcache и даже такие продвинутые возможности, как репликация через системы сообщений типа RabbitMQ (используется в том числе новомодная технология WebSocket). В качестве основного движка хранения данных в Drizzle используется особая версия InnoDB, значительно переработанная и дополненная набором сторонних патчей. Также доступны движки XtraDB и PBXT. Если первые версии Drizzle основывались на MySQL 5.0, то теперь от оригинальной СУБД осталось немногое. Это почти полностью переписанный код с минимальной оглядкой на бывших родственников. На данный момент разработка Drizzle пребывает в активном состоянии, и к весне планируется первый стабильный релиз.

     

    NoSQL-тренд

    Ты наверняка знаешь о новомодном тренде NoSQL. По сути, это отказ от традиционного сервера базы данных с его таблицами и SQL-запросами и уход к самой простой схеме хранения данных «ключ-значение» (key-value). Для реализации последнего часто используются продвинутые типы данных вроде списков/хэшей (в Redis) или, например, формата JSON (в MongoDB). Но что мешает скрестить удава и ежа, используя, с одной стороны, всю мощь и годами отработанную технологию баз данных и их движков, а с другой — упрощенный протокол и отказ от громоздкой прослойки в виде обработки SQL-языка запросов? Суровым наследникам самураев не помешало ничего: японские парни из Yoshinori Matsunobu сделали плагин HandlerSocket, превращающий стандартный движок InnoDB в продвинутое NoSQL-хранилище, не мешая при этом работе обычного SQL. Скорость работы впечатляет: до 750 000 операций в секунду! Неудивительно, что компания Percona сразу же взяла на вооружение этот плагин, включив его в свои сборки сервера. Круто! Но, с другой стороны, как еще если не костылем можно назвать решение, которое имитирует то, что у нормальной БД типа Drizzle реализовано прямо из коробки в силу внутренней архитектуры?

     

    Делаем выводы

    Если ты обеспокоен развитием MySQL, тебе не нравится политика Oracle и ты справедливо опасаешься, что завтра тебя обяжут платить за функционал, который еще вчера был бесплатен, посмотри вокруг. Сообщество отреагировало на покупку MySQL как на начало заката технологии, некогда выведшей современный веб на недостижимую высоту благодаря стеку LAMP (Linux-Apache-MySQL-PHP). Ключевые разработчики начали развитие собственных форков, некоторые из которых уже сейчас на голову превосходят старый MySQL. За ними стоят многие знаковые фигуры и открытое сообщество. Сделав все по уму, разработчики умудрились оставить 100% внешней совместимости с приложениями и протоколами. Поэтому все желающие поставить новый сервер не окажутся у разбитого корыта: данные сохранятся, а приложения не придется переписывать. Многие вообще не заметят разницы, кроме возросшей скорости работы и надежности.

    Уже сейчас ты можешь заменить свой сервер баз данных, так что имеющиеся приложения даже не почувствуют разницы, получив при этом гораздо большую скорость работы, надежность и массу недоступных в оригинальном мускуле фишек. MariaDB с набором движков — отличный вариант для старта. Ну а если ты задумал грандиозный проект с большим количеством серверов и гигабайтами данных, посмотри на Drizzle. Как программный продукт и как сервер баз данных он является очень перспективной разработкой, которая обязательно выстрелит уже в этом году. Если же хочется стабильности и поддержки самыми лучшими специалистами по базам данных — не бойся отвернуться от Oracle и пойти к Perconа. Ребята раздают бесплатно свою версию СУБД — исправляя, насколько это возможно, баги и добавляя фичи для увеличения производительности оригинального MySQL, не нарушая при этом совместимости. Ты все еще сидишь на стареньком мускуле? Тогда мы идем к тебе!

     

    Links

    [2020] Все, что вам нужно знать

    MySQL — одна из наиболее широко используемых баз данных в мире. Это бесплатно и с открытым исходным кодом. MySQL, разработанный на C / C ++, является одним из самых популярных вариантов баз данных.

    База данных была создана шведской компанией MySQL AB в 1995 году. Позже MySQL AB была приобретена Sun Microsystems в 2008 году. Позже Sun Microsystems была приобретена Oracle в 2010 году. С тех пор MySQL поддерживается и управляется Oracle.

    Во время приобретения Sun Microsystems компанией Oracle некоторые старшие инженеры, работавшие над разработкой MySQL, почувствовали конфликт интересов между MySQL и коммерческой базой данных Oracle — Oracle Database Server.В результате эти инженеры создали вилку базы кода MySQL и основали свою собственную организацию. Так родился MariaDB.

    На сегодняшний день обе базы данных очень популярны и широко используются сообществом разработчиков. MySQL занимает 2-е место среди реляционных баз данных и 2-е место в целом (1-е место — база данных Oracle). Напротив, MariaDB немного отстает — 9-е место среди реляционных баз данных и 14-е место в целом.

    MariaDB против MySQL

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

    MariaDB и MySQL Сравнение производительности

    MariaDB имеет несколько оптимизаций, направленных на повышение производительности по сравнению с MySQL. Фактически, это было именно то видение, когда MariaDB была основана Майклом Видениусом, первоначальным основателем как MySQL, так и MariaDB.

    Просмотры базы данных

    В качестве примера, есть огромная оптимизация производительности в отношении «представлений» базы данных. «Представления» по сути являются виртуальными таблицами базы данных, к которым можно обращаться как к обычным таблицам базы данных.В MySQL, когда вы запрашиваете представление, запрашиваются все таблицы, которые связаны с представлением, независимо от того, что для запроса могут не потребоваться некоторые из представлений. Это было оптимизировано в MariaDB, где запрашиваются только те таблицы, которые требуются для запроса.

    ColumnStore

    В качестве другого примера MariaDB обеспечивает еще одно мощное улучшение производительности в виде «ColumnStore», который представляет собой распределенную архитектуру данных, которая позволяет значительно масштабировать MariaDB.Он может линейно масштабироваться для хранения петабайт данных на различных серверах в кластере базы данных.

    Лучшая производительность во флеш-хранилище

    MariaDB также предоставляет механизм хранения MyRocks, который добавляет к нему базу данных RocksDB. RocksDB — это база данных, которая была разработана для повышения производительности во флэш-хранилищах за счет обеспечения более высокого уровня сжатия данных.

    Кэш сегментированных ключей

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

    Виртуальные столбцы

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

    Параллельное выполнение запросов

    Одна из последних версий MariaDB — 10.0 позволяет параллельно выполнять несколько запросов. Идея состоит в том, что некоторые запросы от Мастера могут быть реплицированы на ведомом и, следовательно, могут выполняться параллельно. Этот параллелизм в выполнении запросов, безусловно, дает MariaDB преимущество перед MySQL.

    Объединение потоков

    MariaDB также представляет новую концепцию под названием «пул потоков».Раньше, когда требовалось несколько подключений к базе данных, для каждого подключения открывался поток, что приводило к архитектуре на основе «один поток на подключение». При использовании «пула потоков» будет существовать пул открытых потоков, которые новое соединение может выбрать и запросить базу данных. Таким образом, нет необходимости открывать новый поток для каждого нового запроса на соединение, что приводит к более быстрым результатам запроса. Эта функция доступна в версии MySQL Enterprise, но, к сожалению, недоступна в версии Community.

    Двигатели для хранения

    MariaDB предоставляет несколько мощных механизмов хранения «из коробки», которых нет в MySQL. Например, XtraDB, Aria и т. Д. Чтобы настроить эти механизмы хранения для MySQL, вам необходимо установить их вручную, что может быть не самым удобным.

    Совместимость

    Команда

    MariaDB заботится о том, чтобы MariaDB могла легко заменить MySQL в существующих приложениях. Фактически, для каждой версии MySQL они выпускают один и тот же номер версии MariaDB, чтобы указать, что MariaDB в целом совместима с соответствующей версией MySQL.Это открывает возможность беспрепятственного перехода на MariaDB без каких-либо изменений в кодовой базе приложения.

    Открытый исходный код и проприетарная база данных

    MySQL — это большой проект, которым управляет одна из крупнейших организаций в мире — Oracle. В этом есть свои плюсы и минусы. Один из самых больших недостатков заключается в том, что выпуск новых функций в крупных организациях занимает много времени. С другой стороны, MariaDB имеет полностью открытый исходный код, и они довольно быстро принимают участие со стороны и выпускают новые функции и улучшения.Это еще один момент, который необходимо учитывать при выборе между MySQL и MariaDB.

    Заключение

    MariaDB, несомненно, довольно мощный и предоставляет множество функций, которые чрезвычайно полезны и не поддерживаются в MySQL. Такие функции действительно делают MariaDB выгодным выбором для использования в качестве основной серверной базы данных. Вообще говоря, организациям, которые уже приобрели лицензии для Oracle, не нужно вкладывать средства в MariaDB. Однако для тех, кто начинает все заново и хочет решить, какую базу данных использовать, несомненно, MariaDB — лучший выбор.

    Какую базу данных вы выберете, на Hackr.io есть руководства по программированию, рекомендованные сообществом для обоих:

    Еще читают:

    .

    MariaDB против MySQL: противостояние

    Anno di pubblicazione 1995 г. 2009 г.
    Versione attuale MySQL 8.0.11 MariaDB 10.3.8
    Свилуппатори Oracle MariaDB Corporation Ab (MariaDB Enterprise) MariaDB Foundation (MariaDB Server)
    Licenza Sistema di licenza duale (собственность GPL 2) GPL 2
    Sistemi operativi Oracle LinuxRed HatCentOSOracle SolarisUbuntuDebian SUSE Enterprise LinuxMicrosoft WindowsMicrosoft Windows ServerApple macOSFreeBSDSolaris Red Hat / CentOSUbuntuDebian Mint SUSE Enterprise Linux openSUSEMicrosoft Windows ServerMicrosoft WindowsManjaroFedoraArch Linux Apple macOS
    Linguaggi di programmazione C e C ++ C, C ++, Баш и Perl
    Modello di database primario Modello di database relazionale Modello di database relazionale
    База данных modello di secondario Модель базы данных, ориентированная на документацию, значение ключа базы данных Modello di database orientato al documento База данных ключ значение База данных orientato alla grafica
    Интерфейс SQL
    Интерфейс NoSQL
    Protocollo Протокол MySQL Протокол MySQL
    Реплика Replica con GTID (глобальный идентификатор транзакции) — Replica Master Master — Replica Master Slave Replica con GTID (глобальный идентификатор транзакции) — Replica Master Master — Replica Master Slave
    Поддержка в памяти
    Маршрутизация Маршрутизатор MySQL (GPLv2) MariaDB MaxScale (BSL)
    Partizionamento (шардинг) Partizionamento orizzontale, сегментирование с MySQL Cluster или MySQL Fabric Partizionamento orizzontale, sharding mediante spider, CONNECT o Galera
    Управление SQL MySQL Workbench (Microsoft Windows, macOS и Linux) SQLyog di Webyog (Microsoft Windows, Linux)
    Монитораджо MySQL Enterprise Monitor (собственный) Monyog di Webyog (Microsoft Windows e Linux) (собственный)
    Цифратура Cifratura di dati inattivi- Табличное пространство InnoDB Изображение неактивных данных — Табличное пространство InnoDB — Табель InnoDB — Файл журнала InnoDB — Табель Ария — Временной файл — Бинлоги
    Controllo d’accesso basato sui ruoli Нет
    Autenticazione Autenticazione через SHA-256 Autenticazione через плагин ed25519
    Mascheramento dei dati Через ProxySQL Через MariaDB MaxScale (BSL)
    Межсетевой экран Через MySQL Enterprise Firewall (собственный) Через MariaDB MaxScale (BSL)
    Аудит Через MySQL Enterprise Audit Plugin (собственный) Через плагин MariaDB Audit
    Analisi Нет Через MariaDB ColumnStore
    Маршрутизация и балансировка нагрузки Через маршрутизатор MySQL Через MariaDB MaxScale (BSL)
    Резервное копирование Через MySQL Enterprise Backup (собственный) Через MariaDB Backup (форк Percona XtraBackup)
    Общее табличное выражение (CTE)
    Funzione Finestra
    Tabelle temporali con gestione versione Нет
    Перезапись запросов Нет
    Типи ди Дати Строка (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON) Numerico (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOANUBLE) Data, / oBOOLE DATE, DATETIME, TIMESTAMP, TIME, YEAR) Типы данных больших объектов (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB) Строка (CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, ENUM, SET, BINARY, VARBINARY, JSON) Numerico (BIT, TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, DECIMAL, FLOAT, DOANUBLE) Data, / oBOOLE DATE, DATETIME, TIMESTAMP, TIME, YEAR) Типы данных больших объектов (TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB)
    Tipi di dati spaziali GEOMETRYPOINTLINESTRINGPOLYGON MULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION GEOMETRYPOINTLINESTRINGPOLYGONMULTIPOINTMULTILINESTRINGMULTIPOLYGONGEOMETRYCOLLECTION
    База данных Motori del InnoDBMyISAMMEMORYCSVArchivioBLACKHOLE MergeFederated InnoDB / XtraDBMyISAMMEMORYCSVArchivioBLACKHOLE MergeFederatedXColumnStoreAriaCassandra CONNECTMroongaMyRocksOQGRAPHequence SphinxSESpiderTokuDB
    Connettori ufficiali ODBCC ++ CADO.NETJDBCPHPPythonPerlRuby Node.js ODBCC ++ CADO.NETJDBCPHPPythonPerlRubyExcelJavaScriptSwiftR
    .

    Обновление до MariaDB с MySQL 5.0 или более ранней версии

    Если вы обновляетесь до MariaDB 5.1 с MySQL 5.1, вам не нужно ничего делать с вашими данными или клиентами MySQL. Вещи должны «просто работать».

    При обновлении между различными основными версиями MariaDB или MySQL вам необходимо запустите программу mysql_upgrade для преобразования данных, несовместимых между версиями. Это также обновит ваши таблицы привилегий в базе данных mysql до последнего формата.

    Почти во всех случаях mysql_upgrade должен иметь возможность преобразовывать ваши таблицы без необходимости выгрузки и восстановления ваших данных.

    После установки MariaDB просто выполните:

     mysql_upgrade --verbose
     

    Если вы хотите работать с определенным портом TCP / IP, выполните:

     mysql_upgrade --host = 127.0.0.1 --port = 3308 --protocol = TCP
     

    Если вы хотите подключиться к розетке, сделайте:

     mysql_upgrade --socket = 127.0.0.1 --protocol = сокет
     

    Чтобы увидеть другие параметры, используйте —help.

    «mysql_upgrade» считывает разделы my.cnf [mysql_upgrade] и [client] для значений по умолчанию.

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

    • Параметры сортировки (порядок сортировки) для столбца индекса изменились
    • Тип поля изменил формат хранения
    • Двигатель имеет новый формат хранения
      • АРХИВ изменил формат хранения с 5.0 и 5.1
    • Изменился формат хранения имен таблиц
      • В MySQL 5.1 имена таблиц закодированы так, что имена файлов идентичны на всех компьютерах. Старые имена таблиц, которые содержат запрещенные символы имени файла, будут отображаться с префиксом # mysql50 # в SHOW TABLES , пока вы их не конвертируете.

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

    • Вы будете получать предупреждения в журнале ошибок каждый раз, когда обращаетесь к таблице с недопустимым (старым) именем файла.
    • При поиске по ключевым значениям вы не можете найти все строки
    • Вы получите сообщение об ошибке «ОШИБКА 1459 (HY000): требуется обновление таблицы» при доступе к таблице.
    • Возможны сбои

    «mysql_upgrade» работает, вызывая mysqlcheck с различными параметрами и выполняя сценарий «mysql_fix_privileges». Если у вас возникли проблемы с «mysql_upgrade», вы можете запустить эти команды отдельно, чтобы получить больше информации о том, что происходит.

    Большинство вещей в MySQL 5.1 раздел руководства также относится к MariaDB.

    Между mysql_upgrade в MariaDB и MySQL (начиная с MariaDB 5.1.50) существуют следующие различия:

    • MariaDB правильно преобразует длинные имена таблиц.
    • MariaDB преобразует таблицы InnoDB (нет необходимости делать дамп / восстановление или ALTER TABLE ).
    • MariaDB преобразует старые архивные таблицы в новый формат 5.1 (примечание: новая функция находится в стадии тестирования).
    • «mysql_upgrade —verbose» запустит «mysqlcheck —verbose», чтобы вы получили больше информации о том, что происходит.
    .
    Theme: Overlay by Kaira Extra Text
    Cape Town, South Africa