1、mysql安装
(1)专用软件包管理器:deb(ubuntu系统)和rpm(Redhat、centos、Fedora、suse系统)
备注:
rpm包可以由两种组织制作,一种是操作系统发行商(Redhat)制作,一种是mysql官方制作
(2)通用二进制格式包
gcc:x86(32位),x64(64位)
(3)源代码包
5.5、5.6之后的mysql不再用make编译,而是改用cmake(跨平台);
5.5、5.6本身没有提供cmake,需要自定义安装;
mysql 6之后就已经集成了cmake
备注:
源代码方式和二进制包方式的区分
(1)二进制包里面包括了已经经过编译,可以马上运行的程序。你只需要下载和解包(安装)它们以后,就马上可以使用;源代码包里面包括了程序原始的程序代码,需要在你的计算机上进行编译以后才可以产生可以运行程序,所以从源代码安装的时间会比较长。
(2)二进制格式的包名字很长,都带有版本号、适应平台、适应的硬件类型等,而源码格式仅仅就是一个版本号的tar包:
mysql-5.0.45.tar.gz 是源码包
mysql-5.0.45-linux-x86_64-glibc23.tar.gz 是二进制包
(3)源代码包里的文件往往会含有种种源代码文件,头文件.h、c代码源文件.c、C++代码源文件.cc/.cpp等;而二进制包里的文件则会有可执行文件(与软件同名的往往是主执行文件),标志是其所在路径含有名为bin的目录(仅有少数例外)
2、mysql版本
alpha:内测版
beta:公测版
rc:发行候选版
ga:通用发行版
3、进程间通信
对于mysql客户端和服务端在同一主机的,不同进程间通过mysql.sock进行通信;
对于mysql客户端和服务端不在同一主机的,不同进程间基于TCP/IP协议栈进行通信
4、mysql工具
客户端工具
(1)mysql:交互式输入SQL语句或从文件以批处理模式执行它们的命令行工具
(2)mysqlaccess:检查访问主机名、用户名和数据库组合的权限的脚本
(3)mysqladmin:管理工具,执行管理操作的客户程序,例如创建或删除数据库,重载授权表,将表刷新到硬盘上,以及重新打开日志文件。mysqladmin还可以用来检索版本、进程,以及服务器的状态信息。
(4)mysqlbinlog:从二进制日志读取语句的工具。在二进制日志文件中包含执行过的语句,可用来帮助系统从崩溃中恢复
(5)mysqlcheck:检查工具,检查、修复、分析以及优化表的表维护客户程序
(6)mysqldump:备份工具,将mysql数据库转储到一个文件
(7)mysqlhotcopy:当服务器在运行时,快速备份的工具
(8)mysql import:导入工具,使用load data infile将文本文件导入相关表的客户程序
(9)mysqlshow:显示数据库、表、列以及索引相关信息的客户程序
(1)\d:定义语句结束符
(2)\c:提前终止语句执行(直接在后面加上\c即可,但是加在结束符后面语句依然会执行)
(3)\r:重新连接到服务器
(4)\g:无论语句结束符是什么,直接将此语句送至服务端去执行
(5)\G:无论语句结束符是什么,直接将此语句送至服务端去执行,而且是以竖排的方式来显示(纵向显示,这对于横排显示不下一张表的时候,\G是一种非常好的显示手段)
(6)\p:print,显示正在执行的命令
(7)! COMMAND:执行shell命令(或者用system)
(8)\W:大写W表示语句执行之后显示警告信息
(9)\w:小写w表示语句执行之后不显示警告信息
服务端工具
(1)mysqld:SQL后台程序(即mysql服务器进程)。该程序必须运行之后,客户端才能通过连接服务来访问数据库
(2)mysqld_safe:服务器启动脚本。在Unix中推荐使用mysqld_safe来启动mysqld服务器。mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志写入运行时间信息
(3)mysql.server:服务器启动脚本。它调用mysqld_safe来启动mysql服务
(4)mysql_multi:服务器启动脚本。用于启动或者停止系统上安装的多个mysql服务
(5)myisampack:压缩myisam表以产生更小的只读表的一个工具
(6)myisamchk:用来描述、检查、优化和维护myisam表的实用工具
(7)mysql_install_db:该脚本用默认权限创建mysql授权表。通常只是在系统上首次安装mysql时执行一次
备注:
mysqld工具可能不在bin目录下,可能在{mysql安装目录}/mysql/libexec下
图形化工具
mysql官方提供的图形化管理工具MySQL Workbench
MySQL Workbenck也有两个版本:
(1)MySQL Workbench Community Edition,也就是社区版本。
(2)MySQL Workbench Standard Edition,也就是商业版本,是按年收取费用的。
其他工具
mysql_config
mysql在安装完后,一般在${MYSQL_HOME}/bin目录下有mysql_config工具,它不是一个二进制文件,是一个脚本工具。
当我们在编译自己的mysql客户端时,可用通过mysql_config工具获取很多的有用的编译参数,例如使用mysql_config –include可以获取mysql的mysql在安装时的一些头文件位置,或者mysql_config–libs可以获取mysql的头文件及共享库等编译参数。例如:
mysql_config–include #得到-I/usr/include/mysql
mysql_config –libs #得到-L/usr/lib/mysql-lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -lssl -lcrypto
备注:
(1)修改用户密码:
mysqladmin -u username -h hostname password ‘new_password’ -p ‘old_password’
也可以这样修改:
set password for ‘username‘@’host’=password(‘new_password’)
(2)SELECT DATABASE();#查看当前使用的默认数据库
连入数据库的时候,还可以通过–database db_name(或者-D db_name)来指定默认的数据库
5、mysqladmin工具
mysqladmin create hellodb #不用连上数据库直接在linux命令行下创建(会读取my.cnf下的数据库的定义)
mysqladmin -uroot -p password -h host_name create hellodb
还有其他一些子命令,比如:
mysqladmin drop db_name:删除db
mysqladmin ping:测试对方mysql服务器是否在线:mysqladmin -uroot -p -hhostname(或主机ip) ping
mysqladmin processlist:显示正在执行的进程(线程列表)(相当于连上mysql之后执行的SHOW PROCESSES)
mysqladmin status:显示mysql服务器的状态
status的高级用法:
mysqladmin status –sleep 2 #定义多久显示一次
mysqladmin status –count 2 #定义显示次数
mysqladmin extended-status:显示状态变量(状态变量对于查询mysql服务器状态和排除故障至关重要)
mysqladmin variables:显示服务器变量(跟状态变量区分)
mysqladmin flush-privileges(等同于reload):让mysql重读授权表
mysqladmin flush-status:重置大多数的服务器状态变量
mysqladmin flush-threads:重置线程缓存
mysqladmin flush-logs:中继日志滚动
mysqladmin flush-hosts:重置连接的host
mysqladmin refresh:相当于mysqladmin flush-logs和mysqladmin flush-hosts
mysqladmin shutdown:关闭mysql服务器
mysqladmin version:显示当前服务器版本及状态信息
mysqladmin start-slave:启动复制,启动从服务器复制线程
mysqladmin stop-slave:关闭复制
6、表文件
(1)对于myisam存储引擎来说
.frm:表结构
.MYD:表空间
.MYI:表索引
(2)对于innodeDB存储引擎来说(默认所有表共享一个表空间文件,建议每个表单独一个表空间文件)
.frm:表结构
.ibd:表空间(表数据和表索引)
.opt:定义字符集和排列规则(是一个文本文件,排列规则collation)