CentOS系统下,MySQL数据库的管理与操作主要通过命令行完成,熟练掌握相关命令是系统管理员和开发者的必备技能,以下将从基础操作、数据库管理、用户权限、备份恢复及日常维护等方面,详细介绍CentOS环境下MySQL命令的使用方法。

MySQL服务管理
在CentOS中,首先需要确保MySQL服务已正确安装并运行,使用systemctl命令可以方便地管理MySQL服务,启动MySQL服务执行sudo systemctl start mysqld,停止服务使用sudo systemctl stop mysqld,重启服务则为sudo systemctl restart mysqld,若需设置开机自启,运行sudo systemctl enable mysqld;取消自启则使用sudo systemctl disable mysqld,检查服务状态可通过sudo systemctl status mysqld,该命令会显示服务的运行状态及最近日志。
登录与退出MySQL
登录MySQL数据库需使用mysql命令,基本语法为mysql -u 用户名 -p,以root用户登录时执行mysql -u root -p,系统会提示输入密码,若MySQL运行在非默认端口或需指定主机,可添加-P(端口)和-h(主机)参数,如mysql -u root -p -P 3307 -h 127.0.0.1,退出MySQL环境使用exit或quit命令,也可通过快捷键Ctrl+D直接退出。
数据库操作
MySQL中的数据库是存储表的容器,常用命令包括创建、查看、选择和删除数据库,创建数据库使用CREATE DATABASE 数据库名;,例如CREATE DATABASE test_db;,查看所有数据库执行SHOW DATABASES;,使用数据库前需通过USE 数据库名;切换,如USE test_db;,删除数据库需谨慎,使用DROP DATABASE 数据库名;,例如DROP DATABASE test_db;,此操作不可逆。
表操作
表是数据库中存储数据的基本结构,操作表前需先进入目标数据库,创建表使用CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型, ...);,例如CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT);,查看当前数据库的所有表执行SHOW TABLES;,查看表结构使用DESC 表名;,如DESC users;,删除表使用DROP TABLE 表名;,例如DROP TABLE users;。

数据操作
数据操作包括增删改查(CRUD),插入数据使用INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2);,例如INSERT INTO users (name, age) VALUES ('Alice', 25);,查询数据使用SELECT 列名 FROM 表名 WHERE 条件;,例如SELECT * FROM users WHERE age > 20;,更新数据执行UPDATE 表名 SET 列名1 = 新值 WHERE 条件;,如UPDATE users SET age = 26 WHERE name = 'Alice';,删除数据使用DELETE FROM 表名 WHERE 条件;,例如DELETE FROM users WHERE name = 'Alice';,注意不加条件会删除整表数据。
用户权限管理
MySQL的用户权限管理是数据库安全的核心,创建用户使用CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';,例如CREATE USER 'dev'@'localhost' IDENTIFIED BY 'DevPass123!';,授权使用GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机';,如GRANT SELECT, INSERT ON test_db.* TO 'dev'@'localhost';,刷新权限使授权生效执行FLUSH PRIVILEGES;,撤销权限使用REVOKE 权限 ON 数据库名.表名 FROM '用户名'@'主机';,例如REVOKE INSERT ON test_db.* FROM 'dev'@'localhost';,删除用户则执行DROP USER '用户名'@'主机';。
数据备份与恢复
备份MySQL数据库常用mysqldump工具,备份单个数据库使用mysqldump -u 用户名 -p 数据库名 > 备份文件.sql,例如mysqldump -u root -p test_db > test_db_backup.sql,备份所有数据库执行mysqldump -u 用户名 -p --all-databases > all_backup.sql,恢复数据库时,需先创建空数据库,然后使用mysql -u 用户名 -p 数据库名 < 备份文件.sql,例如mysql -u root -p test_db < test_db_backup.sql。
日常维护命令
MySQL的日常维护包括查看日志、优化表和检查状态,错误日志默认位于/var/log/mysqld.log,可通过sudo tail -f /var/log/mysqld.log实时查看,优化表使用OPTIMIZE TABLE 表名;,例如OPTIMIZE TABLE users;,此操作可回收碎片空间,查看MySQL状态执行SHOW STATUS;,查看进程使用SHOW PROCESSLIST;,通过这些命令可以监控数据库的运行情况。

FAQs
问:如何重置MySQL root密码?
答:若忘记root密码,可通过以下步骤重置:1. 停止MySQL服务sudo systemctl stop mysqld;2. 跳过权限表启动sudo mysqld_safe --skip-grant-tables &;3. 登录MySQLmysql -u root;4. 执行UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';;5. 刷新权限FLUSH PRIVILEGES;;6. 重启MySQL服务sudo systemctl restart mysqld。
问:MySQL提示“Access denied for user”如何解决?
答:该错误通常是由于用户权限不足或登录信息错误导致,可按以下步骤排查:1. 确认用户名、密码及主机名是否正确,例如'user'@'localhost'与'user'@'%'不同;2. 检查用户权限SHOW GRANTS FOR '用户名'@'主机';;3. 若权限不足,使用GRANT命令重新授权;4. 确保MySQL服务允许远程连接(检查bind-address配置);5. 防火墙是否拦截了MySQL端口(默认3306)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复