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

时间:2022-01-21 09:44:05

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

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

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

细聊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秒。

本文出自 “架构师之路” 博客,请务必保留此出处http://wangweiak47.blog.51cto.com/2337362/1586286