Mysql. Ошибки и часто используемые команды

Mysql.  Ошибки и часто используемые команды

Просмотр типа таблиц из консоли
mysqlshow -i -uroot -p mikbill


Чтобы mysql не падал при свете делать надо на xfs вместо ext4/ext3

Автовосстановление баз

  • mysqlcheck --repair  --all-databases --auto-repair -u root -pPASS

Генерирем всем юзерам пароли
UPDATE `users` SET `password` = substring(MD5(RAND()) from 1 for 5) WHERE `users`.`password` = '';

from 1 for 5 - 5 количество символов

Ошибка
mysqldump: Couldn't execute 'show fields from `payments`': SELECT command denied to user ''@'%' for column 'uid' in table 'bugh_plategi_stat' (1143)
Для решения создаем учетку root% c любым паролем
  • mysql -u root -p
  • > grant all privileges on *.* to `root`@`%` identified by 'password'; 
  • > flush privileges;

Ошибка
[error] innodb: cannot allocate memory
не хватает оперативки

Восстановить одну таблицу из дампа
https://blogosys.ru/2013/01/mysql-vosstanovlenie-odnoy-tablitsyi-iz-polnogo-dampa/


Версия MySQL

  • mysql –version

Создание учетки с правами
  • CREATE USER 'ld'@'%' IDENTIFIED BY 'PASSWORD';
  • GRANT ALL PRIVILEGES ON * . * TO 'ld'@'%';
  • FLUSH PRIVILEGES;

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

  • drop user 'ld'@'localhost';

Включаем лог запросов
В файл /etc/my.cnf добавляем следующие строки
[mysqld]
log-queries-not-using-indexes
log=/var/log/mysql-queries.log
log-slow-queries=/var/log/mysql-slow-queries.log
Создать и дать права на использование логов
  • touch /var/log/mysql-queries.log 
  • touch /var/log/mysql-slow-queries.log 
  • chown mysql:mysql /var/log/mysql* 
  • chmod 640 /var/log/mysql*
Перезапускаем сервис
  • service mysqld restart
Смотрим текущие запросы
  • mysqladmin pr -uroot -p
или
  • SHOW ENGINE INNODB STATUS;

Смена пароля 
текущей учетки

  • SET PASSWORD = PASSWORD('PASSWD');

для учетки mikbill поменять в config.hml админки, кабинета, карт. sql.conf радиуса, бекап проверить и скрипты в кроне

команды статуса mysql innodb

  • SHOW PROCESSLIST и SHOW ENGINE INNODB STATUS


Оптимизация mysql
innodb_buffer_pool_size = 2G
innodb_file_per_table
innodb_flush_method=O_DIRECT
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_log_files_in_group = 2
innodb_additional_mem_pool_size = 64M
innodb_data_home_dir<--><------>= /var/lib/mysql/
innodb_log_group_home_dir<----->= /var/lib/mysql/
innodb_data_file_path<-><------>= ibdata1:10M:autoextend
innodb_flush_log_at_trx_commit<>= 0
innodb_lock_wait_timeout<------>= 300
max_connections><------><------>= 128
tmpdir             = /mnt/ramdisk

в /etc/fstab
tmpfs /mnt/ramdisk tmpfs rw,mode=1777,size=1024M 0 0
и команда

  • mount -a

пока нет ssd рамдиск поможет



Сравнение двух дампов из консоли
diff 1.sql 2.sql

Тест под нагрузкой

  • mysqlslap -u root -pmypass --auto-generate-sql --concurrency 100 --iterations 1000

http://rtfm.co.ua/mysql-mysqlslap-nagruzochnoe-testirovanie/



Отсутствие подключения в phpmyadmin может быть вызвано отсутствием места на диске

ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)

GRANT ALL PRIVILEGES on *.* TO debian-sys-maint@localhost IDENTIFIED BY PASSWORD 'your password' WITH GRANT OPTION; FLUSH PRIVILEGES;
where password is from /etc/mysql/debian.cnf

[info] Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..

[info] Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..
mysqlcheck --check-upgrade --all-databases --auto-repair -u root -p
mysql_upgrade --force -u root -p


Очистка базы mysql

  • truncate radpostauthnew;   ## Чистим историю авторизаций
  • DELETE FROM `radacct` WHERE `acctsessiontime` = 0; ##Чистим историю сессий "Время 0"
  • delete FROM `radacct` WHERE `acctinputoctets` =0; ##  Чистим историю сессий "входящий трафик 0"
  • delete FROM `radacct` WHERE `acctoutputoctets`=0;## "Исходящий трафик 0"
  • delete FROM `radacct` WHERE `acctoutputoctets` < 1000000 and `acctinputoctets` < 1000000 ; ## "Трафик меньше Х"



Добавляем всем кредит
  • UPDATE users set credit=ABS (deposit)+1

Перенос снятия абоноплаты
выставить обязательно каждый месяц плавющая дата
  • UPDATE users SET date_abonka = 7;UPDATE usersfreeze SET date_abonka = 7;UPDATE usersblok SET date_abonka = 7;UPDATE usersdel SET date_abonka = 7;

Очистка истории сессий 
  • DELETE FROM `radacct` WHERE `acctstarttime` <= '2013-07-10 04:21:37';


чистим по частям
  • DELETE FROM `radacct` WHERE `acctstarttime`  >=  '2015-10-01 00:00:01' AND `acctstarttime`  <=  '2015-11-00 23:59:59'

Сброс пароля mysql root
service mysqld stop(mysql)
/usr/bin/mysqld_safe --skip-grant-tables --user=root &
mysql -u root
UPDATE mysql.user SET Password=PASSWORD('mypass') WHERE User='root';
FLUSH PRIVILEGES;

service mysqld restart; (mysql) (start)

Была проблема, на root слетел пароль, заходило без пароля, при этом сменить пароль, поставить прав не было. Действия:
service mysqld stop
Удалил каталог /var/lib/mysql/mysql
 service mysqld start
Заходим в phpmyadmin root без пароля
Выставляем привелегии

Команды
Start/stop/restart/
/usr/local/etc/rc.d/mysql-server start
/etc/init.d/mysql restart 
mysqladmin -u root password назначаемый_пароль
mysqladmin -h root@локальное_имя_сервера -u root -p password назначаемый_пароль


Просмотреть пользователей
  • SELECT USER from mysql.user;
или так
  • select user,host,password from mysql.user;
Подключение к mysql

  • mysql -u root -pPASS (по умолчанию пароль root) 



Вытягиваем удаленно базу
  • /usr/bin/mysqldump -q -a -hadmin.net.ua -uLOGIN -pPASSWORD --databases --routines --extended-insert mikbill> ./mikbill.sql



Комментарии

Популярные сообщения из этого блога

mikbill расшифровка завершений сессий

Accel-ppp команды

Zabbix agent установка и настройка