一、理解MySQL基本概念
1、MySQL软件:MySQL实际上就是一软件,是一工具,是关系型数据库管理系统软件
2、MySQL数据库:就是按照数据结构来组织、存储和管理数据的仓库
3、MySQL数据库实例:
②MySQL实例是线程和内存组成,实例才是真正用于操作数据库文件的;
一般情况下一个实例操作一个或多个数据库;集群情况下多个实例操作一个或多个数据库。
二、MySQL数据库启动以及启动的判断
1、启动MySQL数据实例:
shell> service mysqld start #rpm包安装的mysql
如果是源码安装的话,推荐使用mysqld_safe命令的安全启动(可以看到启动信息)。
2、判断MySQL数据库是否启动:
shell> netstat -tulnp|grep 3306 #如果可以过滤出来(有输出)证明已启动
shell> mysqladmin -uroot -p123 ping #出现mysqld is alive证明是活跃的
三、如何使用官方文档和help
1、基本技能:DBA所有的操作必须来自于官方文档
2、mysql> help contents; #寻求help帮助的入口
四、官方文档概览
1、Tutorial:将MySQL常用的一些操作使用一个场景串联起来
只是关注里面的灰色部分就可以,按照里面的灰色操作部分顺一遍
2、server Administrator:MySQL管理需要的一些命令、工具、参数等
3、SQL Syntax
SQL语法,使用最多,特别是DDL语句一定要使用SQL语法进行参考
4、Server Option / Variable Reference:MySQL的参数和状态值,使用较多
5、Functions and Operators
MySQL常用函数和操作符,使用较多
6、Views and Stored Programs
视图、存储过程、函数、触发器、event语法参考
7、Optimization:优化
非常值得细致的看一遍,此篇文档不仅仅用来参考,更多的是用来学习优化知识,算是DBA进阶宝典
8、Partitioning
如果是要进行表分区,此文档是必须参考的资料,也是唯一参考的资料
9、Information Schema、Performance Schema
中级DBA常用的两个参考资料
10、Spatial Extensions
地理位置信息
11、Replication
MySQL使用复制功能,常用的参考资料
12、Semisynchronous Replication
半同步复制,个别场合会用到
五、如何使用官方文档
1、参考官方文档修改密码强度(降低密码强度)、修改密码
①改密码强度:
mysql> show variables like 'validate_password%';
mysql> SET GLOBAL validate_password_policy=0;
②修改密码:set、alter
2、参考官方文档查询当前数据库连接的数量(查询状态值Threads_connected)
mysql> show status like '%Threads_connected%';
注意:查看状态值是show status
查看变量值是show variables
3、建立一个数据库指定字符集
mysql> create database test_db character set utf8;
4、给一个表增加一个列,要求这个列的数据类型是字符串、非空(alter)
ALTER TABLE tbl_name ADD COLUMN col_name varchar(20) not null;
5、用函数将两个字符串串联起来(concat:合并多个字符串)
CONCAT():returns NULL if any argument is NULL.
CONCAT_WS(separator,str1,str2,...)
6、mysqladmin的使用:类同于ping数据库是否活跃、关闭数据库
shell> mysqladmin -uroot -p123 ping
mysqld is alive
shell> mysqladmin -uroot -p123 shutdown
7、如何启动数据库:mysqld_safe命令(切记挂后台&,否则占领当前会话无法退出)
shell> mysqld_safe --defaults-file=/etc/my.cnf &
官方文档对于具有一定基础知识的人来说,是一个最合适的工具,可以使DBA的操作变得没有障碍
六、登录MySQL查看当前会话的状态
mysql> status
七、描述MySQL在Linux平台下的大小写、同时演示大小写的区别
1、数据库名、表名、表别名严格区别大小写
2、列名、列别名忽略大小写
3、变量名严格区别大小写
4、MySQL在windows下各个对象都不区别大小写
②lower_case_table_names表示表名或数据库存储是否区别大小写,为只读变量,可以在配置文件my.cnf里面修改:
0表示区分大小写,按照新建数据库的大小写形式存储显示;
1表示无论新建数据库大小写都以小写的形式存储显示。
八、MySQL的几种帮助
1、shell> mysql --help
2、mysql> help show
mysql> show create table tel_name
mysql> help set
九、MySQL的变量如何查看,如何修改
1、查看变量用select
局部变量select var_name;
用户变量select @var_name;
全局变量select @@var_name;
2、修改变量用set
②set session表示修改后对本次会话生效
③如果变量是只读变量可以通过修改MySQL的配置文件my.cnf来修改变量,在[mysqld]下添加一行数据:user_var_name=expr,然后重启数据库再登录即可。
十、MySQL的状态参数如何查看、如何参考阅读其内容
在官方文档的Server Option / Variable Reference部分,进行参考查看MySQL的参数变量以及状态值
1、cmd-line表示能否在mysql安全启动(mysqld_safe)中进行参数设置 --var_name=……
2、option file表示能否在mysql的参数文件中进行参数设置
3、system var表示是否是系统变量
4、status var表示是否是状态变量
5、var scope表示变量的范围:全局global、会话session
6、dynamic表示是否是动态参数,yes是动态,no是静态
十一、如何查看某个数据库里面有多少表、每一个表的列的信息
1、show tables; desc tbl_name;
2、mysql> select * from information_schema.TABLES
-> where TABLE_NAME='tbl_name'\G;
①information_schema数据库:也称为数据字典,记录了各数据库的表、视图、索引、存储过程、函数等信息……
②information_schema.TABLES:记录了MySQL中每一个数据库中表所在的数据库、表的名字、表的行数等信息。
十二、如何查看一个表的建表语句、