MariaDB/MySQL 客户端工具与服务端配置精要指南
文章目录
- 一、客户端与服务端程序
- 二、用户账号管理
- 三、MySQL 客户端命令
- 3.1 命令类型
- 3.2 使用模式
- 3.3 常用选项
- 3.4 提示符定制
- 四、mysqladmin管理命令
- 五、服务端配置
- 5.1 配置文件
- 5.2 Socket 通信配置
- 六、最佳实践总结
免费个人运维知识库,欢迎您的订阅:literator_ray.flowus.cn
一、客户端与服务端程序
类型 | 工具 | 功能说明 |
---|---|---|
客户端程序 | mysql | 交互式 CLI 工具,支持 SQL 执行与数据库管理 |
mysqldump | 备份工具,将数据转换为 INSERT 语句保存到文件 | |
mysqladmin | 基于 MySQL 协议管理 mysqld 服务(启停/状态检查等) | |
mysqlimport | 数据导入工具 | |
myisamchk | MyISAM 表检查工具 | |
myisampack | MyISAM 表打包工具(生成只读文件) | |
服务端程序 | mysqld_safe | 安全启动脚本(推荐生产使用) |
mysqld | 核心数据库服务进程 | |
mysqld_multi | 多实例管理工具(例:mysqld_multi --example ) |
二、用户账号管理
账号格式:'USERNAME'@'HOST'
- HOST 通配规则:
% 匹配任意长度字符(如 `172.16.%.%`)
_ 匹配单个字符
172.16.0.0/255.255.0.0 指定 IP 段
三、MySQL 客户端命令
3.1 命令类型
类别 | 示例 | 说明 |
---|---|---|
客户端命令 | \h (help) | 本地执行,无需分号结尾 |
\u (use) | 切换数据库 | |
\s (status) | 查看服务状态 | |
\! (system) | 执行系统命令 | |
服务端命令 | SELECT VERSION(); | 通过协议发送到服务端,需分号结尾 |
3.2 使用模式
-
交互模式:命令行直接操作
-
脚本模式:
mysql -uUSER -pPASS < /path/script.sql # 文件输入
echo "SQL" | mysql -uUSER -pPASS # 管道输入
mysql> SOURCE /path/script.sql; # 会话内执行
3.3 常用选项
mysql [OPTIONS] [database] -A, --no-auto-rehash # 禁用自动补全 -u, --user=用户名 # 默认为 root -h, --host=主机名 # 默认为 localhost -p, --password # 密码提示(推荐) -P, --port=端口 # 默认 3306 -S, --socket=sock文件 # 指定连接文件路径 -D, --database=库名 # 指定默认数据库 -e, "SQL" # 执行单条 SQL 命令 -V, --version # 显示版本信息
3.4 提示符定制
- 临时修改:
mysql --prompt="\r:\\m\\s\\u@\h) [\\d]>\_"
- 永久生效:
# /etc/my.cnf.d/mysql-clients.cnf
[mysql]
prompt="\r:\\m:\\s\\u@\h) [\\d]>\_"
四、mysqladmin管理命令
mysqladmin [OPTIONS] command ping # 检查服务状态(返回 "mysql is alive") shutdown # 停止服务(注意:无法启动服务) create <dbname> # 创建数据库 drop <dbname> # 删除数据库(需确认) password '新密码' # 修改用户密码 flush-logs # 滚动二进制日志(生成新 binlog 文件)
示例:
mysqladmin -uroot -p123456 create testdb
mysqladmin -uroot -p123456 password '111111'
五、服务端配置
5.1 配置文件
核心路径:
/etc/my.cnf # 全局配置
/etc/my.cnf.d/my.cnf # 扩展配置
~/.my.cnf # 用户级配置
配置块语法:
[mysqld] # 服务端参数
[client] # 客户端参数
parameter = value # 示例:skip-networking=1
注意:
ON/OFF
、1/0
等价,不区分大小写。
5.2 Socket 通信配置
类型 | 路径 | 通信范围 | 默认行为 |
---|---|---|---|
IP Socket | 0.0.0.0:3306 | 支持远程通信 | 绑定全部接口 IP |
Unix Socket | /var/lib/mysql/mysql.sock | 仅本机通信 | host=localhost 时自动启用 |
- 禁用网络监听(仅限本地):
[mysqld]
skip-networking=1
bind_address=127.0.0.1
六、最佳实践总结
-
安全连接:
-
生产环境建议禁用远程 IP 监听(配置
skip-networking
)。 -
使用 Unix Socket 提升本地通信效率。
-
-
权限管理:
- 用户账号严格限制
HOST
范围(如'user'@'172.16.%.%'
)。
- 用户账号严格限制
-
运维操作:
-
备份用
mysqldump
,服务管理用mysqladmin
。 -
日志维护定期执行
flush-logs
。
-
-
配置维护:
-
全局配置集中存放于
/etc/my.cnf.d/
。 -
敏感参数(如密码)避免明文存储。
-
请不要以此视为定论,这只是我的个人经验