MariaDB Linux版常用命令分类整理
用于控制MariaDB服务的启动、停止、重启及状态查看,是日常运维的基础操作。
sudo systemctl start mariadb;旧版本(如CentOS 6)可使用sudo service mariadb start。sudo systemctl stop mariadb,SysVinit系统用sudo service mariadb stop。sudo systemctl restart mariadb,SysVinit系统用sudo service mariadb restart。sudo systemctl status mariadb(显示“active (running)”表示运行中),SysVinit系统用sudo service mariadb status。sudo systemctl enable mariadb(开机自动启动);旧版本用sudo chkconfig mariadb on。通过命令行客户端连接MariaDB服务器或退出会话。
mysql -u 用户名 -p命令(如mysql -u root -p),输入命令后会提示输入密码,验证通过后进入MariaDB命令行界面(提示符为MariaDB [(none)]>)。\q或QUIT(大小写均可),按回车键退出会话。管理数据库的创建、删除、查看及切换。
CREATE DATABASE 数据库名;语句(如CREATE DATABASE mydb;),执行后会在MariaDB中创建一个空数据库。SHOW DATABASES;语句,列出当前MariaDB实例中的所有数据库(包括系统默认的information_schema、mysql等)。USE 数据库名;语句(如USE mydb;),切换到指定数据库,后续操作将针对该数据库执行。DROP DATABASE 数据库名;语句(如DROP DATABASE mydb;),谨慎使用,删除后数据库及所有数据将永久丢失。管理数据库中的数据表(结构化数据容器)。
CREATE TABLE 表名 (列1 数据类型, 列2 数据类型, ...);语句(如CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100));),定义表的列名、数据类型及约束(如主键、自增)。SHOW TABLES;语句,列出当前数据库中的所有数据表。DESCRIBE 表名;或DESC 表名;语句(如DESC users;),显示表的列信息(包括列名、数据类型、是否允许NULL、键类型等)。DROP TABLE 表名;语句(如DROP TABLE users;),谨慎使用,删除后表及所有数据将永久丢失。对数据表中的数据进行增删改查(CRUD)。
INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);语句(如INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');),向表中插入一行数据。SELECT 列1, 列2, ... FROM 表名 WHERE 条件;语句(如SELECT * FROM users;查询所有数据,SELECT name, email FROM users WHERE id = 1;查询指定条件的数据),检索符合条件的数据。UPDATE 表名 SET 列1 = 新值1, 列2 = 新值2, ... WHERE 条件;语句(如UPDATE users SET email = 'new@example.com' WHERE id = 1;),修改符合条件的数据。DELETE FROM 表名 WHERE 条件;语句(如DELETE FROM users WHERE id = 1;),删除符合条件的数据,谨慎使用无WHERE子句的语句,否则会删除表中所有数据。管理数据库用户账号及访问权限,保障数据安全。
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';语句(如CREATE USER 'liwh'@'localhost' IDENTIFIED BY '123456';),创建一个仅能从本地登录的用户。GRANT 权限列表 ON 数据库.表名 TO '用户名'@'主机名';语句(如GRANT SELECT, INSERT ON mydb.users TO 'liwh'@'localhost';授予查询和插入权限,GRANT ALL PRIVILEGES ON *.* TO 'liwh'@'localhost';授予所有数据库所有表的完全权限),为用户分配指定权限。SHOW GRANTS FOR '用户名'@'主机名';语句(如SHOW GRANTS FOR 'liwh'@'localhost';),查看用户的权限列表。REVOKE 权限列表 ON 数据库.表名 FROM '用户名'@'主机名';语句(如REVOKE SELECT ON mydb.users FROM 'liwh'@'localhost';),撤销用户的指定权限。SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');语句(如SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');),修改指定用户的密码。通过mysqldump工具实现数据库的备份与恢复,防止数据丢失。
mysqldump -u 用户名 -p 数据库名 > 备份文件.sql;语句(如mysqldump -u root -p mydb > mydb_backup.sql;),将指定数据库的结构和数据导出到SQL文件中。mysqldump -u 用户名 -p 数据库名 表名 > 表备份文件.sql;语句(如mysqldump -u root -p mydb users > users_backup.sql;),仅备份指定表的数据。mysql -u 用户名 -p 数据库名 < 备份文件.sql;语句(如mysql -u root -p mydb < mydb_backup.sql;),将备份文件中的数据导入到指定数据库中(需提前创建数据库)。mysql -u 用户名 -p 数据库名 < 表备份文件.sql;语句(如mysql -u root -p mydb < users_backup.sql;),恢复指定表的数据。