Системный Администратор (Сисадмин)
14.2K subscribers
1.85K photos
1.82K videos
92 files
1.96K links
Настройка серверов Windows, Linux, сетевое оборудование Cisco Systems, D-Link, HP, Huawei, Juniper, MikroTik. Книги и мануалы для сисадминов.
По всем вопросам @evgenycarter

РКН clck.ru/3KoGJ3
Download Telegram
Как настроить Rsyslog с MySQL

Rsyslog – это мощный сервер управления журналами для Linux, который позволяет хранить, управлять и просматривать журналы из различных приложений. Это расширенная версия системы syslog в Linux. В этой статье мы рассмотрим, как настроить Rsyslog с MySQL сервером баз данных.

Как настроить Rsyslog с MySQL по шагам:
1. Установите Apache, MySQL и PHP
Нам нужно установить Rsyslog и MySQL, выполним следующую команду для CentOS / RHEL

# yum install mysql-server rsyslog rsyslog-mysql
И такую команду, если Вы на Debian / Ubuntu и подобных системах

# apt install mysql-server rsyslog rsyslog-mysql
Выполните следующие команды для запуска и автоматического запуска при перезагрузке системы (на всякий случай отключим стандартный syslog, если он установлен)

Для CentOS / RHEL

# service mysql start
# service rsyslog start
# chkconfig rsyslog on
# chkconfig mysqld on
# service syslog stop
# chkconfig syslog off
И команды для Debian / Ubuntu совместимых систем

# service mysql start
# service rsyslog start
# update-rc.d rsyslog defaults
# update-rc.d mysql defaults
# service syslog stop
# update-rc.d syslog remove
Если вы устанавливаете MySQL в первый раз, вам необходимо установить пароль root для защиты установки MySQL.

# mysqladmin -u root password 'MYSQLPASSWORD'
2. Создайте пользователя базы данных Rsyslog
Rsyslog понадобится база данных MySQL для хранения своих данных. Он уже предоставляет скрипт, который автоматически создает необходимую базу данных с таблицами для Rsyslog. Вы можете запустить его с помощью следующей команды.

# mysql -u root -p < /usr/share/doc/rsyslog-mysql-4.8.10/createDB.sql
Приведенная выше команда создаст базу данных с именем syslog. Пожалуйста, напишите имя директории rsyslog в соответствии с вашей системой. Мы использовали версию 4.8.10.

Вы можете легко найти полный путь к файлу скрипта createDB.sql, используя следующую команду

# find / -name createDB.sql
Далее создайте пользователя базы данных со следующей командой. Замените ПАРОЛЬ паролем базы данных по вашему выбору.

# mysql -u root -p
mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'PASSWORD';
mysql> FLUSH PRIVILEGES;
mysql> \q
3. Настройка Rsyslog с MySQL
Далее мы редактируем файл конфигурации Rsyslog и включаем модуль MySQL в Rsyslog. Мы также должны предоставить ему данные пользователя базы данных MySQL для автоматического входа в систему. Откройте файл Rsyslog в текстовом редакторе.

# vim /etc/rsyslog.conf
Добавьте к нему следующие строки (нажмите i для входа в режим правки). Замените ПАРОЛЬ паролем базы данных, который установили выше.

$ModLoad ommysql
*.* :ommysql:127.0.0.1,Syslog,rsyslog,
PASSWORD

Сохраните и закройте файл (наберите 😡 а затем нажмите Enter). Перезагрузите Rsyslog с помощью MySQL.

# service rsyslog restart
Вот и все. Теперь все ваши журналы MySQL будут храниться на сервере syslog. В нашей следующей статье мы расскажем, как установить Loganalyzer с Rsyslog и MySQL, чтобы вы могли легко читать логи системы.

#Rsyslog #MySQL
👍4
Как получить id вставленной записи в mysql?

Вы можете использовать LAST_INSERT_ID() чтобы получить id последней вставленной записи в MySQL, ниже пример запроса на MySQL:

# INSERT INTO your_table (col1, col2,...) VALUES ('val1', 'val2'...);
SELECT LAST_INSERT_ID();


#mysql

👉 @database_info
👍7
MySQL

Auto insert with TimeStamp
CREATE TABLE test (
id INTEGER,
txt VARCHAR(20),
ts1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
ts2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);


Copy Database
mysqldump -u root -p db1 > dump.sql
mysqladmin -u root -p create db2
mysql -u root -p db2 < dump.sql

Create User
mysql> grant all privileges on DBNAME.* to USERNAME@localhost identified by 'PASSWORD';
mysql> grant all privileges on DBNAME.* to USERNAME@"%" identified by 'PASSWORD';
mysql> flush privileges;

--all DB
mysql> grant all privileges on *.* to USERNAME@localhost identified by 'PASSWORD';
mysql> grant all privileges on *.* to USERNAME@"%" identified by 'PASSWORD';
mysql> flush privileges;


Delete User
mysql> drop user USERNAME;
or
mysql> delete from mysql.user where user = 'USERNAME';

Change Password
--User
mysql> set password for USER@"%" = password('PASSWORD');
mysql> set password for USER@localhost = password('PASSWORD');

--root
mysql> set password for root=password('PASSWORD');
mysql> set password for root@localhost=password('PASSWORD');

CSV Import / Export
ERROR 1045 (28000) at line 1: Access denied for user 'USER'@'localhost' (using password: YES)
mysql> grant file on *.* to USER@localhost;

Tips
--Create table as same data and type
mysql> create table newtable as select * from orgtable;


--Create table with same type. data is null.
mysql> create table newtable as select * from orgtable where id is null;


Export to CSV
# mysql -uUSER -pPASS DATABASE -e "select * from TABLE;" | sed -e 's/^/"/g' | sed -e 's/$/"/g' | sed -e 's/\t/","/g' > /tmp/test.csv


#MySQL

👉 @database_info
👍10
MySQL: Выявите медленные запросы

То, что MySQL по умолчанию не отслеживает и не протоколирует медленные запросы, не значит, что вы не можете сделать это сами. MySQL имеет много функций, которые по умолчанию не включены, но могут быть очень полезны. Чтобы разрешить функцию slow-query-log отредактируйте конфигурационный файл my.cnf и затем запустите следующие команды, находясь в mysqld:

$long_query_time = 1
$log-slow-queries = /var/log/mysql/mysql-slow-query.log

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

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


#MySQL

👉 @database_info
👍6
Узнать размер базы данных через консоль mysql

Существует куча различных инструментов с графическим интерфейсом для управления и обслуживания баз данных (mysqladmin, navicat и прочие), плюс возможности панелей управления сервером, где можно получить информацию о базах данных, таблицах, пользователях. Однако иногда, при работе в консоли сервера через ssh, нужно по быстрому получить размеры существующих баз данных mysql. Для этого достаточно зайти в консольный клиент mysql и выполнить sql запрос.

#mysql

👉@sysadminof
👍5
Скрипт automysqlbackup для автоматизации резервного копирования

Сегодня поговорим о простом и достаточно удобном средстве для автоматизации процесса, ежедневного, еженедельного и ежемесячного резервного копирования баз данных MySQL. Это обычный shell-скрипт, Automysqlbackup.sh, использующий для работы, программу mysqldump.

#mysql

👉@sysadminof
👍1
Как очистить таблицу в mysql

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

#mysql

👉 @database_info
👍5