细聊MySQL之常用工具及基本操作(一)

一、对于MySQL用户来说,使用MySQL的第一步就是启动它。要启动MySQL,我们需要mysqld或mysqld_safe命令。默认情况下,直接执行mysqld或mysqld_safe即可。如

shell> mysqld & 或

shell> mysqld_safe &。当然不是所有事情都那么顺利,如果启动不了,请指定相关的参数。服务器运行的前提是你已经执行了mysql_install_db脚本。当然,如果就这样启动,将有很多功能启动不了。如没有binlog,当某一天你不小心把数据库弄挂了,就没有挽回的余地了。所以在启动时,要先想好我们所需要的配置选项。

mysqld_safe的常用参数如下:

参数 描述
--basedir=path 重要:指定MYSQL的安装路径
--core-file-size=size MYSQL能创建文件的大小,此参数将会传给ulimit,一般不设置。
--datadir=path MYSQL存放数据的路径
--defaults-extra-file=file_name 在全局配置后与用户配置前读指定的配置文件,如果填写的不是完整路径而仅仅是文件名,则读相对路径下的文件。与mysql内参数一样
--defaults-file=file_name 读配置文件的路径,与mysql内参数一样
--ledir=path 如果mysqld_safe找不到服务器,使用此选项指定服务器位置
--log-error=file_name 写错误日志到指定的文件内
--malloc-lib=[lib-name] 使用别的库替换malloc库
--mysqld=prog_name 设置服务器名称
--nice=priority 设置服务器被CPU调用的优先级
--no-defaults 不读任何配置文件
--open-files-limit=count MYSQL能打开的最大文件数
--pid-file=file_name 指定PID文件名
--plugin-dir=path 指定插件安装路径
--port=number 服务器监听的端口号
--skip-kill-mysqld 不杀掉失效的myslqd进程
--skip-syslog 不写错误信息到syslog
--socket=path socket文件读取路径
--syslog 写错误信息到syslog
--syslog-tag=tag 写到syslog内的标记
--timezone=timezone 设置时区
--user={user_name|user_id} 设置运行用户

通常,我们需要设置--basedir、--datadir、--user 这样可以显式控制数据文件的存放位置、以什么用户运行。在默认情况下,启动mysqld_safe时会读取my.cnf配置文件。我们可以在以下位置放置my.cnf如/etc下,MYSQL安装目录下等。mysqld_safe会按一定的顺序去读取,下面是一个配置文件读取顺序表:

文件名 作用域
/etc/my.cnf 全局配置
/etc/mysql/my.cnf 全局配置
SYSCONFDIR/my.cnf 全局配置
$MYSQL_HOME/my.cnf 服务器指定配置
defaults-extra-file 指定配置文件路径
~/.my.cnf 用户范围的配置

也就是/etc/my.cnf > /etc/mysql/my.cnf > SYSCONFIGDIR/my.cnf > MYSQL_HOME/my.cnf > defaults-extra-file指定的配置文件路径 > 用户目录下的my.cnf。而通过命令行添加的参数会覆盖所有配置文件中的参数。当然,如果你想要自定义配置文件的路径,可以使用--defaults-file参数。

老规矩,给个例子大家参考下:shell> /usr/local/mysql/bin/mysqld_safe --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &

启动后最好用ps aux 看下mysqld的进程是否在进程列表中,以确认启动成功。

二、在服务器启动成功后,我们就可以进行数据库操作了。要操作数据库,首先得通过mysql的客户端连到server。在这里,我们使用mysql客户端脚本进行服务器的连接。

shell> mysql --host=localhost --user=myname --password=mypass mydb

或shell> mysql -h localhost -u myname -pmypass mydb

如果用下面这种形式,-p后应紧跟密码,不要有空格,否则密码会被命令解析成数据库名噢。

其它参数:

