- Mysql服务器的运维与优化
1.案例目标
(1)了解MySQL的基础命令。
(2)使用MySQL基础运维命令。
(3)了解MySQL数据库优化。
2.案例分析
IP地址 | 主机名 | 节点 |
192.168.104.116 | mysql | mysql |
- 案例实施
3.1mysql运维
- 安装数据库
配置本地YUM安装源,将提供的gpmall-repo文件上传至/opt目录,创建local.repo文件
安装数据库并启动,设置初始化数据库:
[root@localhost ~]# yum install -y mariadb mariadb-server
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# mysql_secure_installation
- 创建数据库
创建一个名称为test数据库
在“test”数据库中创建一个名为“tables”数据表。命令如下所示:
- 数据库备份
导出整个数据库:
导出一个数据表:
删除test数据库进行导入测试,用mysqldump备份的文件是一个可以直接导入的SQL脚本。有两种方法可以将数据导入,一种用msql命令,把数据库文件恢复到指定的数据库,命令如下所示:
第二种,可以使用source语句方法导入数据库,把数据库文件恢复到指定的数据库,命令如下所示:
(4)添加用户并授权
授权root用户可以在任何节点访问test数据库下所有表,“%”代表所有节点机器,命令如下所示:
添加root用户对test数据库授增、删、改、查的权限,命令如下所示:
3.2MySQL数据库优化
修改数据库配置文件,添加参数,命令如下所示:
参见优化解析:
命令 | 解析 |
thread_concurrency | 并发线程数,建议为CPU核心数乘以2 |
max_connections | 最大连接(用户)数。每个连接MySQL的用户均算作一个连接 |
max_connect_errors | 最大失败连接限制 |
bulk_insert_buffer_size | 批量插入数据缓存大小,可以有效提高写入效率,默认为8 MB |
query_cache_type | 控制着查询缓存功能的开启的关闭。0时表示关闭,1时表示打开,2表示只要select 中明确指定SQL_CACHE才缓存 |
query_cache_size | 指定MySQL查询缓冲区的大小,用来缓冲select的结果,并在下一次同样查询的时候不再执行查询而直接返回结果,根据Qcache_lowmem_prunes的大小,来查看当前的负载是否足够高,在数据库写入量或是更新量也比较大的系统,该参数不适合分配过大。而且在高并发,写入量大的系统,建议把该功能禁掉。属重点优化参数(主库增删改-MyISAM) |
max_allowed_packet | 设定在网络传输中一次可以传输消息的最大值,系统默认为1 MB,最大可1 GB |
read_buffer_size | 来做MYISAM表全表扫描的缓冲大小,对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果对表的顺序扫描请求非常频繁,并且用户认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能 |
read_rnd_buffer_size | 随机读(查询操作)缓冲区大小。当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机读缓存区。进行排序查询时,MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySQL会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大 |