MySQL

MySQL编码

一、关闭、启动

  Mac:https://www.cnblogs.com/gaocy/p/9529646.html

二、MySQL版本   

$ mysql -V
$ mysql --help | grep Distrib
mysql> status;
mysql> select version();

三、配置文件位置

mysqld --help --verbose|grep -A1 -B1 cnf

四、用户及权限管理

  创建用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password';
create user 'gaoying'@'localhost' identified by 'gaoying';

  删除用户

DROP USER 'username'@'host';

  授权

GRANT privileges ON databasename.tablename TO 'username'@'host'
grant all privileges on *.* to 'gaoying'@'localhost';

  取消权限 

REVOKE privilege ON databasename.tablename FROM 'username'@'host';
revoke insert on *.* from 'gaoying'@'localhost';
flush privileges;

  查看mysql中存在的用户

select user,host from mysql.user;

  查看用户的授权

show grants for 'root'@'localhost';  

五、导入、导出

导入打开终端输入:(前提是已经配置过MySQL环境变量)

mysql -u root -p
create database name;
use name;
source 『将.sql文件直接拖拽至终端,自动补全其文件目录』

导出:

mysqldump -uroot -proot --databases db1 --tables a1 --where='id=1'  >/tmp/a1.sql 

只导出表结构不导出数据,--no-data

mysqldump -uroot -proot --no-data --databases db1 >/tmp/db1.sql

跨服务器导出导入数据

mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2

将h1服务器中的db1数据库的所有数据导入到h2中的db2数据库中,db2的数据库必须存在否则会报错

mysqldump --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test 

加上-C参数可以启用压缩传递。

压缩备份

mysqldump -uroot -p -P3306 -q -Q --set-gtid-purged=OFF --default-character-set=utf8 --hex-blob --skip-lock-tables --databases abc 2>/abc.err |gzip >/abc.sql.gz

还原

gunzip -c abc.sql.gz |mysql -uroot -p -vvv -P3306 --default-character-set=utf8 abc 1> abc.log 2>abc.err


备注: 线上环境导出和导入数据可以参考“14.压缩备份”的导出和导入参数。

https://www.cnblogs.com/gaocy/p/9646854.html

六、日志(错误日志、查询日志、慢查询日志、事务日志、二进制日志)

  SQL查询日志变量

SHOW  GLOBAL VARIABLES LIKE '%log%';

  

+-----------------------------------------+---------------------------------------------------------+
| Variable_name                           | Value                                                   |
+-----------------------------------------+---------------------------------------------------------+
| back_log                                | 80                                                      |
| binlog_cache_size                       | 32768                                                   |
| binlog_checksum                         | CRC32                                                   |
| binlog_direct_non_transactional_updates | OFF                                                     |
| binlog_error_action                     | ABORT_SERVER                                            |
| binlog_format                           | ROW                                                     |
| binlog_group_commit_sync_delay          | 0                                                       |
| binlog_group_commit_sync_no_delay_count | 0                                                       |
| binlog_gtid_simple_recovery             | ON                                                      |
| binlog_max_flush_queue_time             | 0                                                       |
| binlog_order_commits                    | ON                                                      |
| binlog_row_image                        | FULL                                                    |
| binlog_rows_query_log_events            | OFF                                                     |
| binlog_stmt_cache_size                  | 32768                                                   |
| expire_logs_days                        | 0                                                       |
| general_log                             | OFF                                                     |定义查询日志是否开启
| general_log_file                        | /usr/local/mysql/data/gaoyingdeMacBook-Pro.log          |定义查询日志的文件地址名称
| innodb_api_enable_binlog                | OFF                                                     |
| innodb_flush_log_at_timeout             | 1                                                       |在事务提交时innodb是否同步日志从缓冲到文件中1表示事务以提交就同步不提交每隔一秒同步一次,性能会很差造成大量的磁盘I/O;定义为2表示只有在事务提交时才会同步但是可能会丢失整个事务
| innodb_flush_log_at_trx_commit          | 1                                                       |
| innodb_locks_unsafe_for_binlog          | OFF                                                     |
| innodb_log_buffer_size                  | 16777216                                                |
| innodb_log_checksums                    | ON                                                      |
| innodb_log_compressed_pages             | ON                                                      |
| innodb_log_file_size                    | 50331648                                                |
| innodb_log_files_in_group               | 2                                                       |至少有两个
| innodb_log_group_home_dir               | ./                                                      |定义innodb事务日志组的位置
| innodb_log_write_ahead_size             | 8192                                                    |
| innodb_max_undo_log_size                | 1073741824                                              |
| innodb_online_alter_log_max_size        | 134217728                                               |
| innodb_undo_log_truncate                | OFF                                                     |
| innodb_undo_logs                        | 128                                                     |
| log_bin                                 | ON                                                      |
| log_bin_basename                        | /usr/local/mysql/data/mysql-bin                         |
| log_bin_index                           | /usr/local/mysql/data/mysql-bin.index                   |
| log_bin_trust_function_creators         | OFF                                                     |
| log_bin_use_v1_row_events               | OFF                                                     |
| log_builtin_as_identified_by_password   | OFF                                                     |
| log_error                               | /usr/local/mysql/data/mysqld.local.err                  |定义错误日志
| log_error_verbosity                     | 3                                                       |
| log_output                              | FILE                                                    |日志的输出的位置
| log_queries_not_using_indexes           | OFF                                                     |
| log_slave_updates                       | OFF                                                     |
| log_slow_admin_statements               | OFF                                                     |
| log_slow_slave_statements               | OFF                                                     |
| log_statements_unsafe_for_binlog        | ON                                                      |
| log_syslog                              | OFF                                                     |
| log_syslog_facility                     | daemon                                                  |
| log_syslog_include_pid                  | ON                                                      |
| log_syslog_tag                          |                                                         |
| log_throttle_queries_not_using_indexes  | 0                                                       |
| log_timestamps                          | UTC                                                     |
| log_warnings                            | 2                                                       |是否把警告信息写入错误日志中
| max_binlog_cache_size                   | 18446744073709547520                                    |
| max_binlog_size                         | 1073741824                                              |
| max_binlog_stmt_cache_size              | 18446744073709547520                                    |
| max_relay_log_size                      | 0                                                       |
| relay_log                               |                                                         |
| relay_log_basename                      |                                                         |
| relay_log_index                         |                                                         |
| relay_log_info_file                     | relay-log.info                                          |
| relay_log_info_repository               | FILE                                                    |
| relay_log_purge                         | ON                                                      |
| relay_log_recovery                      | OFF                                                     |
| relay_log_space_limit                   | 0                                                       |
| slow_query_log                          | OFF                                                     |定义慢查询日志的
| slow_query_log_file                     | /usr/local/mysql/data/gaoyingdeMacBook-Pro-slow.log     |输出方式为file(文件)时定义慢查询日志的位置
| sql_log_off                             | OFF                                                     |
| sync_binlog                             | 1                                                       |
| sync_relay_log                          | 10000                                                   |
| sync_relay_log_info                     | 10000                                                   |
+-----------------------------------------+---------------------------------------------------------+

 http://blog.51cto.com/pangge/1319304

七、SQL_MOD  

show variables like "sql_mode";

查看MySQL配置文件加载顺序
mysqld --help --verbose|grep -A1 -B1 cnf

查看当前mysqld启动时的加载文件
ps ax | grep '[m]ysqld'

八、查看表的相关信息

//查看表索引
SHOW INDEX FROM  table_name;

//查看表信息
SHOW TABLE STATUS LIKE 'table_name';

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-09-13 14:21  个人小站  阅读(330)  评论(0编辑  收藏  举报