logo资料库

MySQL OCP超详细学习笔记.pdf

第1页 / 共119页
第2页 / 共119页
第3页 / 共119页
第4页 / 共119页
第5页 / 共119页
第6页 / 共119页
第7页 / 共119页
第8页 / 共119页
资料共119页,剩余部分请下载后查看
目录 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、导出表结构和满足挑顶条件的表数据——只返回特定数据库中特定表的表格 结构和满足特定条件的数据
分享到:
收藏