CentOS作为企业级Linux发行版的代表,广泛应用于服务器环境,而MySQL作为开源关系型数据库管理系统,是其核心组件之一,掌握MySQL命令是管理和维护CentOS系统下MySQL数据库的基础,本文将系统梳理常用命令,帮助用户高效操作数据库。
MySQL服务管理
在CentOS中,MySQL服务通常通过systemctl进行管理,常用命令如下:
- 启动服务:
sudo systemctl start mysqld
- 停止服务:
sudo systemctl stop mysqld
- 重启服务:
sudo systemctl restart mysqld
- 查看服务状态:
sudo systemctl status mysqld
- 设置开机自启:
sudo systemctl enable mysqld
- 禁用开机自启:
sudo systemctl disable mysqld
首次安装MySQL后,建议使用sudo mysql_secure_installation
命令进行安全配置,包括设置root密码、移除匿名用户、禁止root远程登录等操作。
用户与权限管理
MySQL的权限控制是数据库安全的核心,相关命令如下:
- 创建用户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- 授权:
GRANT PRIVILEGES ON database_name.table_name TO 'username'@'host';
- 查看用户权限:
SHOW GRANTS FOR 'username'@'host';
- 撤销权限:
REVOKE PRIVILEGE ON database_name.table_name FROM 'username'@'host';
- 删除用户:
DROP USER 'username'@'host';
常用权限包括ALL(所有权限)、SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE(删除)等,授权时建议遵循最小权限原则,例如仅授予用户特定数据库的访问权限。
数据库与表操作
数据库管理
- 创建数据库:
CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 选择数据库:
USE database_name;
- 查看所有数据库:
SHOW DATABASES;
- 删除数据库:
DROP DATABASE database_name;
表操作
- 创建表:
CREATE TABLE table_name (column1 datatype, column2 datatype, ...);
- 查看表结构:
DESC table_name;
或SHOW COLUMNS FROM table_name;
- 修改表结构:
ALTER TABLE table_name ADD column_name datatype;
(添加列) - 删除表:
DROP TABLE table_name;
数据操作语言(DML)
数据查询
- 基础查询:
SELECT column1, column2 FROM table_name WHERE condition;
- 排序:
SELECT * FROM table_name ORDER BY column_name ASC/DESC;
- 聚合函数:
SELECT COUNT(*), SUM(column_name), AVG(column_name) FROM table_name;
- 分组:
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;
数据插入与更新
- 插入数据:
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
- 批量插入:
INSERT INTO table_name VALUES (value1, value2), (value3, value4);
- 更新数据:
UPDATE table_name SET column1 = value1 WHERE condition;
- 删除数据:
DELETE FROM table_name WHERE condition;
数据备份与恢复
备份命令
- 备份数据库:
mysqldump -u username -p database_name > backup_file.sql
- 备份所有数据库:
mysqldump -u username -p --all-databases > all_backup.sql
- 备份特定表:
mysqldump -u username -p database_name table_name > table_backup.sql
恢复命令
- 恢复数据库:
mysql -u username -p database_name < backup_file.sql
- 恢复所有数据库:
mysql -u username -p < all_backup.sql
性能优化与维护
- 查看慢查询日志:
SHOW VARIABLES LIKE 'slow_query_log';
- 分析表:
ANALYZE TABLE table_name;
- 优化表:
OPTIMIZE TABLE table_name;
- 查看当前连接数:
SHOW STATUS LIKE 'Threads_connected';
常用配置与日志管理
- 查看MySQL配置文件位置:
mysql --help | grep "Default options"
- 查看错误日志:
tail -f /var/log/mysqld.log
- 查询执行日志(需开启):
SET GLOBAL general_log = 'ON';
相关问答FAQs
Q1:如何重置MySQL root密码?
A1:
- 停止MySQL服务:
sudo systemctl stop mysqld
- 跳过权限表启动:
sudo mysqld_safe --skip-grant-tables &
- 无密码登录MySQL:
mysql -u root
- 执行以下命令(MySQL 5.7+):
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES;
- 重启MySQL服务:
sudo systemctl restart mysqld
Q2:如何查看MySQL的版本和当前运行状态?
A2:
- 查看版本:
mysql --version
或登录后执行SELECT VERSION();
- 查看运行状态:登录后执行
SHOW STATUS;
,重点关注Threads_connected
(连接数)、Queries
(查询总数)等指标。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复