flycat

Шпора по MySQL/MariaDB/MaxScale

May 8th, 2020 (edited)
712
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 6.06 KB | None | 0 0
  1. # Пользователи, права и пароли
  2. create user 'alexey_li'@'%' identified by 'D5';
  3. grant select on tlight.* to 'alexey_li'@'%';
  4. grant select on mysql.* to 'alexey_li'@'%' identified by 'D5';
  5. revoke select on mysql.* from 'alexey_li'@'%' identified by 'D5';
  6. grant update(column-name) on table-name to user-name;
  7. grant all privileges on database_name.* TO 'username'@'localhost';
  8. flush privileges;
  9.  
  10. # Update password:
  11. alter user 'userName'@'localhost' identified by 'New-Password-Here';
  12. # For older mysql:
  13. set password for 'user-name-here'@'hostname' = PASSWORD('new-password');
  14. # Update Host:
  15. RENAME USER 'brs'@'85.17.64.199' TO 'brs'@'212.95.41.132';
  16.  
  17. show grants for 'replication'@'5.11.19.29';
  18. select User,Host from mysql.user order by User;
  19. select * from mysql.user where User='root'\G
  20. select * from table where YourColumn IS NOT NULL;
  21.  
  22. # Процессы (аналог show full processlist):
  23. select * from INFORMATION_SCHEMA.PROCESSLIST;
  24. # Самый долгий запрос
  25. select * from INFORMATION_SCHEMA.PROCESSLIST order by TIME_MS desc limit 1\G
  26.  
  27. # Таблицы
  28. TRUNCATE `table`;
  29. show FULL COLUMNS FROM table;
  30. DESCRIBE `table`;
  31. # Структура - показать команду для создания таблицы в текущем виде:
  32. show create table orders\G
  33.  
  34. # Кодировки:
  35. # Посмотреть https://database.guide/show-the-collation-in-mariadb/ :
  36. show variables like "character_set_database";
  37. SHOW VARIABLES LIKE 'collation%';
  38. SHOW SESSION VARIABLES LIKE 'collation%';
  39. SELECT @@collation_server;
  40. # Посмотреть у базы:
  41. SELECT      default_character_set_name,      default_collation_name  FROM information_schema.schemata  WHERE schema_name = 'dbname';
  42.  
  43. # Изменить кодировки
  44. alter database DBNAME CHARACTER SET utf8 COLLATE utf8_general_ci;
  45. mysql --database=DBNAME -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' | mysql --database=DBNAME
  46.  
  47. # Добавить столбец:
  48. alter TABLE tablename ADD columnname datatype;
  49. # Удалить столбец:
  50. alter TABLE tablename DROP COLUMN columname;
  51.  
  52. # Переменные посмотреть:
  53. show variables like "expire_logs_days";
  54. show variables like "skip_name_resolve";
  55. select @@hostname;
  56. show variables where Variable_name like '%host%';
  57. select host from information_schema.processlist WHERE ID=connection_id(); # Client IP
  58. show status where `variable_name` = 'Threads_connected'; # Number of current connections
  59. SHOW STATUS WHERE `variable_name` = 'Max_used_connections'; # Max used connections
  60. SHOW VARIABLES LIKE "max_connections";
  61.  
  62. long_query_time
  63. set GLOBAL log_slave_updates=1;
  64. To delete all binary log files, use RESET MASTER
  65. set GLOBAL slow_query_log=1;
  66.  
  67. # Изменить:
  68. set GLOBAL expire_logs_days=5;
  69. SHOW BINARY LOGS;
  70. PURGE BINARY LOGS BEFORE '2023-07-02 23:46:26';
  71.  
  72. INSERT INTO COLUMN1 (orderkey, customer) values (1, 'flycat');
  73. select customer from COLUMN1 where customer like '%lyc%';
  74.  
  75. # Просто SELECT
  76. select column from table ORDER BY RAND() LIMIT 1;
  77.  
  78. # Работа с временем
  79. select CURRENT_TIMESTAMP;
  80. select now();
  81. select (now()-INTERVAL 1 HOUR);
  82.  
  83. # Установка MariaDB:
  84. curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
  85.  
  86. # Данные пользователя для доступа - файл ~/.my.cnf
  87. [client]
  88. port=3306
  89. host=127.0.0.1
  90. user=flycat
  91. password=******
  92.  
  93. mysql -s # Не выводить таблицу
  94. mysql -ss # Выводить только результат
  95.  
  96. # Size of databases
  97. SELECT table_schema 'DB name', SUM(data_length + index_length) 'Size in Bytes', ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) 'Size in MiB' FROM information_schema.tables  GROUP BY table_schema;
  98.  
  99. # Size of tables database bookstore:
  100. SELECT TABLE_NAME AS `Table`, ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)` FROM information_schema.TABLES WHERE TABLE_SCHEMA = "bookstore" ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC;
  101.  
  102. # Овободить место после удаления:
  103. ALTER TABLE <name> FORCE;
  104. # или
  105. ALTER TABLE <name> ENGINE=INNODB, ALGORITHM=INPLACE, LOCK=NONE FORCE;
  106. OPTIMIZE TABLE <name>;
  107.  
  108. # Копирование таблицы
  109. create table mynewtable as select * from myoldtable where 1=2;
  110.  
  111. # Конвертация таблиц
  112. req ()
  113. {
  114.     mar="/usr/bin/mariadb -s"
  115.     echo $@| $mar
  116. }
  117.  
  118. #for i in $(req "SELECT DISTINCT * FROM information_schema.columns WHERE table_schema = 'zabbix' AND COLLATION_NAME LIKE 'utf8mb4%' order by table_name;")
  119. for i in $(req "SELECT DISTINCT table_name FROM information_schema.columns WHERE table_schema = 'zabbix'order by table_name;")
  120. do
  121.     req "show create table zabbix.${i};"|grep -q "utf8mb4" && req "ALTER TABLE zabbix.${i} CONVERT TO CHARACTER SET utf8mb3 COLLATE utf8mb3_bin;"
  122. done
  123.  
  124. #  Get list of IP addresses connected to MySQL DB, with their connection counts
  125. # https://gist.github.com/chris/74d990397a8be52932e20a3f2b943331
  126.  
  127. # my.cnf:
  128. skip-name-resolve=1
  129. performance_schema       = ON
  130. max_allowed_packet     = 1G
  131. max_connections        = 160
  132. plugin_load_add = wsrep_info
  133.  
  134. log_error = /var/log/mysql/error.log
  135. slow_query_log
  136. log_slow_query_file    = /var/log/mysql/mariadb-slow.log
  137. log_slow_query_time    = 10
  138. log_slow_verbosity     = query_plan,explain
  139. log-queries-not-using-indexes
  140. log_slow_min_examined_row_limit = 1000
  141.  
  142. innodb_buffer_pool_size = 18G
  143.  
  144. # Maxscale
  145. maxctrl set|clear server Monitor maintenance
  146. maxctrl clear server Flex-A maintenance
  147. maxctrl show monitor <имя_монитора> | grep -i priority
  148. maxctrl alter monitor GaleraMon use_priority=true
  149. maxctrl show server Dorado-C | grep -i priority
  150. maxctrl alter server Flex-D priority=1
  151. maxctrl call command mariadbmon switchover monitor new_master current_master
  152. maxctrl call command mariadbmon switchover MariaDB-Monitor deneb-a deneb-b
  153.  
  154. # Install for Maria:
  155. apt install mariadb-server mariadb-backup mytop libterm-readkey-perl libdbd-mysql-perl
Advertisement
Add Comment
Please, Sign In to add comment