在 Linux 中,MySQL 常用的命令主要包括以下几类:连接 MySQL 数据库、数据库管理、表管理、用户权限管理、备份与恢复等。以下是一些常见的 MySQL 命令及其详细用法:
1. 连接 MySQL
mysql -u username -p
: 连接到 MySQL 数据库
mysql -u root -p # 使用 root 用户连接 MySQL
-u
:指定用户名-p
:提示输入密码
mysql -h hostname -u username -p
: 连接到远程 MySQL 数据库
mysql -h 192.168.1.100 -u root -p # 使用 root 用户连接到远程 MySQL 数据库
-h
:指定主机名或 IP 地址
2. 数据库管理
SHOW DATABASES;
: 查看所有数据库
SHOW DATABASES;
CREATE DATABASE dbname;
: 创建数据库
CREATE DATABASE testdb;
USE dbname;
: 选择要操作的数据库
USE testdb;
DROP DATABASE dbname;
: 删除数据库
DROP DATABASE testdb;
3. 表管理
SHOW TABLES;
: 查看当前数据库中的所有表
SHOW TABLES;
CREATE TABLE
: 创建新表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100)
);
DESCRIBE table_name;
: 查看表结构
DESCRIBE users;
或
EXPLAIN users;
DROP TABLE table_name;
: 删除表
DROP TABLE users;
ALTER TABLE
: 修改表结构
ALTER TABLE users ADD COLUMN age INT; # 添加一个名为 age 的列
ALTER TABLE users DROP COLUMN age; # 删除 age 列
ALTER TABLE users MODIFY COLUMN username VARCHAR(100); # 修改列的数据类型
TRUNCATE TABLE table_name;
: 清空表内容(不删除表结构)
TRUNCATE TABLE users;
4. 数据管理
SELECT
: 查询数据
SELECT * FROM users; # 查询所有数据
SELECT id, username FROM users; # 查询特定字段
SELECT * FROM users WHERE id = 1;# 根据条件查询数据
INSERT INTO
: 插入数据
INSERT INTO users (username, email) VALUES ('Alice', 'alice@example.com');
UPDATE
: 更新数据
UPDATE users SET email = 'newemail@example.com' WHERE id = 1;
DELETE
: 删除数据
DELETE FROM users WHERE id = 1; # 删除 id 为 1 的数据
LIMIT
: 限制查询结果数量
SELECT * FROM users LIMIT 5; # 只返回前 5 行数据
ORDER BY
: 排序查询结果
SELECT * FROM users ORDER BY username ASC; # 按用户名升序排列
SELECT * FROM users ORDER BY id DESC; # 按 ID 降序排列
5. 用户管理
CREATE USER
: 创建用户
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT
: 授予用户权限
GRANT ALL PRIVILEGES ON testdb.* TO 'username'@'localhost'; # 授予所有权限
GRANT SELECT, INSERT ON testdb.* TO 'username'@'localhost'; # 只授予 SELECT 和 INSERT 权限
FLUSH PRIVILEGES;
: 刷新权限
FLUSH PRIVILEGES; # 刷新权限,使更改生效
SHOW GRANTS
: 查看用户权限
SHOW GRANTS FOR 'username'@'localhost';
REVOKE
: 撤销用户权限
REVOKE ALL PRIVILEGES ON testdb.* FROM 'username'@'localhost'; # 撤销所有权限
DROP USER
: 删除用户
DROP USER 'username'@'localhost';
6. 索引管理
CREATE INDEX
: 创建索引
CREATE INDEX idx_username ON users(username);
DROP INDEX
: 删除索引
DROP INDEX idx_username ON users;
7. 备份与恢复
备份数据库:使用 mysqldump
进行数据库备份
mysqldump -u root -p testdb > backup.sql # 备份 testdb 数据库
恢复数据库:使用 mysql
恢复数据库
mysql -u root -p testdb < backup.sql # 恢复数据库
备份单个表:
mysqldump -u root -p testdb users > users_backup.sql # 备份 users 表
备份所有数据库:
mysqldump -u root -p --all-databases > all_databases_backup.sql
8. 查看 MySQL 服务状态
systemctl
: 查看 MySQL 服务状态(适用于 systemd 系统)
systemctl status mysql # 查看 MySQL 服务的状态
systemctl start mysql # 启动 MySQL 服务
systemctl stop mysql # 停止 MySQL 服务
systemctl restart mysql # 重启 MySQL 服务
service
: 使用 service
命令查看 MySQL 服务状态(适用于 init.d 系统)
service mysql status # 查看 MySQL 服务的状态
service mysql start # 启动 MySQL 服务
service mysql stop # 停止 MySQL 服务
9. 常用 MySQL 配置文件位置
- 配置文件路径:
/etc/my.cnf
或/etc/mysql/my.cnf
:MySQL 配置文件,配置数据库的各项参数
- 日志文件路径:
/var/log/mysql/error.log
:MySQL 错误日志文件/var/log/mysql/mysql.log
:MySQL 查询日志(如果启用)