Установка mysql в ubuntu 20.04
Содержание:
Далее о нюансах[править]
1. Конфигурационный файл расположен:
/var/lib/mysql/my.cnf
После правок перезагружать сервис: service mysqld restart.
2. Подключения к базе данных. При обычных параметрах, подключения идут к базе локально (localhost, 127.0.0.1, 0.0.0.0). Но если нам требуется подключится к базе из другого места, нужно думать заранее.
Потому, что из соображений безопасности доступа к базе все подключения из вне отрублены. Такие необходимости возникают при необходимости подключится допустим из среды разработки NetBeans.
При попытке подключения нам будет выдано сообщение:
"Host '192.168.0.2' is not allowed to connect to this MySQL server"
Решением будет, только указание расположения подключающегося клиента при его создании.
GRANT ALL PRIVILEGES ON *.* TO 'igor'@'10.3.3.23' IDENTIFIED BY 'you_own_pass' WITH GRANT OPTION; или GRANT ALL PRIVILEGES ON *.* TO 'swopster'@'192.168.0.2' IDENTIFIED BY 'you_own_pass' WITH GRANT OPTION;
3.Как получить доступ к MySQL из сети? Если действительно необходимо и доступ ограничивается внешними средствами — закомменируйте (поставьте знак # в начале строки) параметр
skip-networking
в файле /var/lib/mysql/my.cnf, с последующим перезапуском службы mysqld.
4. Посмотреть на каком порту, для каких интерфейсов работает mysqld демон, командой:
netlist -tap ----- в выводе будет, что-то наподобие: root 13449 mysqld 3 tcp 0.0.0.0:3306 0.0.0.0:0 LISTEN
Видно, что mysql работает для всех интерфейсов и слушает 3306 порт.
О кодировках в MySQL 5.xправить
В ALT Linux кодировка, передаваемая через параметр -C в mysqld, задаётся через CHSET в /etc/sysconfig/mysqld, либо определяется по системной локали.
Это —character-set-server — кодировка, используемая сервером по умолчанию.
Как нужно настроить сервер, чтобы по умолчанию кодировка была cp1251, но это можно было переопределять на utf8?
Кодировку и таблицу сортировки, используемые по умолчанию в сервере, лучше задавать в my.cnf:
character_set_server = utf8 collation_server = utf8_general_ci
Для клиентов (например, команды mysql) кодировка указывается в секции файла my.cnf:
default-character-set=cp1251
При открытии соединения с базой нужно указывать кодировку, в которой клиент будет работать с базой. Это можно сделать строкой
init-connect="SET NAMES cp1251"
в my.cnf. Команда set names устанавливает при подсоединении такие переменные как set_client, set_result, collaction_client, что позволяет серверу корректно воспринимать запросы и возвращать ответы.
Обратите внимание, что имена (таблиц и полей) хранятся в сервере в кодировке utf8 и это неизменяемо.
Что насчёт их кодировки в запросе?
Включение логирования каждого запроса:править
Отредактируем файл настроек:
mcedit /var/lib/mysql/my.cnf # for logging general_log_file = /log/query general_log = 1
Логи будут тут:
/var/lib/mysql/log/query
Важно отметить, что пути отсчитываются от корня чрута, то есть от
/var/lib/mysql/
по-умолчанию.
Команды MySQL
SHOW
- SHOW DATABASES; — список баз данных
- SHOW TABLES ; — список таблиц в базе
- SHOW COLUMNS FROM таблица ; — список столбцов в таблице
- SHOW CREATE TABLE table_name; — показать структуру таблицы в формате «CREATE TABLE»
- SHOW INDEX FROM tbl_name; — список индексов
- SHOW GRANTS FOR user ; — привилегии для пользователя.
- SHOW VARIABLES; — значения системных переменных
-
SHOW FULL PROCESSLIST;
SHOW PROCESSLIST; — статистика по mysqld процессам. Удалить процесс: Синтаксис команды KILL
- SHOW STATUS; — общая статистика
- SHOW TABLE STATUS ; — статистика по всем таблицам в базе
DESCRIBE
Команда DESCRIBE предоставляет информацию о столбцах таблицы.
DESCRIBE таблица; сокращенный вариант команды SHOW COLUMNS FROM
How to Add Information to a MySQL Table
We have a working table for our party. Now it’s time to start filling in the details.
Use this format to insert information into each row:
INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "John", "Casserole","Y", '2012-04-11');
Query OK, 1 row affected (0.00 sec)
INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "Sandy", "Key Lime Tarts","N", '2012-04-14'); INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "Tom", "BBQ","Y", '2012-04-18'); INSERT INTO `potluck` (`id`,`name`,`food`,`confirmed`,`signup_date`) VALUES (NULL, "Tina", "Salad","Y", '2012-04-10');
We can take a look at our table:
mysql> SELECT * FROM potluck; +----+-------+----------------+-----------+-------------+ | id | name | food | confirmed | signup_date | +----+-------+----------------+-----------+-------------+ | 1 | John | Casserole | Y | 2012-04-11 | | 2 | Sandy | Key Lime Tarts | N | 2012-04-14 | | 3 | Tom | BBQ | Y | 2012-04-18 | | 4 | Tina | Salad | Y | 2012-04-10 | +----+-------+----------------+-----------+-------------+ 4 rows in set (0.00 sec)
How to Create and Delete a MySQL Database
MySQL organizes its information into databases; each one can hold tables with specific data.
You can quickly check what databases are available by typing:
SHOW DATABASES;
Your screen should look something like this:
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.01 sec)
Creating a database is very easy:
CREATE DATABASE database name;
In this case, for example, we will call our database «events.»
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | events | | mysql | | performance_schema | | test | +--------------------+ 5 rows in set (0.00 sec)
In MySQL, the phrase most often used to delete objects is Drop. You would delete a MySQL database with this command:
DROP DATABASE database name;
Настройка MySQL
Во время установки можно выполнить скрипт для повышения безопасности MySQL. Этот скрипт проанализирует учетные записи пользователей MySQL с административными привелениями (root, admin и т.п.) и выключит все лишнее. В последних версиях MySQL этот скрипт запускается автоматически, тогда как в более старых версиях требовалось запускать этот скрипт вручную.
sudo mysql_secure_installation
Вам будут предложены шаги для внесения необходимых изменений в параметры безопасности MySQL. В первом запросе будет задан вопрос о том, хотите ли вы установить плагин для паролей, чтобы проверить надежность пароля MySQL. Вторая нотификация попросит вас установить пароль рута MySQL. Подтвердите выбранный пароль.
После, нажав « Y » и « Ввод », примутся значения по умолчанию. При этом анонимные пользователи и тестовая база данных будут удалены. Это также отключит удаленный вход в систему для root и активирует новые правила безопасности, установленные скриптом.
Для инициализации каталога данных MySQL применяйте команду « mysql_install_db » для предыдущих версий 5.7.6, а для версий после этого используйте « mysqld –initialize» . Если MySQL установлен из дистрибутива Debian, каталог данных инициализируется по умолчанию. Никаких дополнительных действий не требуется.
Следует отметить, что установка пароля для корневого пользователя MySQL не гарантирует, что пользователь имеет аутентификацию с паролем для подключения к оболочке MySQL. При необходимости, следуя шагу 3, вы можете отрегулировать этот параметр.
Step 2 — Configuring MySQL
For fresh installations, you’ll want to run the included security script. This changes some of the less secure default options for things like remote root logins and sample users. On older versions of MySQL, you needed to initialize the data directory manually as well, but this is done automatically now.
Run the security script:
This will take you through a series of prompts where you can make some changes to your MySQL installation’s security options. The first prompt will ask whether you’d like to set up the Validate Password Plugin, which can be used to test the strength of your MySQL password. Regardless of your choice, the next prompt will be to set a password for the MySQL root user. Enter and then confirm a secure password of your choice.
From there, you can press and then to accept the defaults for all the subsequent questions. This will remove some anonymous users and the test database, disable remote root logins, and load these new rules so that MySQL immediately respects the changes you have made.
To initialize the MySQL data directory, you would use for versions before 5.7.6, and for 5.7.6 and later. However, if you installed MySQL from the Debian distribution, as described in Step 1, the data directory was initialized automatically; you don’t have to do anything. If you try running the command anyway, you’ll see the following error:
Output
Note that even though you’ve set a password for the root MySQL user, this user is not configured to authenticate with a password when connecting to the MySQL shell. If you’d like, you can adjust this setting by following Step 3.
Пользователи, пароли сервера MySQL — добавление, изменение пользователей и паролей. Консоль
Создание нового пользователя — подключение к серверу MySQL под root, переключение к базе данных, добавление пользователя, обновление привилегий:
# mysql -u root -p mysql use mysql; mysql INSERT INTO user (Host,User,Password) VALUES('%',' username ', PASSWORD(' password ')); mysql flush privileges;
Изменений пользовательского пароля из консоли на удаленном хосте db1.example.org :
# mysqladmin -u username -h db1.example.org -p password ' new-password '
Изменение пользовательского пароля из консоли MySQL — подключение под root, обновление пароля, обновление привилегий:
# mysql -u root -p mysql SET PASSWORD FOR ' user '@' hostname ' = PASSWORD(' passwordhere '); mysql flush privileges;
Восстановление/изменение пароля root сервера MySQL — остановка MySQL, запуск без таблиц привилегий, подключение под root, установка нового пароля, выход и перезапуск MySQL.
# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql update user set password=PASSWORD(" newrootpassword ") where User='root'; mysql ; flush privileges; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start
Set a root password if there is on root password.
# mysqladmin -u root password newpassword
Обновление пароля root:
# mysqladmin -u root -p oldpassword newpassword
Установка права на подключение к серверу с хоста localhost с паролем » passwd » — подключение подroot, переключение к базе данных, установка привилегий, обновление привилегий:
# mysql -u root -p mysql use mysql; mysql grant usage on *.* to bob @localhost identified by ' passwd '; mysql flush privileges;
Установка привилегий пользователю на использование базы данных — подключение под root, переключение к базе данных, установка привилегий, обновление привилегий:
# mysql -u root -p mysql use mysql; mysql INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ('%','databasename','username','Y','Y','Y','Y','Y','N'); mysql flush privileges;
или
mysql grant all privileges on databasename .* to username @localhost; mysql flush privileges;
Обновление информации в базе данных:
mysql UPDATE SET Select_priv = 'Y',Insert_priv = 'Y',Update_priv = 'Y' where = user';
Удаление строки в таблице:
mysql DELETE from where = 'whatever';
Обновление привилегий в базе данных:
mysql flush privileges;
Ссылки[править]
Системному администратору
• APT в ALT Linux • • AltHa • • Apache2 • Api.php • Azure • BIND • BIND SEC • BackUp/DayOfDayBackUp • Bacula • Biarch • Bootflash (VirtualBoot) • CVE-Manager • Capabilities • Changes/rpm • Compact3 (HostingInstallHowto) • Control • Control++ • Control++:Blacklist/Whitelist • DDNS • DhcpBind • • EC2 • Egroupware • EjabberdJit • Enterprise Software • • Etcnet • Evmctl • Evms inside initrd • • Features • Features/ChrootedServices • • Firewall • Flussonic • Ganeti • Hadoop • Hbase • • High Availability • IKVM • IPMI • IPTV • Infiniband • InstallOnFlash • Ipmitool • Iptables • Участник:IvanZakharyaschev/Что делать, если забыл имена пользователей • Участник:IvanZakharyaschev/Что делать, если забыл пароли (в т.ч. пароль root-а) • Участник:IvanZakharyaschev/Что делать, если затёр загрузчик системы • IvmanAutomount • • LDAP • • LXC • LargeFiles • Lotus • MSSQL • Mailman • Mailman and lighttpd • • Migration • • Moodle • Motion • MultiSeat systemd • Multipath • Multistation • MySQL • • Nagios-plugins-smartmon • NetInstall • Netconsole • OpenLDAP • OpenNMS • OpenVPN • OpenVZ • OpenVZ7 • • Oracle10g • OracleALS40 • PVE • Polkit • • Pppoptions • Puppet/Запуск puppetry (пример с libvirt) • RAID • Replace disk online • RoCE • Roundcube • S5000PAL • SCOM • SQLite • SSD • SSH • Samba • • Security • SelinuxOff • SerialLogin • SerialPortOverIP • Server Security • SharedTmpfsMaintainance • Sisyphus-mirror • Sisyphus changes • Spice • Splash • Starterkits • Starterkits/p7 • Starterkits/p8 • SwitchToSisyphus • Sysadmin • SystemImager • • Systemd • Sysvinit • TeXLivePackaging • Utf8/MigrateToKoi8 • VPN • • Vargus • VideoMost • Web-cyradm • Wi-fi • Xen • • Xymon • • Zabbix • Zarafa • Zimbra • • Аутентификация по ключу • БыстраяЗаменаCrontabНаTimers • • Восстановление • Двухфакторная аутентификация • Домен • Доступ по SSH за NAT через TOR • Загрузочная USB Flash • Загрузочные флешки • • Загрузчики • Задачи администратора • Запрет командной строки • • Настройка FTP • НастройкаСервераПриложений • Обновление • Оборудование • Ограничение использования консолей • Ограничения интерфейса KDE • Отключение интерактивного входа • ПроблемыДоступностиРазделов • Программы • Прозрачный прокси-сервер • РазбиениеДиска • РезервноеКопированиеСистемы • Ресолвер • Синхронизация времени • • ТестированиеКомпьютера • Управление пакетами • УчётТрафика • Файловые системы • Шаблоны для развёртывания CT в PVE •
Заключение
Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:
Первый и самый важный шаг — просмотреть журналы MySQL, которые хранятся в каталоге . Вы можете использовать утилиты командной строки вроде для чтения файлов журнала.
Если служба MySQL не запускается, проверьте её состояние с помощью . Или используйте команду (с флагом ) в systemd.
Вы также можете проверить файл системного журнала (например, ) на предмет обнаружения ошибок.
Попробуйте использовать такие инструменты, как Mytop, glances, top, ps или htop, чтобы проверить, какая программа использует весь ресурс процессора или блокирует машину
Они также помогут определить нехватку памяти, дискового пространства, файловых дескрипторов или какого-либо другого важного ресурса.
Если проблема в каком-либо процессе, можно попытаться его принудительно остановить, а затем запустить (при необходимости).
Если вы уверены, что проблемы именно на стороне сервера, можете выполнить команды: или , чтобы получить от него ответ.
Если при подключении проблема не связана с сервером, проверьте, нормально ли работает клиент. Попробуйте получить какие-либо его выходные данные для устранения неполадок.