mysql多实例: 开启多个不同的服务端口,运行多个mysql服务进程。 应用场景:业务访问量不太大,节约成本 cat /etc/my.cnf [mysqld_multi] mysqld = /usr/bin/mysql_safe mysqladmin = /usr/bin/mysqladmin user = mysql [mysqld1] socket = /var/lib/mysql/mysql.sock port = 3306 pid-file = /var/lib/mysql/mysql.pid datadir = /var/lib/mysql user = mysql [mysql2] socket = /mnt/data/mysql/mysql.sock port = 3307 pid-file = /mnt/data/mysql/mysql.pid datadir = /mnt/data/mysql user = mysql [mysql3] socket = /mnt/data1/mysql/mysql.sock port = 3308 pid-file =
MySQL性能调优 提高MySQL系统的性能、影响速度 -替换硬件(CPU/磁盘/内存等) -服务程序的运行参数调整 -对SQL查询进行优化 并发及连接控制 -连接数、连接超时 max_connections //允许的最大并发连接数 connect_timeout //等待建立连接的超时秒数,默认10秒,只在登录时有效 wait_timeout //等待关闭连接的不活动超时秒数,默认28800秒(8小时) -产看当前已使用的连接数 mysql>flush status; mysql>show globale status like "max_used_connections"; -查看默认的最大连接数 mysql>show variables like "max_connections"; -缓存参数控制 缓存区、线程数量、开表数量 key_buffer_size //用于MyISAM引擎的关键索引缓存大小 sort_buffer_size //为每个要排序的线程分配此大小的缓存空间 read_buffer_size //为顺序读取表记录保留的缓存大小 read_rnd_bu
MySQL主从同步 MySQL AB复制 1.对指定库的异地同步。 2.MySQL主-->从复制架构的实现。 3.MySQL服务器的只读控制。 主从: 单向复制时,建议将从库设置为只读。 主从复制的原理: Master,记录数据更改操作。 -启动binlog日志 -设置binlog日志格式 -设置server_id Slave,运行2个线程。 -Slave_IO:复制master主机binlog日志文件里的SQL到本机的relay-log文件里。 -Slave_SQL:执行本机relay-log文件里的SQL语句,重现Master的数据操作。 构建主从同步 1.确保数据相同 -从库必须要有主库上的数据。 2.配置主服务器 -启用binlog日志及设置格式,设置server_id,授权用户。 3.配置从服务器 -设置server_id,配置为从数据库服务器。 4.测试同步效果 -客户端连接主库,写入的数据,在访问从库的时候也能够看到。 确保数据相同 Master服务器: -应包括希望同步的所有库 -对采用MyISAM的库,可离线备份 mysql>reset master; //重置bin
常见的MySQL管工具 mysql 命令行 跨平台 MySQL官方bundle包自带 MySQL-Workbench 图形 跨平台 MySQL官方提供 MySQL-Front 图形 Windows 开源,轻量级客户端软件 phpMyAdmin 浏览器 跨平台 开源,需LAMP平台 Navicat 图形 Windows 专业、功能强大、商业版 PhpMyAdmin部署思路: 1.安装httpd、mysql、php-mysql及相关包 2.启动httpd服务程序 3.解压phpMyAdmin包,部署到网站目录 4.配置config.inc.php,指定MySQL主机地址 5.创建授权用户 6.浏览器访问、登录使用 yum -y install httpd php php-mysql tar -zxf phpMyAdmin-2.11.11-all-languages.tar.gz -C /var/www/html/ cd /var/www/html/ mv phpMyAdmin-2.11.11-all-languages/ phpmyadmin chown -R apache:a
常用的统计函数 avg() 集合的平均数 sum() 对集合中的各参数求和 min() 集合中的最小值 max() 集合中的最大值 count() 记录的个数 例:输出ku库lisi表的记录个数,各个学生年龄总和 计算各学生的平均年级、最大、最小的年龄。 mysql>select count(*),sum(age) from ku.lisi; mysql>select avg(age),max(age) from ku.lisi; 查询结果排序/分组 基本用法: -ORDER BY 字段名 [asc(升序)/desc(降序)] -GROUP BY 字段名 [HAVING 条件表达式] -LIMIT N,M 限制显示记录条目数 例: 查询ku库lisi表,按年龄排序,输出前2条结果。 mysql>select * from ku.lisi order by age limit 2; 再输出降序排列的前2列结果 mysql>select *
SQL数据导入 基本用法 格式:load data infile "导入/导出使用的目录名/文件名" into table 库.表名 fields terminated by "字段间隔符号" lines terminated by "\n"; 注意事项: 1.字符按分隔符要与文件内容的一致。 2.指定导入文件的绝对路径。 3.导入数据的表字段类型要与文件字段匹配。 4.禁用SElinux 例: 1.把文件的内容存储复制到导入/导出使用的目录。 #cp /etc/passwd /var/lib/mysql-files/ 2.创建表字段类型要与文件字段匹配。 3. /etc/passwd 字段分为 用户名:密码占位符 :uid :gid :描述信息 :家目录 :shell mysql>create database passwddb; mysql>create table passwddb.test( >user char(20), >password char(1), >uid int(2), >gid int(2)
修改表的存储引擎: 建表时,使用默认存储引擎。 -SHOW CREATE TABLE xxx\G; 可查看 例: mysql>create table ku.abc( >id int(4), >name char(5) >) engine=innodb; mysql>show create table ku.abc\G; 更改现有表的存储引擎: -使用ALTER TABLE 改变引擎设置。 mysql>alter table ku.abc engine=myisam; msyql>show create table ku.abc\G; 设置默认存储引擎: 修改配置文件/etc/my.cnf vim /etc/my.cnf [mysqld] .... default-storage-engine=InnoDB service mysql restart 存储引擎的特点 MyISAM存储引擎的主要热点: 1.支持表级锁定,不支持行级锁定。 2.不支持事务 3.不享表空间 4.多用在查询、插入操作较多的表。 相关的表文件: 表.MYI 存放索引信息
索引的类型: 1.INDEX:普通索引 2.PRIMARY KEY:主键 3.UNIQUE:唯一索引 4.FOREIGN KEY:外键 5.FULLTEXT:群文索引 例:建表的时候指定索引字段 -INDEX(字段1),INDEX(字段2)... mysql>create database ku; mysql>create table ku.abc( >id int(2) not null, >name varchar(4) not null, >age int(3) not null, >index(name),index(age) >); mysql>desc ku.abc; Field Type Null Key Default Extra .. .. .. MUL .. .. mysql>insert into ku.abc values(1,"wang",23); mysql>select * from ku.abc;
指令类型: MySQL指令:环境切换,看状态,退出等控制 SQL指令:数据库定义/查询/操纵/授权语句 DDL 数据定义语言(create alter drop) DML 数据操作语言(insert updata delect) DCL 数据控制语言(grant revoke) DTL 数据事物语言(commit rollback savepoint) 命令: show databases; 查看所有的库 use 库名; 进入到指定库 show tables; 列出当前库内的所有表 describe 表名; 查看表的字段结构 create datebases 库名; 创建指定库 select database(); 查看当前所在的库 drop databas 库名; 删除指定的库 create table 库名.表名( #创建指定的表 字段名1 字段类型(宽度) 约束条件; 字段名2 字
/var/log/redis_6379.log 日志文件 /var/lib/redis/6379 数据目录 /usr/local/bin/redis-server Redis服务器软件存储路径 vim /etc/redis/6379.conf 配置文件 ..... maxmemory <bytes> 最大内存 maxmemory-policy volatile-lru 内存满时,使用LRU算法清理旧数据 daemonize yes 守护进程 pidfile /var/run/redis_6379.pid 进程PID port 6379 端口号 timeout 300 连接超时时间 loglevel notice 日志级别 logfile /var/log/redis_6379.log 日志文件 databases 16 数据库个数 save 900 1 数据库镜像频率 dbfilename dump.rdb 镜像备份文件名 /var/lib/red
1、安装 [root@vh01 ~]# yum install -y memcached [root@vh01 ~]# systemctl start memcached [root@vh01 ~]# systemctl enable memcached 2、测试 [root@vh01 ~]# yum install -y telnet [root@vh01 ~]# telnet 127.0.0.1 11211 set name 0 180 3 # 设置变量名为name,0表示不压缩, #180表示name变量的缓存时间是180秒, #3指的是name变量占用3字节空间 zzg #变量name的值 get name #获取变量name的值 add myname 0 180 5 #添加变量myname,如果变量存在则报错 hello #myname的值 set name 0 180 10 #添加或替换变量 replace name 0 180
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号