Проверить конфиг на ошибки:
Узнать какие типы таблиц поддерживаются в MySQL: show engines;
Просмотр свойств таблицы: show create table t;, где "t" - имя таблицы
Выбрать базу данных: USE example_db;
Войти под root: mysql -u root -p
Восстановление таблиц:
https://www.a2hosting.com/kb/developer- ... nd-tables/
https://www.iditect.com/program-example ... ngine.html
Восстановить пароль root
# service mysqld stop
# mysqld_safe --skip-grant-tables &
# mysql
mysql> UPDATE mysql.user SET Password=PASSWORD('новый_пароль') WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> \q
# service mysqld start
Резервное копирование БД
# mysqldump --opt -p имя_базы > имя_базы.sql
# mysqldump -uroot -p roundcube > /tmp/roundcube.sql
Восстановление БД из резервной копии
# mysql -p
mysql> CREATE DATABASE имя_базы;
mysql> \q
# mysql -p имя_базы < имя_базы.sql
ИЛИ:
mysql> use database;
mysql> source database.sql
ИЛИ:
mysql -uroot -h11.11.11.11 -p database < database.sql
Починка таблиц в БД
# myisamchk -r /var/lib/mysql/имя_базы/имя_таблицы.MYI
если не помогло
# myisamchk -o /var/lib/mysql/имя_базы/имя_таблицы.MYI
Подключение
mysql -p подключиться с указанием пароль, ключ -u позволяет указать пользователя для подключения.
Статус
mysql> \s
Выход
mysql> \q
Посмотреть какие базы есть
mysql> SHOW DATABASES;
Подключиться к базе, т.е. сделать в сессии какую либо БД текущей
mysql> USE имя_базы;
Создать БД
mysql> CREATE DATABASE имя_базы;
Создать таблицу
mysql> CREATE TABLE имя_таблицы;
или
mysql> CREATE TABLE имя_таблицы (`id` int(11) NOT NULL auto_increment, `имя_столбца` int(11) NOT NULL default '0', PRIMARY KEY (`id`));
Удалить базу
mysql> DROP DATABASE имя_базы;
Посмотреть список пользователей
mysql> SELECT user FROM mysql.user;
Посмотреть список таблиц
mysql> SHOW TABLES;
Посмотреть статус конкретной таблицы:
mysql> SHOW TABLE STATUS like 'имя_таблицы';
или всех таблиц:
mysql> SHOW TABLE STATUS;
Переименовать таблицу
mysql> RENAME TABLE старое_название TO новое_название;
Удалить таблицу
mysql> DROP TABLE имя_таблицы;
Очистить таблицу (удалить данные)
mysql> TRUNCATE TABLE имя_таблицы;
Список столбцов в таблице:
mysql> SHOW COLUMNS FROM tableName;
Посмотреть данные в таблице :
mysql> SELECT * FROM tableName;
Создать пользователя для баз MariaDB
mysql> GRANT SELECT,INSERT,DELETE,UPDATE ON имябд.* TO 'admin'@'localhost' IDENTIFIED BY 'пароль_для_admin';
Незабываем!!! обновить привилегии:
mysql> FLUSH PRIVILEGES;
Посмотреть какие есть права у пользователя.
mysql> SHOW GRANTS FOR 'имя_пользователя'@'localhost';
Показать привилегии пользователя баз MariaDB.
mysql> SHOW GRANTS FOR 'имя_пользователя'@'localhost';
Назначить ВСЕ привилегии пользователю баз MariaDB.
GRANT ALL ON *.* TO 'имя_пользователя'@'localhost' IDENTIFIED BY 'пароль';
Изменить данные в таблице, например хеш пароля пользователя прописанного в БД. Предварительно выбрав! саму базу
mysql> UPDATE users SET user_hash = MD5('пароль') WHERE user_name = 'name';
Подсказка
mysql> HELP
Посмотреть процессы в текущей базе
mysql> SHOW PROCESSLIST;
Посмотреть кодировку и статистику таблицы
mysql> SHOW TABLE STATUS WHERE Name = 'Monitors';
Посмотреть записи в таблице
mysql> SELECT * FROM Server_Stats ORDER BY TimeStamp DESC LIMIT 10;
результат выполнения запроса вывести в файл
1. Смотрим в какой место можно сохранить:
Результат будет примерно такой:
2. Выполняем запрос с выводом в файл:
mysql> SELECT * FROM Monitors INTO OUTFILE '/var/lib/mysql-files/customers.txt';
Преимущества MariaDB:
1. Встроен профайлер. Достаточно выполнить команду: SHOW ENGINE INNODB STATUS;
ОПТИМИЗАЦИЯ MySQL
https://habr.com/ru/post/539792/
Код: Выделить всё
/usr/sbin/mysqld --help --verbose --skip-networking 1>/dev/null
Узнать какие типы таблиц поддерживаются в MySQL: show engines;
Просмотр свойств таблицы: show create table t;, где "t" - имя таблицы
Выбрать базу данных: USE example_db;
Войти под root: mysql -u root -p
Восстановление таблиц:
https://www.a2hosting.com/kb/developer- ... nd-tables/
https://www.iditect.com/program-example ... ngine.html
Восстановить пароль root
# service mysqld stop
# mysqld_safe --skip-grant-tables &
# mysql
mysql> UPDATE mysql.user SET Password=PASSWORD('новый_пароль') WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> \q
# service mysqld start
Резервное копирование БД
# mysqldump --opt -p имя_базы > имя_базы.sql
# mysqldump -uroot -p roundcube > /tmp/roundcube.sql
Восстановление БД из резервной копии
# mysql -p
mysql> CREATE DATABASE имя_базы;
mysql> \q
# mysql -p имя_базы < имя_базы.sql
ИЛИ:
mysql> use database;
mysql> source database.sql
ИЛИ:
mysql -uroot -h11.11.11.11 -p database < database.sql
Починка таблиц в БД
# myisamchk -r /var/lib/mysql/имя_базы/имя_таблицы.MYI
если не помогло
# myisamchk -o /var/lib/mysql/имя_базы/имя_таблицы.MYI
Подключение
mysql -p подключиться с указанием пароль, ключ -u позволяет указать пользователя для подключения.
Статус
mysql> \s
Выход
mysql> \q
Посмотреть какие базы есть
mysql> SHOW DATABASES;
Подключиться к базе, т.е. сделать в сессии какую либо БД текущей
mysql> USE имя_базы;
Создать БД
mysql> CREATE DATABASE имя_базы;
Создать таблицу
mysql> CREATE TABLE имя_таблицы;
или
mysql> CREATE TABLE имя_таблицы (`id` int(11) NOT NULL auto_increment, `имя_столбца` int(11) NOT NULL default '0', PRIMARY KEY (`id`));
Удалить базу
mysql> DROP DATABASE имя_базы;
Посмотреть список пользователей
mysql> SELECT user FROM mysql.user;
Посмотреть список таблиц
mysql> SHOW TABLES;
Посмотреть статус конкретной таблицы:
mysql> SHOW TABLE STATUS like 'имя_таблицы';
или всех таблиц:
mysql> SHOW TABLE STATUS;
Переименовать таблицу
mysql> RENAME TABLE старое_название TO новое_название;
Удалить таблицу
mysql> DROP TABLE имя_таблицы;
Очистить таблицу (удалить данные)
mysql> TRUNCATE TABLE имя_таблицы;
Список столбцов в таблице:
mysql> SHOW COLUMNS FROM tableName;
Посмотреть данные в таблице :
mysql> SELECT * FROM tableName;
Создать пользователя для баз MariaDB
mysql> GRANT SELECT,INSERT,DELETE,UPDATE ON имябд.* TO 'admin'@'localhost' IDENTIFIED BY 'пароль_для_admin';
Незабываем!!! обновить привилегии:
mysql> FLUSH PRIVILEGES;
Посмотреть какие есть права у пользователя.
mysql> SHOW GRANTS FOR 'имя_пользователя'@'localhost';
Показать привилегии пользователя баз MariaDB.
mysql> SHOW GRANTS FOR 'имя_пользователя'@'localhost';
Назначить ВСЕ привилегии пользователю баз MariaDB.
GRANT ALL ON *.* TO 'имя_пользователя'@'localhost' IDENTIFIED BY 'пароль';
Изменить данные в таблице, например хеш пароля пользователя прописанного в БД. Предварительно выбрав! саму базу
mysql> UPDATE users SET user_hash = MD5('пароль') WHERE user_name = 'name';
Подсказка
mysql> HELP
Посмотреть процессы в текущей базе
mysql> SHOW PROCESSLIST;
Посмотреть кодировку и статистику таблицы
mysql> SHOW TABLE STATUS WHERE Name = 'Monitors';
Посмотреть записи в таблице
mysql> SELECT * FROM Server_Stats ORDER BY TimeStamp DESC LIMIT 10;
результат выполнения запроса вывести в файл
1. Смотрим в какой место можно сохранить:
Код: Выделить всё
mysql> SHOW VARIABLES LIKE "secure_file_priv";
Результат будет примерно такой:
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
1 row in set (0,00 sec)
2. Выполняем запрос с выводом в файл:
mysql> SELECT * FROM Monitors INTO OUTFILE '/var/lib/mysql-files/customers.txt';
Преимущества MariaDB:
1. Встроен профайлер. Достаточно выполнить команду: SHOW ENGINE INNODB STATUS;
ОПТИМИЗАЦИЯ MySQL
https://habr.com/ru/post/539792/