# 阿里云管理 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`。