Files
chill_notes/Linux/AliYun/阿里云管理MySQL.md
2026-04-21 20:34:54 +08:00

213 lines
2.9 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 阿里云管理 MySQL
> Ubuntu MySQL 安装与配置
---
## MySQL 目录布局
| 路径 | 说明 |
|------|------|
| `/usr/bin` | 客户端程序 |
| `/var/lib/mysql` | 数据库和日志文件 |
| `/var/run/mysqld` | 服务器 PID |
| `/etc/mysql` | 配置文件 |
| `/usr/share/mysql` | 字符集、错误消息 |
| `/etc/init.d/mysql` | 启动脚本 |
---
## 基础命令
```bash
# 启动/停止/重启
sudo systemctl start mysql
sudo systemctl stop mysql
sudo systemctl restart mysql
# 检查状态
sudo systemctl status mysql
# 开机自启
sudo systemctl enable mysql
```
---
## 移动数据目录
`/var/lib/mysql` 移动到 `/home/data/mysql`
### 1. 创建目标目录
```bash
cd /home
sudo mkdir -p data
```
### 2. 停止 MySQL
```bash
sudo systemctl stop mysql
```
### 3. 移动数据
```bash
sudo mv /var/lib/mysql /home/data/mysql
```
### 4. 修改配置文件
```bash
sudo vim /etc/mysql/my.cnf
```
```ini
[mysqld]
datadir = /home/data/mysql
socket = /home/data/mysql/mysql.sock
```
### 5. 修改启动脚本
```bash
sudo vim /etc/init.d/mysql
```
找到 `datadir=/var/lib/mysql` 改为 `datadir=/home/data/mysql`
### 6. 重启 MySQL
```bash
sudo systemctl restart mysql
```
---
## 配置 InnoDB 存储引擎
```bash
sudo vim /etc/mysql/my.cnf
```
`[mysqld]` 下添加:
```ini
default-storage-engine = INNODB
```
重启 MySQL
```bash
sudo systemctl restart mysql
```
验证:
```sql
SHOW ENGINES;
```
---
## 大小写敏感配置
```bash
sudo vim /etc/mysql/my.cnf
```
`[mysqld]` 下添加:
```ini
# 0 = 区分大小写
# 1 = 不区分大小写
lower_case_table_names = 1
```
重启 MySQL 生效。
---
## 常用管理操作
### 连接 MySQL
```bash
mysql -u root -p
```
### 常用 SQL
```sql
-- 查看数据库
SHOW DATABASES;
-- 创建数据库
CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 选择数据库
USE dbname;
-- 查看用户
SELECT user, host FROM mysql.user;
-- 创建用户
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
-- 授权
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';
FLUSH PRIVILEGES;
```
---
## 卸载 MySQL
```bash
# Ubuntu
sudo apt-get autoremove --purge mysql-server
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common
# 清理残留
dpkg -l | grep ^rc | awk '{print $2}' | sudo xargs dpkg -P
```
---
## 重置 root 密码
```bash
# 1. 停止 MySQL
sudo systemctl stop mysql
# 2. 安全模式启动
sudo mysqld_safe --skip-grant-tables &
# 3. 无密码登录
mysql -u root
# 4. 修改密码
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
EXIT;
# 5. 重启
sudo systemctl restart mysql
```
---
## 备份与恢复
```bash
# 备份
mysqldump -u root -p dbname > backup.sql
# 恢复
mysql -u root -p dbname < backup.sql
```
---
> 💡 **提示**:定期备份数据库,使用 `mysqldump`。