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 rootUPDATE 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
Комментарии
Отправить комментарий