一、基本登录语法

mysql [options] [database] [-e "SQL语句"]

二、常用连接参数详解

参数全称说明示例
-h--host服务器地址(主机名或IP)-h localhost-h 192.168.1.100
-P--port服务器端口(默认3306)-P 3307-P 3306
-u--user用户名-u root-u app_user
-p--password密码提示(推荐)-p(交互式输入)
-p密码--password=密码直接指定密码(不安全)-proot(不推荐)
-D--database指定初始数据库-D test-D mysql
-e--execute执行SQL语句后退出-e "SHOW DATABASES;"
-V--version显示版本信息mysql -V
-v--verbose详细输出模式mysql -v


三、常见登录场景示例

1. 基本本地登录

 方式1:交互式输入密码(推荐)

mysql -h localhost -u root -p

 

 方式2:直接指定密码(不安全,会有警告)

mysql -h localhost -u root -proot

 

 方式3:使用默认值(localhost:3306, root用户)

mysql -u root -p

 

2. 远程服务器登录

 登录远程MySQL服务器

mysql -h 192.168.1.100 -P 3306 -u remote_user -p

 

 使用域名连接

mysql -h mysql.example.com -u app_user -p

 

3. 指定初始数据库

 登录后直接使用test数据库

mysql -u root -p test

 

 或者使用-D参数

mysql -u root -p -D test

 

4. 执行单条SQL命令后退出

 查看数据库列表

mysql -u root -p -e "SHOW DATABASES;"

 

 查看表结构

mysql -u root -p test -e "DESC users;"

 

 执行查询并格式化输出

mysql -u root -p test -e "SELECT * FROM users LIMIT 5\G"

 

 执行多条SQL语句

mysql -u root -p -e "USE test; SHOW TABLES; SELECT COUNT(*) FROM users;"

 

5. 使用配置文件免密码登录

创建 `~/.my.cnf` 文件(Linux)或 `%APPDATA%\MySQL\.my.cnf`(Windows):

[client]

host=localhost

user=root

password=your_password

database=test

然后直接使用:

mysql  # 自动使用配置文件中的凭据

 

四、安全登录最佳实践

1. 避免在命令行中暴露密码

不推荐(密码会出现在历史记录中):

mysql -u root -proot

 

推荐做法:

 交互式输入密码

mysql -u root -p

 然后输入密码

 或者使用MYSQL_PWD环境变量(仍然有风险)

MYSQL_PWD=your_password mysql -u root

 

2. 使用登录路径(MySQL Config Editor)

 保存登录凭据(加密存储)

mysql_config_editor set --login-path=local --host=localhost --user=root --password

 

 使用保存的登录路径

mysql --login-path=local

 

 保存多个连接配置

mysql_config_editor set --login-path=production --host=db.example.com --user=admin --password

mysql --login-path=production

 

3. 使用SSH隧道安全连接

 建立SSH隧道

ssh -L 3307:localhost:3306 user@remote-server.com

 

 然后通过本地端口连接

mysql -h 127.0.0.1 -P 3307 -u root -p

 

五、退出MySQL服务器

MySQL 提供了多种退出方式,所有方式都是等价的:

 方式1:使用EXIT

EXIT;

 

 方式2:使用QUIT

QUIT;

 

 方式3:使用缩写

\q

 

 方式4:使用快捷键(在某些客户端中)

Ctrl + D

 

退出后显示:

Bye

六、高级用法和技巧

1. 输出格式化

 表格格式(默认)

mysql -u root -p -e "SELECT * FROM users"

 

 垂直格式(\G)

mysql -u root -p -e "SELECT * FROM users LIMIT 1\G"

 

 无边框格式

mysql -u root -p -B -e "SELECT * FROM users"

 

 HTML格式输出

mysql -u root -p -H -e "SELECT * FROM users"

 

 XML格式输出

mysql -u root -p -X -e "SELECT * FROM users"

 

2. 批量执行SQL文件

 执行SQL脚本文件

mysql -u root -p test < import_data.sql

 

 执行多个SQL文件

mysql -u root -p test < script1.sql < script2.sql

 

 输出结果到文件

mysql -u root -p -e "SELECT * FROM users" > output.txt

 

3. 连接超时和重试设置

 设置连接超时时间

mysql --connect-timeout=10 -u root -p

 

 启用重连功能

mysql --reconnect -u root -p

 

 禁用自动重连

mysql --skip-reconnect -u root -p

 

4. 调试连接问题

 显示连接详细信息

mysql --verbose -u root -p

 

 测试连接而不执行命令

mysql --skip-column-names --silent -e "SELECT 1" > /dev/null && echo "Connected" || echo "Failed"

 

 查看连接状态

mysqladmin -u root -p status

 

七、故障排除

1. 常见连接错误

 错误:Access denied

mysql: [Warning] Using a password on the command line interface can be insecure.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 

 解决方案:检查用户名/密码,或重置权限

 

 错误:Can't connect to server

ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (111)

 

 解决方案:检查MySQL服务是否启动,端口是否正确

 

2. 检查连接状态

 查看当前连接

mysql -u root -p -e "SHOW PROCESSLIST;"

 

 查看连接统计

mysql -u root -p -e "SHOW STATUS LIKE 'Threads_connected';"

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)