参数 描述 适用 弃用
--auto-rehash 启动名字自动补全功能
--auto-vertical-output 启动结果集垂直显示
--binary-mode 关闭将\r\n转换为\n和以\0作为查询结尾的处理
--bind-address=ip_address 绑定指定的网络接口进行连线
--character-sets-dir=path 指定字符集的安装目录
--column-names 在结果集中显示列名
--column-type-info 在结果集中显示数据库及表的元信息
--comments 将注释发送给服务器
--compress 发送服务器与客户端之间的传输信息
--connect_timeout=value 连接超时时间限制
--database=dbname 要使用的数据库名
--debug[=debug_options] 写debug日志
--debug-check 在客户端退出时打印一些debug信息
--debug-info 在客户端退出时打印一些debug信息,包括cpu和内存的统计
--default-auth=plugin 使用验证插件
--default-character-set=charset_name 指定默认的字符集
--defaults-extra-file=file_name 在全局配置后与用户配置前读指定的配置文件,如果填写的不是完整路径而仅仅是文件名,则读相对路径下的文件。
--defaults-file=file_name 只读指定的配置文件,如果填写的不是完整路径而仅仅是文件名,则读相对路径下的文件。
--defaults-group-suffix=str 为配置文件名内的组加后缀
--delimiter=str 设置声明语句后的分隔符
--execute=statement 直接执行语句
--force 如果SQL出错,继续执行
--host=host_name 指定连接的主机
--html 生成html输出
--init-command=str 在连接到服务器后,运行指定的SQL
--line-numbers 当错误发生时记下行号
--max_allowed_packet=value 服务器与客户端通讯的最大包的长度
--max_join_size=value 当使用--safe-updates时限制最大行数
--net_buffer_length=value TCP或socket连线的buffer大小
--no-auto-rehash 关闭自动补全功能
--no-beep 当发生错误时不发出beep报警
--no-defaults 不使用配置文件
--password[=password] 在建立连线时输入密码
--plugin-dir=path 安装指定插件
--port=port_num 连接使用的端口号
--print-defaults 打印配置文件信息
--prompt=format_str 设置提示符格式
--protocol=type 连线使用的协议{TCP|SOCKET|PIPE|MEMORY} SOCKET仅用于unix,PIPE和MEMORY仅用于WINDOWS,TCP通用
--quick 不缓存查询结果
--raw 不转义列值
--reconnect 自动重连
--show-warnings 显示每次查询后的警告信息
--silent 产生更少的输出
--skip-auto-rehash 禁止名字补全功能
--skip-column-names 在结果集中不写列名
--skip-reconnect 禁止重新连接
--socket=path 本地连线,指定socket文件位置
--ssl 启动SSL连接
--syslog 记录交互式声明到syslog 5.7.1
--table 表格式输出
--tee=file_name 添加输出的拷贝到指定的文件内
--unbuffered 在每次查询后刷新缓存
--user=user_name 连线时输入的用户名
--verbose 详细模式
--version 显示版本
--vertical 每列一行显示
--wait 如果不能建立连线,等待并重试
--xml 输出XML格式

里面有几个选项是比较常用的,在这里稍微提下。通常我们需要使用--user、--host、--password来建立连接,如果你是在本地进行连线,可以使用--socket指定socket文件。默认情况下,mysql是一个交互式的shell。如果你想直接得出查询结果,可以使用--execute选项,可以参考以下命令:/usr/local/mysql/bin/mysql --user=root --host=127.0.0.1 --execute="select * from user"。

三、客户端管理工具mysqladmin的使用。mysqladmin是一个客户端管理工具,你能使用它检查服务器的配置和当前状态或者创建和删除数据库以及更多其它的操作。

mysqladmin的命令格式如下:shell> mysqladmin [options] command [command-arg]

也就是mysqladmin后跟前缀为--的选项,接着跟命令,然后在命令后跟命令参数。

可选命令:


命令名


描述


create db_name


创建数据库


debug

写debug信息到error.log

drop db_name


删除数据库


extended-status


显示服务器状态变量和它们的值


flush-hosts


刷新主机缓存信息


flush-privileges


刷新权限表


flush-status

清除状态变量

flush-tables

刷新所有的表

flush-threads


刷新线程缓存


kill id,id,...


杀掉服务器线程


password new-password


设置新密码


ping


ping服务器


processlist


显示活动的服务器线程列表


reload


重载授权表


refresh


刷新所有的表并关闭打开的日志文件


shutdown


关闭服务器


start-slave


在从服务器上开始主从复制


status

显示简短的服务器状态消息

stop-slave


在从服务器上停止主从复制


variables


