mysql 连接
连接 MySQL 数据库服务器,支持本地连接、远程连接、指定数据库和 socket 连接
语法
mysql [options] [database]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
-u --user |
指定用户名 | mysql -u root |
常用 |
-p --password |
指定密码(紧跟密码或回车后输入) | mysql -u root -p |
常用 |
-h --host |
指定服务器地址 | mysql -h 192.168.1.100 -u root -p |
常用 |
-P --port |
指定端口号(默认 3306) | mysql -h 127.0.0.1 -P 3307 -u root -p |
常用 |
-S --socket |
指定 socket 文件路径 | mysql -S /tmp/mysql.sock -u root -p |
进阶 |
-e --execute |
执行 SQL 语句后退出 | mysql -u root -p -e "SHOW DATABASES;" |
常用 |
示例
本地连接
mysql -u root -p
回车后输入密码,不会显示在终端
连接远程服务器并指定数据库
mysql -h 192.168.1.100 -P 3306 -u app_user -p ecommerce_db
直接进入 ecommerce_db 数据库
执行单条 SQL 并退出
mysql -u root -p -e "SELECT COUNT(*) FROM users;" ecommerce_db
适合脚本中使用
通过 socket 连接
mysql -S /var/run/mysqld/mysqld.sock -u root -p
当 TCP 连接不可用时使用 socket 文件
常见错误
ERROR 1045 (28000): Access denied for user 'root'@'localhost'
密码错误或用户无权限。检查密码是否正确,或用 sudo mysql 登录后重置密码
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
MySQL 服务未启动。执行 systemctl start mysql 或 service mysql start
技巧
- 不要在 -p 后面直接写密码(如 -p123456),会被记录在 shell 历史中
- 用 ~/.my.cnf 配置默认连接信息避免每次输入密码
- 连接后用 status; 命令查看当前连接信息