文档介绍:数据库培训手册
MySQL基本常用路径
数据库路径:/var/lib/mysql /usr/include/mysql
配置文件:/usr/share/mysql()
相关命令:/usr/bin(mysqladmin、mysqldump等命令)
启动脚本: /etc// (启动脚本文件mysql的目录)
MySQL—f配置文件
f为MySQL数据库的主配置文件,存放在/etc下,打开如下图:
innodb和myisam都是数据库的一种常用类型,基本区别如下:
innodb支持事务处理以及外部键和行级锁等高级数据库功能;
myisam不提供上述支持,更强调于性能,执行速度更快;
管理员可以在【mysqld】f进行配置更改,具体功能介绍如下:
skip-name-resolve
必须使用ip不能使用主机名;
myisam-recover=default
控制myisam查找和修复错误的方式(default代表mysql会尝试修复标记为崩溃或没有干净关闭的表,除了修复,不会做任何事情)
datadir=/usr/local/apache/htdocs/keyun
数据目录所在位置。
port =56788
mysql使用的端口。
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
sql_mode:根据需求定制MySQL服务器的操作模式,模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查。这样可以更容易地在不同的环境中使用MySQL,并结合其他的数据库服务器使用MySQL。
No_engine_substitution:如果需要的存储引擎被禁用或未编译,可以防止自动替换存储引擎;
Strict_trans_tables:如果不能将给定的值插入事务表中,则放弃该语句。对于非事务表,如果值出现在单行或多行的第一行则放弃该语句;
innodb_buffer_pool_size = 1G
缓冲池字节大小(默认是128M), 这个值设置的越大,在不止一次的访问
相同的数据表数据时,消耗的磁盘I/O就越少。(如果是一个专用的数据库服务器,可设置为高达80%的物理内存)
实际测试中,带来的性能提升不明显,CPU压力反而增大!
innodb_additional_mem_pool_size = 64M
设置innodb存储的数据目录信息和其他内部数据结构的内存池大小,应用程序里的表越多,这里就应该越多的分配内存(如果此内存池满了,innodb会从操作系统分配内存,并在MySQL错误日志中写入告警信息)
innodb_log_file_size = 256M
如果对innodb表有大量写入操作,那么选择合适的日志大小对提升MYSQL性能很重要。
设置太大的话,会在mysql崩溃或突然断电等情况时恢复时间变长(最大值为4G)
innodb_log_buffer_size = 8M
log_buffer是日志缓冲
mit = 1
0代表log buffer美妙就会被刷写日志文件到磁盘,提交事务的时候不作任何操作(由线程thread和master执行);
1代表(默认值是1)每次提交事务的时候都会将log buffer刷写到日志(刷指刷入到磁盘);
2代表每次提交事务都会写日志,但并不会执行刷的操作;
(写入事务日志仅是调用了文件系统的写入操作,但文件系统是有缓存的,所以写入并不能保证数据已经写入到物理磁盘;)
innodb_lock_wait_timeout = 500
事务等待、获取资源等待的最长时间,超过这个时间还未分配到资源则会返回应用失败;(默认是50s)
innodb_file_per_table=1
修改innodb为独立表空间模式,每个数据库的每个表都会生成一个数据空间"=1"代表开启;
MySQL—用户设置与更改
MySQL数据库默认会建立一个mysql库,并通过配置其中user表来管理用户,一下为关于用户设置的常用命令及图片:
User表如图:
Host:对用户的登录来源进行设置。
“%”表示允许所有来源;
“localhost//::1”表示允许本地主机登录;
User:登录用户名进行设置;
Password:建立用户时创建的密码;
Select_priv等相:用户对数据库的操作权限;(给新用户添加更改权限,建议使用root登录,然后赋权);
用户设置命令如下:
MySQL用户登录:mysql –u username –p password
创建用户:create user 'liu