C:\ProgramData\MySQL\my.ini
mysql> show variables;
mysql> show variables like 'innodb_%';
mysql> show variables like '%mem%';
mysql> show variables like '%datadir%';
mysql> status;
SHOW WARNINGS;
ポート確認
mysql> show variables like 'port';
処理中プロセス
mysql> show processlist;
現在の接続しているスレッド数
mysql> show status like 'Threads_connected';
ロック確認
SHOW ENGINE INNODB STATUS;
select * from information_schema.INNODB_TRX \G;
select * from information_schema.INNODB_LOCKS \G;
select * from information_schema.INNODB_LOCK_WAITS\G;
SELECT @@GLOBAL.tx_isolation, @@tx_isolation;
大文字小文字の区別
show variables where variable_name='lower_case_table_names';
my.cnf
[mysqld]
lower_case_table_names = 0
で変更
DBサイズ
SELECT
table_schema, sum(data_length+index_length) /1024 /1024 AS MB
FROM
information_schema.tables
GROUP BY
table_schema
ORDER BY
sum(data_length+index_length) DESC;
テーブルサイズ
SELECT
table_name, engine, table_rows AS tbl_rows,
avg_row_length AS rlen,
floor((data_length+index_length)/1024/1024) AS all_mb,
floor((data_length)/1024/1024) AS data_mb,
floor((index_length)/1024/1024) AS index_mb
FROM
information_schema.tables
WHERE
table_schema=database()
ORDER BY
(data_length+index_length) DESC;
# service mysqld restart
再起動後、ログが適用されたら書き込みがないうちにすぐに停止
# service mysqld stop
my.cnf でログファイルサイズの書き換え
# vi /etc/my.cnf
ログファイルの移動(念のため削除ではなくバックアップ)
# mv /var/lib/mysql/ib_logfile* /(backupdir)/
mysqld 起動
# service mysqld start
ログファイルが指定したサイズで再作成されたことを確認
# ls -l /var/lib/mysql/ib_logfile*
※ innodb_buffer_pool_size は[mysqld]の下に置く
set character set charset_name
-- 以下を実行したことと同様
set character_set_client = charset_name;
set character_set_results = charset_name;
set collation_connection = @@collation_database; -- collation_databaseと同じ値に設定する
SELECT host,user FROM mysql.user;
SELECT * FROM mysql.user \G;
ユーザー作成
GRANT ALL PRIVILEGES ON *.* TO sasuke@localhost IDENTIFIED BY 'aaa' WITH GRANT OPTION;
rootのパスワード
SET PASSWORD FOR root@localhost=PASSWORD('hoge');
ユーザー削除
DELETE FROM mysql.user WHERE user='sasuke';
show databases;
show tables;
SHOW CREATE TABLE tbl_name ;
show procedure status;
show function status;
show create procedure プロシージャ名;
select table_schema,table_name,table_type,table_rows,table_collation from information_schema.TABLES;
カラム確認
select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLUMN_DEFAULT,IS_NULLABLE,CHARACTER_SET_NAME
,COLUMN_TYPE,COLUMN_KEY,COLUMN_COMMENT from information_schema.COLUMNS;
ビュー確認
SELECT * FROM information_schema.views WHERE TABLE_NAME = 'ビュー名'
ストアド確認
SHOW CREATE FUNCTION test1 \G
SHOW CREATE PROCEDURE test1 \G
SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE FROM information_schema.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE';
mysql> CREATE DATABASE データベース名 CHARACTER SET utf8;
DB削除
mysql> DROP DATABASE test_db1;
DROP TABLE IF EXISTS `testdb`.`createtest`;
テーブル追加
CREATE TABLE `testdb`.`createtest` (
`userid` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`password` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`email` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`userid`),
KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
テーブル編集
ALTER TABLE tbl_name ADD COLUMN col_name INT(11) DEFAULT 0 NOT NULL AFTER other_col_name;
ALTER TABLE tbl_name CHANGE COLUMN old_col new_col INT(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE tbl_name MODIFY COLUMN col_name VARCHAR(128) NOT NULL;
ALTER TABLE tbl_name DROP COLUMN col_name;
alter table 対象テーブル add unique (対象フィールド);
mysqldump -u napzak -p foo_db > db_backup_`date +%Y%m%d-%H%M%S`.sql
ストアドも
mysqldump -R -u napzak -p foo_db > db_backup.sql
データのみダンプ
mysqldump -u root -p DB名 --skip-dump-date --no-create-info --default-character-set=binary > onlyData.sql
スキーマとViewのみダンプ
mysqldump -u root -p DB名 --no-data --skip-dump-date > onlySchemaWithView.sql
ストアドのみダンプ
mysqldump -u root -p DB名 --skip-dump-date --no-create-info --no-data --routines > onlyFunctions.sql
テーブル単位
mysqldump -u root -p database_name table_name1 table_name2 > dump.sql
オプションの説明
--skip-dump-date ダンプした日を出力
--no-create-info create table文を出力しない
--no-data データを出力しない
--routines ストアド情報を出力
復元
shell> mysql -u napzak -p --default-character-set=utf8 foo_db < dump.sql
または
mysql> source dump.sql
mysql -uroot -p -e "SELECT * FROM table_name" db_name > /tmp/mysql.tsv
SELECT * FROM test INTO OUTFILE '/var/lib/mysql-files/test.dmp';
--secure-file-priv の権限が必要
SET GLOBAL general_log='on'
SET GLOBAL log_output='table'
なんかやる
SELECT * FROM mysql.general_log
SET GLOBAL general_log='off'
最終更新:2019年07月02日 13:41