显示服务器系统变量和它们的值


version


显示服务器版本信息


Uptime(status命令结果集中显示的)


status结果集中显示服务器运行时间


Threads(status命令结果集中显示的)


status结果集中显示服务器活动进程数


Questions(status命令结果集中显示的)


status结果集中显示自服务器运行开始客户端的查询数


Slow queries(status命令结果集中显示的)


status结果集中显示慢查询的数量


Opens(status命令结果集中显示的)


status结果集中显示服务器打开表的数量


Flush tables(status命令结果集中显示的)


status结果集中显示服务器执行flush、refresh和reload命令的次数


Open tables(status命令结果集中显示的)

status结果集中显示当前打开表的数量

可选参数列表如下所示:

参数 描述 适用 弃用
--bind-address=ip_address 同mysql命令
--compress 同mysql命令
--connect_timeout=seconds 同mysql命令
--count=# 重复执行命令的次数,需要配合--sleep参数
--debug[=debug_options] 同mysql命令
--debug-check 同mysql命令
--debug-info 同mysql命令
--default-auth=plugin 同mysql命令
--default-character-set=charset_name 同mysql命令
--defaults-extra-file=file_name 同mysql命令
--defaults-file=file_name 同mysql命令
--defaults-group-suffix=str 同mysql命令
--force 同mysql命令
--help 同mysql命令
--host=host_name 同mysql命令
--no-beep 同mysql命令
--no-defaults 同mysql命令
--password[=password] 同mysql命令
--plugin-dir=path 同mysql命令
--port=port_num 同mysql命令
--print-defaults 同mysql命令
--protocol=type 同mysql命令
--relative 当--sleep选项启动时显示上次值与当前值的差别
--secure-auth 同mysql命令 5.7.4 5.7.5
--show-warnings 同mysql命令 5.7.2
--shutdown_timeout=seconds 等待服务器关闭的最大秒数
--silent 同mysql命令
--sleep=delay 执行重复的命令,在之间睡眠N秒
--socket=path 同mysql命令
--ssl 同mysql命令
--ssl-ca=file_name 同mysql命令
--ssl-capath=dir_name 同mysql命令
--ssl-cert=file_name 同mysql命令
--ssl-cipher=cipher_list 同mysql命令
--ssl-crl=file_name 同mysql命令
--ssl-crlpath=dir_name 同mysql命令
--ssl-key=file_name 同mysql命令
--ssl-verify-server-cert 同mysql命令
--user=user_name, 同mysql命令
--verbose 同mysql命令
--version 同mysql命令
--vertical 同mysql命令
--wait 同mysql命令

给个参考大家:/usr/local/mysql/bin/mysqladmin --user=root --host=127.0.0.1 processlist --sleep=5 --count=3 表示显示进程列表,显示3次,间隔时间5秒。

时间: 2024-11-09 16:43:29

细聊MySQL之常用工具及基本操作(一)的相关文章

细聊MySQL之常用工具及基本操作(二)

接细聊MySQL之常用工具及基本操作(一) 四.客户端管理工具mysqlcheck的使用.mysqlcheck是客户端表维护工具,可以检查.修复.优化或分析表. 如 shell> mysqlcheck databasename tablename [options] databasename为数据库名 tablename为表名 如果你只指定databasename,通常会检查databasename下所有的表.如果你既不指定databasename,也不指定tablename,那么一定要添加参数

细聊MySQL之常用工具及基本操作(三)

细聊MySQL之常用工具及基本操作(一) 细聊MySQL之常用工具及基本操作(二) 七.使用mysqlshow工具查看数据库.表和列的信息.具体语法: shell> mysqlshow [options] [db_name [tbl_name [col_name]]] 注:如果没有数据库给定,列出数据库列表 如果没有表给定,列出所有数据库的表 如果没有列给定,列出表内所有的列 详细参数如下: 参数 描述 适用 弃用 --bind-address=ip_address 同mysql命令 --com

细聊MySQL的Innodb存储引擎(完)

