213 lines
2.9 KiB
Markdown
Executable File
213 lines
2.9 KiB
Markdown
Executable File
# 阿里云管理 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`。
|