当前位置:首页 > 问答 > 正文

mysql命令行那些参数怎么用,简单说说不全但够入门了解

想用mysql命令行工具连接上数据库,最基本的命令就是mysql,但光打这三个字母多半是连不上的,你得告诉它要连接到哪里、用谁的身份连,这就涉及到参数了,参数通常以两个减号开头,-u

(根据MySQL 8.0官方文档中关于mysql客户端选项的描述) 最核心、最常用的几个参数是这些:

  1. -h(主机名):这个参数指定你要连接的MySQL数据库服务器在哪,如果数据库就在你自己的电脑上,你可以用 -h 127.0.0.1 或者 -h localhost,如果你的数据库在另一台服务器上,比如公司的一台内部机器,那就要把IP地址或者域名写在这里,-h 192.168.1.100,如果你不写这个参数,它默认就认为是localhost

  2. -P(端口号):数据库服务是在一个特定的“门牌号”上监听连接的,这个门牌号就是端口号,MySQL的默认端口是3306,如果数据库管理员没有改动过端口,你一般不用管这个参数,但如果他们改了,比如改成了3307,你就必须明确指定 -P 3307,注意,这里的P是大写的,小写的-p有别的用途,下面马上说。

  3. -u(用户名):这是你的登录账号,你想用用户名叫root的账号登录,就写 -u root,如果你不写这个参数,它可能会尝试用你操作系统的当前用户名去登录,这通常都会失败。

  4. -p(密码):这是最重要的参数之一,用于输入密码,它的用法有点特别,你有两种选择:

    • 不安全但方便:直接在命令里写上 -p你的密码,中间不能有空格,-p123456,但这样非常不安全,因为别人用历史命令一眼就看到你的密码了。
    • 安全但多一步:只写 -p,后面不跟任何东西,当你敲下回车后,命令行会换一行,提示你Enter password:,这时候你再输入密码,你输入的时候,屏幕上不会有任何显示(连星号都没有),这是正常的,防止别人偷看,输完直接回车就行。强烈推荐永远使用这种方式。

把这几个参数组合起来,一个完整的登录命令看起来是这样的: mysql -h 127.0.0.1 -P 3306 -u root -p 然后回车,再输入密码,你就进入MySQL的命令行界面了,会看到提示符变成了 mysql>


连接上去之后,你可能会遇到另一个问题:屏幕上显示的结果如果字段太多、数据太长,会挤成一团,很难看,这时候就需要一些控制显示效果的参数。

(根据实际使用经验及社区常见用法) 有用的参数有:

  1. -v-vv-vvv(详细模式):这个参数会让mysql客户端把它背后执行的所有命令都打印出来,比如你用一个SQL文件去导入数据,加上-v,它就会告诉你它正在执行文件里的每一条语句。v越多,打印的信息就越详细,这在调试脚本或者想看进度的时候很有用。

  2. -A(不自动补全):默认情况下,你按Tab键,mysql会尝试帮你补全数据库名、表名,这功能本身挺好,但如果你要连接的数据库特别大,里面有成百上千个表,这个自动补全的初始化过程会非常慢,导致连接卡住好几秒,加上 -A 参数,告诉它不要自动补全,能极大加快连接速度,等你需要补全时,再手动触发也行。

  3. -H-X(以HTML格式输出结果):这个参数比较小众,但有时能派上用场,它会让查询结果不是以传统的表格形式打印,而是生成一个简单的HTML代码,表格用<table>标签表示,如果你需要把结果直接贴到一个网页里,这会省点事。

  4. -t(以表格形式输出):这其实是默认行为,但有时你如果用了其他参数(比如把结果输出到文件再猫眼看),结果可能不是表格,用-t可以确保是漂亮的表格。

  5. -e(执行一条语句后退出):这个参数极其有用,尤其是在写Shell脚本的时候,它允许你直接在连接命令后面跟上要执行的SQL语句,执行完后,mysql客户端会自动退出,把结果留在屏幕上(或者你可以重定向到文件),这样你就不需要先交互式登录,再手动敲命令了,你想快速查看一下有哪些数据库,可以这样: mysql -u root -p -e "SHOW DATABASES;" 输入密码后,它直接显示数据库列表,然后你就回到操作系统的命令行提示符了,非常高效。

再说一个虽然不是命令行参数,但在命令行里必须掌握的技巧:如何安全地传递密码。

除了上面说的交互式输入-p(根据MySQL官方文档关于密码安全的部分) 还有一种推荐给脚本使用的方法,就是使用MYSQL_PWD环境变量,但这方法也有安全风险,因为其他程序可能能看到这个环境变量,在命令行里你可以临时设置: MYSQL_PWD=你的密码 mysql -u root -h 127.0.0.1 但同样,密码会暴露在历史记录中,对于日常手动操作,坚持使用 -p 然后交互输入,是最稳妥的。

对于入门来说,你只要牢牢记住 -h-P-u-p 这四个参数,就能成功连接并开始使用了,等需要写脚本或者有特殊查看需求时,再想起 -e-A-v 这些帮手就足够了,这些东西不全,但能让你立刻上手操作起来。

mysql命令行那些参数怎么用,简单说说不全但够入门了解