目录
1)--master-data=xx ............................................................................................................................ 2
2)mysql key_buffer_size .................................................................................................................... 2
3)Slave_IO_Running:Yes Slave_SQL_Running:No ............................................................................. 4
6)mysqld –initialize ......................................................................................................................... 8
7) mysqldump ................................................................................................................................... 8
8)Mysql create routine ................................................................................................................... 9
9) performance_schema ................................................................................................................. 10
10) MYSQL GROUP REPLICATION (MGR) ......................................................................................... 24
11) Slave_parallel_workers ............................................................................................................. 27
12) Innodb 是否支持哈希索引 ...................................................................................................... 28
13)Mysql 四种事务隔离级别 ...................................................................................................... 29
14)Force index .............................................................................................................................. 40
15)Innodb 索引 ........................................................................................................................... 41
16)alter ignore table 和 old_alter_table ...................................................................................... 44
17)--skip-skip-tables ..................................................................................................................... 46
18)--init-file 重置密码 .................................................................................................................. 47
19)change master to .................................................................................................................... 48
20)权限生效................................................................................................................................. 51
21) MySQL 日志系统:redo log、binlog、undo log 区别与作用 ............................................... 53
22) innodb_force_recovery ............................................................................................................. 61
23) sort_buffer 和 join_buffer ........................................................................................................ 62
24) proxy user ................................................................................................................................. 64
25) %和 localhost 区别以及联系 ................................................................................................... 67
26) mysqldump --master-data 和--single transaction ..................................................................... 83
27) sync_binlog ............................................................................................................................... 87
28) socket 简单介绍 ....................................................................................................................... 87
29) ibdata1 ...................................................................................................................................... 90
30) undo 空间管理 ......................................................................................................................... 92
31) 快照读和和当前读 ............................................................................................................... 101
32) sql security definer 和 invoker .............................................................................................. 103
33) Qcache、innodb_buffer_pool ................................................................................................ 105
34) select_scan、question、com_select ..................................................................................... 107
35) Max_used_connections、Max_used_connections_time ................................................... 110
36) enforce_gtid_consistency=1 ................................................................................................... 110
37) optimize table ......................................................................................................................... 111
38) innodb_file_format 压缩 ........................................................................................................ 112
39) 事务表和非事务表 ............................................................................................................... 113
1)--master-data=xx
mysqldump 导出数据时,当这个参数的值为 1 的时候,mysqldump 出来的文件就会包括
CHANGE MASTER TO 这个语句,CHANGE MASTER TO 后面紧接着就是 file 和 position
的记录,在 slave 上导入数据时就会执行这个语句,salve 就会根据指定这个文件位置从
master 端复制 binlog。默认情况下这个值是 1
当这个值是 2 的时候,chang master to 也是会写到 dump 文件里面去的,但是这个语句是
被注释的状态。
[root@localhost tmp]# mysqldump -uroot -p --hex-blob --lock-all-tables -R
--triggers --databases mydb mydb2 --master-data=2
--default-character-set='utf8' --quick>/tmp/a.sql
[root@localhost tmp]# grep -i "CHANGE MASTER TO" /tmp/a.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000017',
MASTER_LOG_POS=2341;
2)mysql key_buffer_size
在 mysql 数据库中,mysql key_buffer_size 是对 MyISAM 表性能影响最大的一个参数,下
面就将对 mysql Key_buffer_size 参数的设置进行详细介绍,供您参考。
下面一台以 MyISAM 为主要存储引擎服务器的配置:
mysql> show variables like 'key_buffer_size';
+-----------------+------------+
| Variable_name | Value |
+-----------------+------------+
| key_buffer_size | 536870912 |
+-----------------+------------+
分配了 512MB 内存给 mysql key_buffer_size,我们再看一下 key_buffer_size 的使用情况:
mysql> show global status like 'key_read%';
+------------------------+-------------+
| Variable_name | Value |
+------------------------+-------------+
| Key_read_requests | 27813678764 |
| Key_reads | 6798830 |
+------------------------+-------------+
一共有 27813678764 个索引读取请求,有 6798830 个请求在内存中没有找到直接从硬盘读
取索引,计算索引未命中缓存的概率:
key_cache_miss_rate = Key_reads / Key_read_requests * 100%
比如上面的数据,key_cache_miss_rate 为 0.0244%,4000 个索引读取请求才有一个直接
读硬盘,已经很 BT 了,key_cache_miss_rate 在 0.1%以下都很好(每 1000 个请求有一个
直接读硬盘),如果 key_cache_miss_rate 在 0.01%以下的话,key_buffer_size 分配的过多,
可以适当减少。
MySQL 服务器还提供了 key_blocks_*参数:
mysql> show global status like 'key_blocks_u%';
+------------------------+-------------+
| Variable_name | Value |
+------------------------+-------------+
| Key_blocks_unused | 0 |
| Key_blocks_used | 413543 |
+------------------------+-------------+
Key_blocks_unused 表示未使用的缓存簇(blocks)数,Key_blocks_used 表示曾经用到的最
大的 blocks 数,比如这台服务器,所有的缓存都用到了,要么增加 key_buffer_size,要么
就是过渡索引了,把缓存占满了。比较理想的设置:
Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈
80%
3)Slave_IO_Running:Yes
Slave_SQL_Running:No
进入 slave 服务器,运行:
mysql> show slave status\G
Relay_Log_File: localhost-relay-bin.000535
Relay_Log_Pos: 21795072
Relay_Master_Log_File: localhost-bin.000094
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
解决办法一、
Slave_SQL_Running: No
1.程序可能在 slave 上进行了写操作
2.也可能是 slave 机器重起后,事务回滚造成的.
一般是事务回滚造成的:
解决办法:
mysql> stop slave ;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave ;
解决办法二、
首先停掉 Slave 服务:slave stop
到主服务器上查看主机状态:
记录 File 和 Position 对应的值
进入 master
mysql> show master status;
+----------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB |
Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| localhost-bin.000094 | 33622483
| | |
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
然后到 slave 服务器上执行手动同步:
mysql> change master to
> master_host='master_ip',
> master_user='user',
> master_password='pwd',
> master_port=3306,
> master_log_file=localhost-bin.000094',
> master_log_pos=33622483 ;
1 row in set (0.00 sec)
mysql> start slave ;
1 row in set (0.00 sec)
mysql> show slave status\G
*************************** 1. row ***************************
........
Master_Log_File: localhost-bin.000094
Read_Master_Log_Pos: 33768775
Relay_Log_File: localhost-relay-bin.000537
Relay_Log_Pos: 1094034
Relay_Master_Log_File: localhost-bin.000094
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
手动同步需要停止 master 的写操作!
4)Mysql_config_editor 安全登录工具
mysql_config_editor 出现在 mysql5.6.6 以后的版本,可以给指定的连接和密码生成一
个加密文件.mylogin.cnf,默认位于当前用户家目录下。通过该文件可以使用 mysql、
mysqladmin 等直接登录,避免明文密码出现在脚本中。
notice:使用该特性要求当前主机的 mysql 版本在 5.6.6 版本及以上,对
将要登陆的 mysql 服务器版本没有要求。
Usage:
生成加密文件:
[root@master ~]# mysql_config_editor set --login-path=jjscj
--host=192.168.1.190 --user=jjscj --password
Enter password:
[root@master ~]# ll ~/.mylogin.cnf
-rw------- 1 root root 248 Aug 28 14:58 /root/.mylogin.cnf
使用加密文件登录:
[root@master ~]# mysql --login-path=jjscj
Welcome to the MySQL monitor.
查看当前主机上的加密文件:
[root@master ~]# mysql_config_editor print --all
[local]
user = root
password = *****
host = localhost
[jjscj]
user = jjscj
password = *****
host = 192.168.1.190
[remote]
user = jjscj
password = *****
host = 192.168.1.190
删除某个加密登陆:
[root@master ~]# mysql_config_editor remove
--login-path=remote
[root@master ~]# mysql_config_editor print --all
[local]
user = root
password = *****
host = localhost
[jjscj]
user = jjscj
password = *****
host = 192.168.1.190
重置所有:
[root@master ~]# mysql_config_editor reset
5)mysql 与 mysqld 的关系
1.mysqld 启动 MYSQL 服务 mysqldSQL 后台程序(即 MySQL 服务器)。要想使
用客户端程序,该程序必须运行,因为客户端通过连接服务器来访问数据库。
2.mysqld 是用来启动 mysql 数据库的命令,mysql 是打开并执行 sql 语句的命
令。
3.这两个都在 mysql 安装文件夹的 bin 目录下。
4.mysqld:SQL 后台程序(即 MySQL 服务器)。要想使用客户端程序,该程序必
须运行,因为客户端通过连接服务器来访问数据库。
mysql:交互式输入 SQL 语句或从文件以批处理模式执行它们的命令行工具。
6)mysqld –initialize
1.安装 mysql 初始化不要使用 mysqld --initialize,使用这个命令会给 root
用户生成一个随机密码,需要自行查找。
2.直接使用 mysqld --initialize-insecure,这样可以初始化 root 用户密码
为空。
3.若使用 mysqld --initialize 命令,不要自己创建 data 目录,否则无法正常生
成全部 data 目录文件,若已创建并初始化,
就直接删掉自己创建的 data 目录,然后再执行 mysqld --initialize 命令即可。
7) mysqldump
1. 备份导出示例:
1、导出数据和表结构——将特定数据库特定表中的数据和表格结构和数据全部
返回
mysqldump --u b_user -h 101.3.20.33 -p'H_password' -P3306
database_di up_subjects > 0101_0630_up_subjects.sql
2、导出表结构却不导出表数据——只返回特定数据库特定表格的表格结构,不
返回数据,添加“-d”命令参数
mysqldump --u b_user -h 101.3.20.33 -p'H_password' -P3306 -d
database_di up_subjects > 0101_0630_up_subjects.sql
3、导出表结构和满足挑顶条件的表数据——只返回特定数据库中特定表的表格
结构和满足特定条件的数据