细聊MySQL的Innodb存储引擎(一) 细聊MySQL的Innodb存储引擎(二) 细聊MySQL的Innodb存储引擎(完) 上篇主要和大家探讨了Innodb引擎中出现幻读的处理方法与死锁的探测及避免死锁的一些注意事项.此篇,我们来研究下Innodb的索引. Innodb里涉及到的索引主要有四种,分别为聚簇索引(Clustered Index).次级索引(Secondary Index).全文索引(FULLTEXT Index).哈希索引(Hash Index). 聚簇索引与次级索引 每一

细聊MySQL的Innodb存储引擎(二)

细聊MySQL的Innodb存储引擎(一) 上一篇主要和大家探讨了下Innodb的锁机制与隔离机制.本篇来和大家一起研究下在使用Innodb是会出现的问题以及如何解决它们. Innodb是如何解决幻读问题的 什么是幻读?听起来似乎很高端,但实际上它只是反映了事务中的一种数据不一致的情况.下面看我来描述这样一个场景,通过这个场景,大家就能很清楚的知道幻读到底是什么意思. 打开两个客户端,设为A和B A客户端 mysql> start transaction; (步骤一) Query OK, 0 r

细聊MySQL的备份与恢复

备份对于数据库来说是相当重要的工作.如果数据库在使用过程中出现了问题,比如系统崩溃.硬件故障或错误的删除了数据.这时,如果我们进行了数据备份,就能比较方便的使数据库恢复工作,并使我们的数据损失到最小.下面,我从备份类型.备份方法及一些常用的例子来和大家详细探讨下数据库的备份与恢复. 一.备份类别 1.物理备份与逻辑备份 物理备份用人话来形容就是复制数据库的数据文件.如果我们需要备份名为test的数据库,则我们可以将数据目录下的test目录复制到备份设备中.如果我们需要备份test库下名为user

细聊MySQL的分区功能

此篇主要介绍下MySQL的分区功能.我们分别从分区的概念.分区对于MySQL应用的优点.分区的类别及设置来和大家一起探讨下MySQL的分区. 什么是分区? MySQL在未启用分区功能时,数据库的单个表内容是以单个文件的形式存放在文件系统上的.当启用分区功能后,MySQL将按用户指定的规则将单个表内容分割成几个文件存放在文件系统上.分区分为水平分区和垂直分区,水平分区是将表的数据按行分割成不同的数据文件,而垂直分区则是将表的数据按列分割成不同的数据文件.分片要遵循完备性原则.可重构性原则与不相交原

细聊MySQL的安全机制

MySQL作为系统的数据库,在安全性方面有非常高的要求.如果一个系统的数据库被非法进入或窃听,则系统的数据将受到非常严重的威胁,轻则数据.密码被盗,重则导致整个系统瘫痪.所以数据库的安全对于系统来说是非常重要的. 本文将从MySQL的服务器启动与客户端访问.操作及链路三方面来阐述MySQL的安全机制. 一.MySQL的服务器启动与客户端访问.        1.服务器启动,启动服务器在安全方面的影响主要是启动它的用户.默认情况下,MySQL不允许使用root账号启动.我们应该建立一个只能操作My

细聊MySQL的Innodb存储引擎(一)

从MySQL5.5开始,Innodb就成为MySQL的默认存储引擎了.可想而知,Innodb已经成为MySQL的主要生产方式.那Innodb到底有什么本事能够击败其它几位存储引擎而荣登宝座呢?下面,我就来和大家一起探讨探讨牛逼的Innodb引擎.Innodb涉及到的知识点比较多,所以我会分几篇来叙述,此篇主要介绍Innodb的基本概念和架构. 要了解Innodb,首先需要了解MySQL的ACID模型.何为ACID?ACID指的是事务的原子性(A).一致性(C).隔离性(I).持久性(D). 原子

细聊MySQL之基本安装与启动

由于MySQL的生产环境通常会部署在Linux上,所以这里只说下Linux上的安装与启动. 一.版本识别 MYSQL的版本说明:如mysql-5.7.1-m1 第一个数字5代表主版本号和描述文件格式.所有的MYSQL 5发布版本有一样的文件格式. 第二个数字7代表发布等级.主版本号5和发布登记合起来组成发布序列号. 第三个号码1代表发布次数.每次有新的发布,发布次数号增加1. m+数字代表一个里程碑号,MYSQL开发使用一个里程碑模型管理. rc代表一个发布候选.发布候选版本通常是稳定的.通过了