Linux环境下MySQL连接命令详解
MySQL连接基础命令
在Linux系统中,连接MySQL数据库通常使用mysql
命令行工具,基本语法如下:
mysql -h [主机名] -P [端口号] -u [用户名] -p[密码]
-h
:指定MySQL服务器的主机名或IP地址,默认为localhost
。-P
:指定端口号,默认为3306
。-u
:用户名,默认为root
。-p
:密码,注意-p
与密码之间无空格时可直接输入密码,有空格则需交互式输入。
示例:
mysql -h 192.168.1.100 -P 3306 -u admin -p'YourPassword'
连接参数详解
-
主机名与IP地址
- 若MySQL服务与客户端在同一台Linux服务器上,可直接省略
-h
参数。 - 远程连接时需确保服务器防火墙允许3306端口访问,并授予用户远程权限(
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%'
)。
- 若MySQL服务与客户端在同一台Linux服务器上,可直接省略
-
端口号配置
- 若MySQL服务未使用默认端口,需通过
-P
明确指定,例如-P 3307
。
- 若MySQL服务未使用默认端口,需通过
-
用户权限管理
- 非root用户需确保已分配数据库访问权限,可通过
mysql -u root -p
登录后执行:CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost'; FLUSH PRIVILEGES;
- 非root用户需确保已分配数据库访问权限,可通过
高级连接选项
-
指定默认数据库
使用-D
参数可直接连接到指定数据库,无需后续切换:mysql -h localhost -u root -p'password' -D mydb
-
启用SSL加密连接
为提升安全性,可通过--ssl-mode
参数启用SSL:mysql --ssl-mode=REQUIRED -h remote_host -u user -p
需确保服务器已配置SSL证书(通过
--ssl-ca
、--ssl-cert
等参数指定路径)。 -
读取配置文件
MySQL会自动读取~/.my.cnf
或/etc/my.cnf
中的配置,[client] host = 192.168.1.100 user = admin password = secret port = 3306
此时可直接执行
mysql
命令加载配置,无需重复输入参数。
常见连接问题及解决方案
-
“Access denied”错误
- 原因:用户名、密码错误或权限不足。
- 解决:检查用户权限(
SELECT User, Host FROM mysql.user;
),确认密码是否正确。
-
“Can’t connect to MySQL server”错误
- 原因:
- MySQL服务未启动(
systemctl status mysql
)。 - 防火墙阻止端口访问(
sudo ufw allow 3306
)。 - 服务器端跳过网络监听(
skip-networking
配置)。
- MySQL服务未启动(
- 原因:
-
字符集问题
连接时可能出现乱码,需统一字符集:mysql --default-character-set=utf8mb4 -u root -p
实用连接技巧
-
批量执行SQL脚本
通过重定向或source
命令执行SQL文件:mysql -u root -p'password' < script.sql
或在MySQL客户端内执行:
source /path/to/script.sql;
-
导出与导入数据
- 导出:
mysqldump -u root -p'password' mydb > backup.sql
- 导入:
mysql -u root -p'password' newdb < backup.sql
- 导出:
-
连接池配置
高并发场景下,推荐使用连接池工具(如ProxySQL
或MySQL Connector/J
)管理连接,避免频繁建立/断开连接。
MySQL连接命令参数速查表
参数 | 说明 | 示例 |
---|---|---|
-h |
服务器主机名或IP | -h 192.168.1.100 |
-P |
端口号(默认3306) | -P 3307 |
-u |
用户名 | -u admin |
-p |
密码 | -p'123456' |
-D |
默认数据库 | -D mydb |
--ssl-mode |
SSL加密模式(REQUIRED /DISABLED ) |
--ssl-mode=REQUIRED |
-e |
执行SQL语句后退出 | -e "SHOW DATABASES;" |
在Linux系统中熟练掌握MySQL连接命令是数据库管理的基础,通过合理配置参数、处理常见错误并运用高级技巧,可以高效实现数据库的连接与操作,建议结合实际场景选择合适的连接方式,并始终关注安全性(如SSL加密、权限最小化原则),确保数据库服务的稳定与安全。