2.9 KiB
Executable File
2.9 KiB
Executable File
阿里云管理 MySQL
Ubuntu MySQL 安装与配置
MySQL 目录布局
| 路径 | 说明 |
|---|---|
/usr/bin |
客户端程序 |
/var/lib/mysql |
数据库和日志文件 |
/var/run/mysqld |
服务器 PID |
/etc/mysql |
配置文件 |
/usr/share/mysql |
字符集、错误消息 |
/etc/init.d/mysql |
启动脚本 |
基础命令
# 启动/停止/重启
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. 创建目标目录
cd /home
sudo mkdir -p data
2. 停止 MySQL
sudo systemctl stop mysql
3. 移动数据
sudo mv /var/lib/mysql /home/data/mysql
4. 修改配置文件
sudo vim /etc/mysql/my.cnf
[mysqld]
datadir = /home/data/mysql
socket = /home/data/mysql/mysql.sock
5. 修改启动脚本
sudo vim /etc/init.d/mysql
找到 datadir=/var/lib/mysql 改为 datadir=/home/data/mysql
6. 重启 MySQL
sudo systemctl restart mysql
配置 InnoDB 存储引擎
sudo vim /etc/mysql/my.cnf
在 [mysqld] 下添加:
default-storage-engine = INNODB
重启 MySQL:
sudo systemctl restart mysql
验证:
SHOW ENGINES;
大小写敏感配置
sudo vim /etc/mysql/my.cnf
在 [mysqld] 下添加:
# 0 = 区分大小写
# 1 = 不区分大小写
lower_case_table_names = 1
重启 MySQL 生效。
常用管理操作
连接 MySQL
mysql -u root -p
常用 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
# 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 密码
# 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
备份与恢复
# 备份
mysqldump -u root -p dbname > backup.sql
# 恢复
mysql -u root -p dbname < backup.sql
💡 提示:定期备份数据库,使用
mysqldump。