MySQL数据库操作全攻略

MySQL 数据库基础操作

安装与启动

MySQL可通过官方安装包或系统包管理器安装。Ubuntu/Debian使用apt install mysql-server,CentOS/RHEL使用yum install mysql-server。安装完成后,启动服务命令为systemctl start mysqld,设置开机自启systemctl enable mysqld

安全初始化执行mysql_secure_installation,按提示设置root密码、移除匿名用户、禁止远程root登录等。验证安装成功使用mysql --version,登录数据库用mysql -u root -p

数据库创建与管理

创建新数据库语法:

CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

查看所有数据库:

SHOW DATABASES;

删除数据库:

DROP DATABASE dbname;

切换当前数据库:

USE dbname;

用户与权限管理

创建用户并设置密码:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

授予权限(示例授予所有权限):

GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'host';

刷新权限使设置生效:

FLUSH PRIVILEGES;

查看用户权限:

SHOW GRANTS FOR 'username'@'host';

表操作

创建表基本语法:

CREATE TABLE tablename (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

查看表结构:

DESCRIBE tablename;

修改表结构(添加列):

ALTER TABLE tablename ADD COLUMN email VARCHAR(100);

删除表:

DROP TABLE tablename;

数据增删改查

插入数据:

INSERT INTO tablename (name, email) VALUES ('John', 'john@example.com');

查询数据:

SELECT * FROM tablename WHERE name LIKE 'J%';

更新数据:

UPDATE tablename SET email = 'new@example.com' WHERE id = 1;

删除数据:

DELETE FROM tablename WHERE id = 1;

索引优化

创建索引加速查询:

CREATE INDEX idx_name ON tablename(name);

查看表索引:

SHOW INDEX FROM tablename;

复合索引创建:

CREATE INDEX idx_name_email ON tablename(name, email);

备份与恢复

使用mysqldump备份单个数据库:

mysqldump -u username -p dbname > backup.sql

备份所有数据库:

mysqldump -u username -p --all-databases > all_backup.sql

恢复数据库:

mysql -u username -p dbname < backup.sql

事务处理

开启事务执行多条SQL:

START TRANSACTION;
INSERT INTO orders VALUES(...);
UPDATE inventory SET quantity = quantity-1 WHERE product_id=123;
COMMIT;

出错时回滚:

ROLLBACK;

性能监控

查看当前连接:

SHOW PROCESSLIST;

查看服务器状态:

SHOW STATUS LIKE 'Threads_connected';

查看查询执行计划:

EXPLAIN SELECT * FROM tablename WHERE...;

远程连接配置

修改配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,注释掉bind-address = 127.0.0.1或改为0.0.0.0。创建远程用户:

CREATE USER 'remote'@'%' IDENTIFIED BY 'password';
GRANT ALL ON dbname.* TO 'remote'@'%';

重启服务后可通过mysql -h host -u remote -p连接。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值