MySQL Шпаргалки
MySQL Шпаргалки
Независимо от того, являетесь ли вы новичком в MySQL или опытным пользователем, это руководство предоставит вам основные команды, которые сделают вашу работу более эффективной и продуктивной. Я буду время от времени обновлять этот список команд.
User Management
@'%' -> external access allowed@'localhost' -> only access on the machine
Список пользователей
select * from mysql.user
Создать пользователя
CREATE USER 'user_name'@'%' IDENTIFIED BY 'my_password';
Добавьте полные разрешения для базы данны
GRANT ALL PRIVILEGES ON db_name.* TO 'user_name'@'%';
Разрешения только на чтение
GRANT SELECT ON db_name.* TO 'user_name'@'%';
Update host for user
UPDATE mysql.user SET Host='%' WHERE Host='localhost' AND User='username'
Проверка прав доступа для пользователя
SHOW GRANTS for 'user_name'@'%';
Удаление разрешений
REVOKE ALL PRIVILEGES ON db_name.* FROM 'user_name'@'%';
Удалить пользователя
DROP USER 'user_name'@'%';
Привилегии смыва
FLUSH PRIVILEGES;
Ипморт/Экспорт
Экспорт данных
mysqldump --host=my.dbhost.com --databases test_db --port 3306 --user admin -p --lock-tables=false --set-gtid-purged=OFF | gzip -c > /tmp/test_db.sql.gz
Экспорт таблицы с условием
mysqldump --host=my.dbhost.com --port 3306 --user admin -p --lock-tables=false --set-gtid-purged=OFF --databases db --tables test --where="offer_id > 1000" | gzip -c > /tmp/test_db.sql.gz
Export table to append data to a table
mysqldump --host=my.dbhost.com --skip-add-drop-table --no-create-info --port 3306 --user admin -p --lock-tables=false --set-gtid-purged=OFF --databases db --tables test --where="offer_id > 1000" | gzip -c > /tmp/test_db.sql.gz
Экспорт таблицы для добавления данных в таблицу
zcat /tmp/test_db.sql.gz | mysql -u admin -h new.dbhost.com -p test_db
Запустите sql-скрипт в в shell
source /tmp/import.sql
Reduce frequent log flushes by increasing the innodb log file size
Сократите частое удаление журналов, увеличив размер файла журнала innodb
innodb_log_file_size=524288000 (500MB) Default(128MB)
Таблицы
Check table storage engine
SELECT TABLE_SCHEMA as db ,TABLE_NAME as tbl ,ENGINE as engine FROM information_schema.TABLES WHERE ENGINE='MyISAM' AND TABLE_SCHEMA NOT IN('mysql','information_schema','performance_schema');
Change table engine
ALTER TABLE my_table ENGINE=InnoDB
+1
3
+1
+1
2
+1
+1